import student_manager_system as sms
if __name__ =='__main__':
stu_sms = sms.StudentManagerSystem()
stu_sms.start()
# 定义学生类classStudent(object):def__init__(self, stu_id, name, age, gender):
self.stu_id = stu_id
self.name = name
self.age = age
self.gender = gender
def__str__(self):returnf'{self.stu_id},{self.name},{self.age},{self.gender}'if __name__ =='__main__':
stu = Student(1,'aa',18,'m')print(stu)
import student as s
classStudentManagerSystem(object):def__init__(self):
self.stu_dicts ={}# 菜单@staticmethoddef__show_menu():print("欢迎使用学生信息管理系统")print("1.添加学生信息")print("2.删除学生信息")print("3.修改学生信息")print("4.查找相应的学生的信息")print("5.显示所有的学生的信息")print("6.退出系统")# 添加学生信息def__add_stu(self):
stu_id =input('请输入学生学号:')for stu in self.stu_dicts.values():if stu_id in stu.stu_id:print(f'学号为{stu_id}的学生已存在,不能重复添加!')return
name =input('请输入学生姓名:')
age =int(input('请输入学生年龄:'))
gender =input('请输入学生性别:')
stu = s.Student(stu_id, name, age, gender)
self.stu_dicts[stu_id]= stu
print("完成添加学生")# 删除学生信息def__delete_stu(self):
stu_id =int(input('请输入要删除学生的学号:'))if self.stu_dicts.pop(stu_id):print("完成删除")else:print('不能删除没有的学生的信息!!!')# 修改学生信息def__update_stu(self):
stu_id =int(input('请输入要修改学生的学号:'))
stu = self.stu_dicts.get(stu_id)if stu !='None':
name =input('请输入修改的姓名:')
age =int(input('请输入修改的年龄:'))
gender =input('请输入修改的性别:')
stu.name = name
stu.age = age
stu.gender = gender
self.stu_dicts[stu_id]= stu
print("完成修改")else:print("没有这个学生,不能修改")# 查找单个学生信息def__search_stu(self):
name =input('请输入要查找学生的姓名:')for stu in self.stu_dicts.values():if name in stu.name:print(stu)breakelse:print("找不到这个学生")# 查找所有学生信息def__show_all_stu(self):for stu in self.stu_dicts.values():print(f"学号:{stu.stu_id},姓名:{stu.name},年龄:{stu.age},性别:{stu.gender}")# 将所有学生信息保存到文件中def__save(self):
f =open('student.txt','w', encoding='utf-8')for stu in self.stu_dicts.values():
f.write(str(stu)+'\n')# str(stu) 调用student的 __str__方法
f.close()# 读取文件中所有学生的信息def__load_info(self):try:
f =open('student.txt','r', encoding='utf-8')except FileNotFoundError:print('还没有学生信息呢')return
buf_list = f.readlines()# 这个时候列表中的每一项都是这个形式:1,a,12,m\nfor buf in buf_list:
info_list = buf.strip().split(',')# 去掉\n,然后按照 ',' 来切割字符串# 创建对象
stu = s.Student(*info_list)# 将对象添加到字典中
stu_id = info_list[0]
self.stu_dicts[stu_id]= stu
f.close()defstart(self):
self.__load_info()whileTrue:
self.__show_menu()
f =int(input('清按功能名输入相应的功能:'))if f ==1:
self.__add_stu()elif f ==2:
self.__delete_stu()elif f ==3:
self.__update_stu()elif f ==4:
self.__search_stu()elif f ==5:
self.__show_all_stu()elif f ==6:
self.__save()print('欢迎下次使用本系统')breakelse:print('请输入正确的功能按钮')continueinput('按回车键继续......')