编写一个学生管理系统(Student Management System)通常涉及到多个方面,如学生信息的增删改查、成绩管理、课程管理、教师管理等等。为了简化说明,这里我将提供一个简化的学生管理系统的基本框架和前言示例。
前言
随着教育信息化的不断发展,传统的学生管理方式已经难以满足现代教育的需求。为了提高学校的管理效率,降低管理成本,我们设计并开发了这款学生管理系统。该系统基于Python语言,结合数据库技术,实现了对学生信息的全面管理,为学校的教育管理工作提供了有力的支持。
本系统主要具备以下功能:
-
学生信息管理:支持学生基本信息的录入、修改、查询和删除,方便学校管理人员对学生信息的维护。
-
成绩管理:教师可以录入学生成绩,学生可查询自己的成绩信息,管理员可进行成绩的统计分析。
-
统计分析:系统能够根据存储的数据,生成各类统计报表,如学生成绩分布、班级人数统计等,为学校的教育决策提供数据支持。
-
权限管理:系统采用多角色多权限设计,确保不同用户只能访问和操作自己权限范围内的功能。
本系统的设计目标是提高学校管理的信息化水平,为学校管理人员提供一个方便、快捷、高效的学生信息管理平台。同时,我们也期待通过不断的优化和升级,为学校的教育管理工作带来更多的便利和价值。
1 import time 2 import os 3
4 # 定义一个列表,用来存储所有的学生信息(每个学生是一个字典)
5 stu\_info = \[\] 6
7 # 打印操作提示命令的函数
8 def print\_menu(): 9 print("\---------------------------")
10 print(" 学生管理系统 V1.0")
11 print(" 1:添加学生")
12 print(" 2:删除学生")
13 print(" 3:修改学生")
14 print(" 4:查询学生")
15 print(" 5:显示所有学生")
16 print(" 6:保存数据")
17 print(" 7:退出系统")
18 print("\---------------------------")
19
20 def add\_info(): 21 """添加学生信息"""
22 global stu\_info # 学生信息列表成为全局变量
23
24 add\_name = input("请输入姓名:")
25 add\_tel = input("请输入电话号码:")
26 add\_qq = input("请输入QQ:")
27
28 # 判断是否可以添加(所要添加的名字在列表中没有才可以添加)
29 for info in stu\_info: 30 if info\['name'\] == add\_name: 31 print("此用户名已经被占用,请重新输入")
32 return # 如果一个函数只有 return ,就相当于让函数结束,没有返回值
33
34 # 定义一个字典,用来存储添加的学生信息
35 info = {} 36
37 # 向字典中添加数据
38 info\["name"\] = add\_name 39 info\["tel"\] = add\_tel 40 info\["qq"\] = add\_qq 41
42 # 向列表中添加这个字典
43 stu\_info.append(info)
44 print("添加成功,按6保存后按5查看")
45
46 def del\_info(): 47 """删除学生信息"""
48 global stu\_info 49
50 del\_id = int(input("请输入要删除的序号:"))
51 # 判断是否可以删除,(删除的学号范围限制)
52 if 0 <= del\_id < len(stu\_info): 53 del\_flag = input("确定删除?yes or no:")
54 if del\_flag == 'yes':
55 del stu\_info\[del\_id\] 56 print("删除成功,按6保存后按5查看")
57 else:
58 print("输入序号有误,请重新输入")
59
60 def modify\_info(): 61 """修改学生信息"""
62 global stu\_info 63
64 modify\_id = int(input("请输入要修改的序号:"))
65 # 判断是否可以修改(输入的学号范围限制)
66 if 0 <= modify\_id < len(stu\_info): 67 print("你要修改的信息是:")
68 print("name:%s,tel:%s,QQ:%s" %
69 (stu\_info\[modify\_id\]\["name"\], stu\_info\[modify\_id\]\["tel"\], stu\_info\[modify\_id\]\["qq"\]))
70 mod\_info = input("您要修改的信息是:")
71 stu\_info\[modify\_id\]\[mod\_info\] = input("请输入新的%s:" % mod\_info)
75 print("修改成功,按6保存后按5查看")
76 else:
77 print("输入序号有误:请重新输入")
78
79 def query\_info(): 80 """查询学生信息"""
81 query\_name = input("请输入要查询学生姓名:")
82 for info in stu\_info: 83 if info\["name"\] == query\_name: 84 print("查询到的信息如下")
85 print("name:%s,tel:%s,QQ:%s" % (info\["name"\], info\["tel"\], info\["qq"\]))
break # 不使用break退出循环,else后的语句一定被打印
86 else:
87 print("没有您要找的信息")
88
89 def show\_all(): 90 """显示所有学生信息"""
91 print("序号\\t\\t姓名\\t\\t手机号\\t\\tQQ")
92 i = 0 93 for info in stu\_info: 94 print("%d\\t\\t%s\\t\\t%s\\t\\t%s" % (i, info\['name'\], info\['tel'\], info\['qq'\]))
95 i += 1
96
97 def sava\_data(): 98 """保存数据"""
99 f = open("info.txt", 'w')
100 f.write(str(stu\_info))
101 f.close()
102
103 def load\_data():
104 """加载数据"""
105 global stu\_info
106 f = open("info.txt")
107 content = f.read()
108 stu\_info = eval(content)
109 f.close()
110
111 def main():
112 """用来控制整个流程"""
113
114 # 加载数据(一次即可)
115 load\_data()
116
117 while True:
118 # 1,打印功能
119 print\_menu()
120 # 2,获取用户的选择
121 num=input("请输入要进行的操作(数字):")
122 # 3,根据用户的选择,做相应的事情
123 if num == '1':
124 add\_info()
125 elif num == '2':
126 del\_info()
127 elif num == '3':
128 modify\_info()
129 elif num == '4':
130 query\_info()
131 elif num == '5':
132 show\_all()
133 elif num == '6':
134 sava\_data()
135 elif num == '7':
136 # 退出系统
137 exit\_flag = input("确定要退出吗?yes or no")
138 if exit\_flag == 'yes':
139 break
140 else:
141 print("请输入正确的操作序号:")
142
143 # input("按回车键继续...")
144
145 # 程序的开始
146 main()
准备:
需要准备一个 info.txt 文件,并且 在其中写入 一对 [ ]
操作演示:
①添加学生
C:\\Users\\高萍\\AppData\\Local\\Programs\\Python\\Python37\\python.exe C:/Users/高萍/Desktop/python/寒假直播课/code/学生管理系统(文件版).py
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):5
序号 姓名 手机号 QQ
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):1
请输入姓名:张三
请输入电话号码:12345678
请输入QQ:zhangsan123
添加成功,按6保存后按5查看
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):6
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):5
序号 姓名 手机号 QQ
0 张三 12345678 zhangsan123
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):
②删除学生
C:\\Users\\高萍\\AppData\\Local\\Programs\\Python\\Python37\\python.exe C:/Users/高萍/Desktop/python/寒假直播课/code/学生管理系统(文件版).py
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):5
序号 姓名 手机号 QQ
0 张三 12345678 zhangsan123
1 李四 12345 lisi123
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):2
请输入要删除的序号:1
确定删除?yes or no:yes
删除成功,按6保存后按5查看
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):6
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):5
序号 姓名 手机号 QQ
0 张三 12345678 zhangsan123
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):
③修改学生
C:\\Users\\高萍\\AppData\\Local\\Programs\\Python\\Python37\\python.exe C:/Users/高萍/Desktop/python/寒假直播课/code/学生管理系统(文件版).py
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):5
序号 姓名 手机号 QQ
0 张三 12345678 zhangsan123
1 jack 123 jack123
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):3
请输入要修改的序号:1
你要修改的信息是:
name:jack,tel:123,QQ:jack123
您要修改的信息是:name
请输入新的name:sally
修改成功,按6保存后按5查看
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):6
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):5
序号 姓名 手机号 QQ
0 张三 12345678 zhangsan123
1 sally 123 jack123
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):
④查询学生
C:\\Users\\高萍\\AppData\\Local\\Programs\\Python\\Python37\\python.exe C:/Users/高萍/Desktop/python/寒假直播课/code/学生管理系统(文件版).py
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):5
序号 姓名 手机号 QQ
0 张三 12345678 zhangsan123
1 sally 123 jack123
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):4
请输入要查询学生姓名:张三
查询到的信息如下
name:张三,tel:12345678,QQ:zhangsan123
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):
⑤显示所有学生
⑥保存数据
⑦退出系统
C:\\Users\\高萍\\AppData\\Local\\Programs\\Python\\Python37\\python.exe C:/Users/高萍/Desktop/python/寒假直播课/code/学生管理系统(文件版).py
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):5
序号 姓名 手机号 QQ
0 张三 12345678 zhangsan123
1 sally 123 jack123
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):7
确定要退出吗?yes or no:yes
Process finished with exit code 0
若想要修改多个信息
1 import time 2 import os 3
4 # 定义一个列表,用来存储所有的学生信息(每个学生是一个字典)
5 stu\_info = \[\] 6
7 # 打印操作提示命令的函数
8 def print\_menu(): 9 print("\---------------------------")
10 print(" 学生管理系统 V1.0")
11 print(" 1:添加学生")
12 print(" 2:删除学生")
13 print(" 3:修改学生")
14 print(" 4:查询学生")
15 print(" 5:显示所有学生")
16 print(" 6:保存数据")
17 print(" 7:退出系统")
18 print("\---------------------------")
19
20 def add\_info(): 21 """添加学生信息"""
22 global stu\_info # 学生信息列表成为全局变量
23
24 add\_name = input("请输入姓名:")
25 add\_tel = input("请输入电话号码:")
26 add\_qq = input("请输入QQ:")
27
28 # 判断是否可以添加(所要添加的名字在列表中没有才可以添加)
29 for info in stu\_info: 30 if info\['name'\] == add\_name: 31 print("此用户名已经被占用,请重新输入")
32 return # 如果一个函数只有 return ,就相当于让函数结束,没有返回值
33
34 # 定义一个字典,用来存储添加的学生信息
35 info = {} 36
37 # 向字典中添加数据
38 info\["name"\] = add\_name 39 info\["tel"\] = add\_tel 40 info\["qq"\] = add\_qq 41
42 # 向列表中添加这个字典
43 stu\_info.append(info)
44 print("添加成功,按6保存后按5查看")
45
46 def del\_info(): 47 """删除学生信息"""
48 global stu\_info 49
50 del\_id = int(input("请输入要删除的序号:"))
51 # 判断是否可以删除,(删除的学号范围限制)
52 if 0 <= del\_id < len(stu\_info): 53 del\_flag = input("确定删除?yes or no:")
54 if del\_flag == 'yes':
55 del stu\_info\[del\_id\] 56 print("删除成功,按6保存后按5查看")
57 else:
58 print("输入序号有误,请重新输入")
59
60 def modify\_info(): 61 """修改学生信息"""
62 global stu\_info 63
64 modify\_id = int(input("请输入要修改的序号:"))
65 # 判断是否可以修改(输入的学号范围限制)
66 if 0 <= modify\_id < len(stu\_info): 67 print("你要修改的信息是:")
68 print("name:%s,tel:%s,QQ:%s" %
69 (stu\_info\[modify\_id\]\["name"\], stu\_info\[modify\_id\]\["tel"\], stu\_info\[modify\_id\]\["qq"\]))
70 # mod\_info = input("您要修改的信息是:")
71 # stu\_info\[modify\_id\]\[mod\_info\] = input("请输入新的%s:" % mod\_info)
**72 stu\_info\[modify\_id\]\['name'\] = input("请输入新的姓名:")
73 stu\_info\[modify\_id\]\['tel'\] = input("请输入新的电话:")
74 stu\_info\[modify\_id\]\['QQ'\] = input("请输入新的QQ")** 75 print("修改成功,按6保存后按5查看")
76 else:
77 print("输入序号有误:请重新输入")
78
79 def query\_info(): 80 """查询学生信息"""
81 query\_name = input("请输入要查询学生姓名:")
82 for info in stu\_info: 83 if info\["name"\] == query\_name: 84 print("查询到的信息如下")
85 print("name:%s,tel:%s,QQ:%s" % (info\["name"\], info\["tel"\], info\["qq"\]))
86 break # 如果不使用break结束循环,else后的语句一定会被打印
87 else:
88 print("没有您要找的信息")
89
90 def show\_all(): 91 """显示所有学生信息"""
92 print("序号\\t\\t姓名\\t\\t手机号\\t\\tQQ")
93 i = 0 94 for info in stu\_info: 95 print("%d\\t\\t%s\\t\\t%s\\t\\t%s" % (i, info\['name'\], info\['tel'\], info\['qq'\]))
96 i += 1
97
98 def sava\_data(): 99 """保存数据"""
100 f = open("info.txt", 'w')
101 f.write(str(stu\_info))
102 f.close()
103
104 def load\_data():
105 """加载数据"""
106 global stu\_info
107 f = open("info.txt")
108 content = f.read()
109 stu\_info = eval(content)
110 f.close()
111
112 def main():
113 """用来控制整个流程"""
114
115 # 加载数据(一次即可)
116 load\_data()
117
118 while True:
119 # 1,打印功能
120 print\_menu()
121 # 2,获取用户的选择
122 num=input("请输入要进行的操作(数字):")
123 # 3,根据用户的选择,做相应的事情
124 if num == '1':
125 add\_info()
126 elif num == '2':
127 del\_info()
128 elif num == '3':
129 modify\_info()
130 elif num == '4':
131 query\_info()
132 elif num == '5':
133 show\_all()
134 elif num == '6':
135 sava\_data()
136 elif num == '7':
137 # 退出系统
138 exit\_flag = input("确定要退出吗?yes or no:")
139 if exit\_flag == 'yes':
140 break
141 else:
142 print("请输入正确的操作序号:")
143
144 # input("按回车键继续...")
145
146 # 程序的开始
147 main()
演示:
C:\\Users\\高萍\\AppData\\Local\\Programs\\Python\\Python37\\python.exe C:/Users/高萍/Desktop/python/寒假直播课/code/学生管理系统(文件版).py
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):5
序号 姓名 手机号 QQ
0 张三 12345678 zhangsan123
1 sally 123 jack123
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):3
请输入要修改的序号:1
你要修改的信息是:
name:sally,tel:123,QQ:jack123
请输入新的姓名:sally2
请输入新的电话:1234
请输入新的QQsally123
修改成功,按6保存后按5查看
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):6
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):5
序号 姓名 手机号 QQ
0 张三 12345678 zhangsan123
1 sally2 1234 jack123
---------------------------
学生管理系统 V1.0
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:显示所有学生
6:保存数据
7:退出系统
---------------------------
请输入要进行的操作(数字):