网络编程
位置:首页>> 网络编程>> Python编程>> python实现学生管理系统源码

python实现学生管理系统源码

作者:Henrik-Yao  发布时间:2023-05-29 22:05:16 

标签:python,学生,管理系统

本文实例为大家分享了python实现学生管理系统的具体代码,供大家参考,具体内容如下

一.面向过程版


import os

stu_list = []

def show_menu():
   print('1.添加学生')
   print('2.删除学生')
   print('3.修改学生信息')
   print('4.查询单个学生信息')
   print('5.查询所有学生信息')
   print('6.退出系统')

def insert_student():
   name = input('请输入学生名字:')
   for stu in stu_list:
       if stu['name'] == name:
           print('.........学生信息已存在........')
           return
   age = input('请输入学生年龄:')
   gender = input('请输入学生性别:')
   stu_dict = {'name': name, 'age': int(age), 'gender': gender}
   stu_list.append(stu_dict)
   print("学生信息添加成功!")

def remove_student():
   name = input('请输入要操作的学生的名字:')
   for stu in stu_list:
       if stu['name'] == name:
           stu_list.remove(stu)
           print('删除成功!')
           break
   else:
       print('........该学生信息不存在,无法删除.........')

def modify_student():
   name = input('请输入要操作的学生的名字:')
   for stu in stu_list:
       if stu['name'] == name:
           stu['age'] = int(input('请输入新的年龄:'))
           print('修改成功!')
           break
   else:
       print('........该学生信息不存在,无法修改.........')

def search_student():
   name = input('请输入要操作的学生的名字:')
   for stu in stu_list:
       if stu['name'] == name:
           print(f'姓名:{stu["name"]},年龄:{stu["age"]},性别:{stu["gender"]}')
           break
   else:
       print('........该学生信息不存在.......')

def show_all_stu():
   if len(stu_list):
       for stu in stu_list:
           print(f'姓名:{stu["name"]},年龄:{stu["age"]},性别:{stu["gender"]}')
   else:
       print("目前没有学生信息!")

def save():
   f = open('student.txt', 'w')
   f.write(str(stu_list))
   f.close()

def read_file():
   global stu_list
   if os.path.exists('student.tct'):
       f = open('student.txt', 'r', encoding='utf-8')
       buf = f.read()
       if buf:
           stu_list = eval(buf)
       f.close()

def main():
   read_file()
   while True:
       show_menu()
       opt = input('请输入用来选择的编号:')
       if opt == '1':
           print('1.添加学生')
           insert_student()
       elif opt == '2':
           print('2.删除学生')
           remove_student()
       elif opt == '3':
           print('3.修改单个学生信息')
           modify_student()
       elif opt == '4':
           print('查询单个学生信息')
           search_student()
       elif opt == '5':
           print('5.查询所有学生信息')
           show_all_stu()
       elif opt == '6':
           print('欢迎下次使用本系统')
           save()
           break
       else:
           print('输入有误,请重新输入')
           continue
       input('........回车键继续操作........')

main()

二.面向对象版

1.工程文件

python实现学生管理系统源码

2.main.py


import student_manage_sysytem as sms

if __name__ == '__main__':
   stu_sms = sms.StudenManagerSystem()
   stu_sms.start()

3.student.py


class Student():
   def __init__(self, stu_id, name, age, gender):
       self.sut_id = stu_id
       self.name = name
       self.age = age
       self.gender = gender

def __str__(self):
       return f"{self.sut_id},{self.name},{self.age},{self.gender}"

4.student_manage_system.py


import student

class StudenManagerSystem():
   def __init__(self):
       self.stu_dict = {}

@staticmethod
   def __show_menu():
       print('1.添加学生')
       print('2.删除学生')
       print('3.修改学生信息')
       print('4.查询单个学生信息')
       print('5.查询所有学生信息')
       print('6.退出系统')

def __insert_student(self):
       stu_id = input('请输入学生学号:')
       if stu_id in self.stu_dict:
           print('学生信息已经存在,不需要重复添加')
           return
       name = input('请输入学生名字:')
       age = input('请输入学生年龄:')
       gender = input('请输入学生性别:')
       stu = student.Student(stu_id, name, age, gender)
       self.stu_dict[stu_id] = stu

def __removw_student(self):
       stu_id = input('请输入学号:')
       if stu_id in self.stu_dict:
           del self.stu_dict[stu_id]
           print('学生已经删除')
       else:
           print('学生信息不存在,无法删除')

def __modify_student(self):
       stu_id = input('请输入学号:')
       if stu_id in self.stu_dict:
           stu = self.stu_dict[stu_id]
           stu.age = input('请输入新的年龄:')
           print('信息已经修改完毕')
       else:
           print('学生信息不存在,无法修改')

def __search_student(self):
       stu_id = input('请输入学号:')
       if stu_id in self.stu_dict:
           stu = self.stu_dict[stu_id]
           print(stu)
       else:
           print('学生信息不存在')

def __save(self):
       f = open('student.txt', 'w', encoding='utf-8')
       for stu in self.stu_dict.values():
           f.write(str(stu) + '\n')
       f.close()

def __load_info(self):
       try:
           f = open('student.txt', 'r', encoding='utf-8')
           buf_list = f.readlines()
           for buf in buf_list:
               buf = buf.strip()
               info_list = buf.split(',')
               stu = student.Student(*info_list)
               stu_id = info_list[0]
               self.stu_dict[stu_id] = stu
           f.close()
       except Exception:
           pass

def __show_all_info(self):
       for stu in self.stu_dict.values():
           print(stu)

def start(self):
       self.__load_info()
       while True:
           self.__show_menu()
           opt = input('请输入用来选择的编号:')
           if opt == '1':
               print('1.添加学生')
               self.__insert_student()
           elif opt == '2':
               print('2.删除学生')
               self.__removw_student()
           elif opt == '3':
               print('3.修改单个学生信息')
               self.__modify_student()
           elif opt == '4':
               print('查询单个学生信息')
               self.__search_student()
           elif opt == '5':
               print('5.查询所有学生信息')
               self.__show_all_info()
           elif opt == '6':
               self.__save()
               print('欢迎下次使用本系统')
               break
           else:
               print('输入有误,请重新输入')
               continue
           input('........回车键继续操作........')

来源:https://blog.csdn.net/qq_50216270/article/details/112914099

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com