学生管理系统
2022-05-05
17:24:02
1 stuInfos=[] 2 def printMenu(): 3 print("="*20) 4 print(" 学生信息成绩管理系统") 5 print("1.添加学生信息") 6 print("2.删除学生信息") 7 print("3.查找学生") 8 print("4.对数据进行排序") 9 print("5.显示所有信息") 10 print("6.统计计算机成绩及格比例") 11 print("7.保存数据") 12 print("8.恢复数据") 13 print("9.退出系统") 14 print("="*20) 15 16 def addStuInfo(): 17 newNum=input("请输入新学生的学号:") 18 newName=input("请输入新学生的姓名:") 19 newSex=input("请输入新学生的性别(男/女):") 20 newScore=int(input("请输入新学生的成绩:")) 21 newInfo={} 22 newInfo["num"]=newNum 23 newInfo["name"]=newName 24 newInfo["sex"]=newSex 25 newInfo["score"]=newScore 26 stuInfos.append(newInfo) 27 28 def delStuInfo(student): 29 del_num=input("请输入要删除的学生的学号:") 30 for stu in student: 31 if stu["num"]==del_num: 32 student.remove(stu) 33 34 def showStuInfo(): 35 print("="*20) 36 print("学生的信息如下:") 37 print("="*20) 38 print("序号 学号 姓名 性别 成绩") 39 i=1 40 for tempInfo in stuInfos: 41 print("%-5d %-5s %-5s %-5s %-5s"%(i,tempInfo["num"],tempInfo["name"], 42 tempInfo["sex"],tempInfo["score"])) 43 i+=1 44 45 def sortStuInfo(): 46 sort=[] 47 for s in stuInfos: 48 sort.append(s) 49 sorted=input("请选择(0升序;1降序):") 50 if sorted=="0": 51 sorted=False 52 elif sorted=="1": 53 sorted=True 54 else: 55 print("您的输入有误,请重新输入!") 56 mode=input("请选择排序方式(1.按学号进行排序;2.按成绩进行排序):") 57 if mode=="1": 58 stuInfos.sort(key=lambda x:x["num"],reverse=sorted) 59 elif mode=="2": 60 stuInfos.sort(key=lambda x:x["score"],reverse=sorted) 61 else: 62 print("您的输入有误,请重新输入!") 63 showStuInfo() 64 65 def prStuInfo(): 66 list=[] 67 b=0 68 for a in stuInfos: 69 list.append(a["score"]) 70 for i in list: 71 if i >=60: 72 b+=1 73 c=b/len(stuInfos)*100 74 print("计算机成绩的及格率为:%.2f%%"%c) 75 76 def save_file(): 77 with open('zuoye.txt','w')as file: 78 file.write(str(stuInfos)) 79 80 def recover_data(): 81 global stuInfos 82 with open('zuoye.txt','r')as file: 83 content=file.read() 84 stuInfos=eval(content) 85 86 def inquireStuInf(): 87 num_2= input('请输入要查询学生的学号:') 88 for stu_2 in stuInfos: 89 if stu_2['num'] == num_2: 90 print(stu_2['num'],stu_2['name'],stu_2['sex'],stu_2['score']) 91 else: 92 print('没有查询到该生的信息!') 93 94 def main(): 95 while True: 96 printMenu() 97 key=input("请输入功能对应的数字:") 98 if key=="1": 99 addStuInfo() 100 elif key=="2": 101 delStuInfo(stuInfos) 102 elif key=="3": 103 inquireStuInf() 104 elif key=="4": 105 sortStuInfo() 106 elif key=="5": 107 showStuInfo() 108 elif key=="6": 109 prStuInfo() 110 elif key=="7": 111 save_file() 112 elif key=="8": 113 recover_data() 114 elif key=="9": 115 quit_con=input("确定退出吗? (Yes or No): ") 116 if quit_con=='Yes': 117 break 118 main()