学生信息管理系统负责编辑学生信息
下面通过python实现一个简单的学生信息管理系统
要求如下:
1.添加学生的信息
2.删除学生的信息
3.修改的信息
4.查询学生的信息
5.遍历学生的信息
6.退出系统
写法:
1.先考虑整体的框架(即搭框架),不要刚开始就考虑函数。
2.提示用户选择功能。
3.获取用户选择的功能。
4.根据用户的选择,执行相应的功能。
代码如下:
1 # 0.学生管理系统界面
2 def showInfo():
3 print("-"*30)
4 print(" 学生管理系统 v1.0")
5 print(" 1:添加学生的信息")
6 print(" 2:删除学生的信息")
7 print(" 3:修改的信息")
8 print(" 4:查询学生的信息")
9 print(" 5:遍历学生的信息")
10 print(" 6:退出系统")
11 print("-" * 30)
12
13
14 # 1.添加学生的信息
15 def addNewStu(studentsTemp):
16 name = input("请输入姓名:")
17 stuId = input("请输入学号:")
18 age = input("请输入年龄:")
19
20 # 2.判断是否能加这个学生:如果学生姓名已经存在报错提示;如果姓名不存在添加数据
21 global students # 声明students为全局变量
22
23 # 2.1不允许学号重复:判断用户输入的学号和列表里面字典的id对应的值相等提示
24 for i in students:
25 if stuId == i['id']:
26 print("该学号已经存在,请重新操作!!!")
27 # return作用:退出当前函数,后面添加信息的代码不执行
28 return
29
30 # 2.2如果输入的姓名不存在,添加数据:准备空字典,字典新增数据,列表追加字典
31 stuInfo = {} # 2.2.1准备空字典
32
33 # 2.2.2字典新增数据
34 stuInfo['name'] = name # 如果name存在赋值修改,如果name不存在则赋值新增“name”这个变量
35 stuInfo['id'] = stuId
36 stuInfo['age'] = age
37
38 # 2.2.3列表追加字典数据
39 studentsTemp.append(stuInfo)
40
41
42
43 # 2.删除学生的信息
44 def del_info():
45 # 1.用户输入要删除的学生的学号
46 del_name = input("请输入要删除的姓名:")
47
48 # 2.判断学生是否存在:存在则删除:不存在提示
49 # 2.1声明students为全局变量
50 global students
51 # 2.2遍历列表
52 for i in students:
53 # 2.3判断学生是否存在:存在执行删除(列表用面的学典).break:这个系统不允许重名,删除了一个后面的不需要再遍历。不存在提示
54 if del_name == i['name']:
55 students.remove(i)
56 break
57 else: # 循环正常结束
58 print("该学生不存在")
59 print(students)
60
61
62 # 3.修改学生的信息
63 def modify_info():
64 # 1.用户输入想要修改的学生的姓名
65 modify_name = input("请输入要修改的学生的姓名:")
66 # 2.判断学生是否存在:存在修改学号:不存在,提示
67 # 2.1声明students是全局变量
68 global students
69 # 2.2遍历列表,判断输入的姓名==字典['name']
70 for i in students:
71 if modify_name == i['name']:
72 # 将stuId修改key值,并终止此循环
73 i['id'] = input("请输入新的学号:")
74 break
75 else:
76 # 学生不存在
77 print("该学生不存在")
78 # 3.打印students
79 print(students)
80
81
82 # 4.查询学生的信息
83 def search_info():
84 # 1.用户输入目标学生姓名
85 search_name = input("请输入要查询的学生的姓名:")
86 # 2.检查学生是否存在:存在打印这个学生的信息;不存在则提示
87 # 2.1声明students为全局变量
88 global students
89 # 2.2遍历students,判断输入的学号是否存在
90 for i in students:
91 if search_name == i['name']:
92 # 学员存在:打印信息并终止循环
93 print("查询到的学生信息如下----------")
94 print(f"学生的学号是{i['id']},学生的姓名是{i['name']},学生的年龄是{i['age']}")
95 break
96 else:
97 # 学生不存在的提示
98 print("对不起,您查询的学生不存在,请重试!")
99
100
101 # 5.遍历学生的信息
102 def print_all():
103 # 1.打印提示字
104 print('学号\t姓名\t年龄')
105
106 # 2.打印所有学生的数据
107 for i in students:
108 print(f"{i['id']}\t{i['name']}\t{i['age']}")
109
110
111 students = [] # 等待存储所有学生信息
112 # 系统功能需要循环使用,直在用户输入6,才退出系统
113 while True:
114 showInfo() # 显示主界面
115 key = int(input("请选择功能(序号):"))
116
117 if key == 1:
118 addNewStu(students)
119 elif key == 2:
120 del_info()
121 elif key == 3:
122 modify_info()
123 elif key == 4:
124 search_info()
125 elif key == 5:
126 print_all()
127 elif key == 6:
128 exit_flag = input("您确定要退出吗?yes/no\n")
129 if exit_flag == 'yes':
130 break
131 else:
132 print("输入有误,请重新输入!")
133