import os
stu_list =[]defshow_menu():print('1.添加学生')print('2.删除学生')print('3.修改学生信息')print('4.查询单个学生信息')print('5.查询所有学生信息')print('6.退出系统')definsert_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("学生信息添加成功!")defremove_student():
name =input('请输入要操作的学生的名字:')for stu in stu_list:if stu['name']== name:
stu_list.remove(stu)print('删除成功!')breakelse:print('........该学生信息不存在,无法删除.........')defmodify_student():
name =input('请输入要操作的学生的名字:')for stu in stu_list:if stu['name']== name:
stu['age']=int(input('请输入新的年龄:'))print('修改成功!')breakelse:print('........该学生信息不存在,无法修改.........')defsearch_student():
name =input('请输入要操作的学生的名字:')for stu in stu_list:if stu['name']== name:print(f'姓名:{stu["name"]},年龄:{stu["age"]},性别:{stu["gender"]}')breakelse:print('........该学生信息不存在.......')defshow_all_stu():iflen(stu_list):for stu in stu_list:print(f'姓名:{stu["name"]},年龄:{stu["age"]},性别:{stu["gender"]}')else:print("目前没有学生信息!")defsave():
f =open('student.txt','w')
f.write(str(stu_list))
f.close()defread_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()defmain():
read_file()whileTrue:
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()breakelse:print('输入有误,请重新输入')continueinput('........回车键继续操作........')
main()
二.面向对象版
1.工程文件
2.main.py
import student_manage_sysytem as sms
if __name__ =='__main__':
stu_sms = sms.StudenManagerSystem()
stu_sms.start()
3.student.py
classStudent():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
classStudenManagerSystem():def__init__(self):
self.stu_dict ={
}
@staticmethoddef__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:passdef__show_all_info(self):for stu in self.stu_dict.values():print(stu)defstart(self):
self.__load_info()whileTrue:
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('欢迎下次使用本系统')breakelse:print('输入有误,请重新输入')continueinput('........回车键继续操作........')