
https://img2022.cnblogs.com/blog/2866723/202205/2866723-20220505175242570-641540494.png
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()