python练习:编写一个学生管理系统,毕设项目

编写一个学生管理系统(Student Management System)通常涉及到多个方面,如学生信息的增删改查、成绩管理、课程管理、教师管理等等。为了简化说明,这里我将提供一个简化的学生管理系统的基本框架和前言示例。

前言

随着教育信息化的不断发展,传统的学生管理方式已经难以满足现代教育的需求。为了提高学校的管理效率,降低管理成本,我们设计并开发了这款学生管理系统。该系统基于Python语言,结合数据库技术,实现了对学生信息的全面管理,为学校的教育管理工作提供了有力的支持。

本系统主要具备以下功能:

  1. 学生信息管理:支持学生基本信息的录入、修改、查询和删除,方便学校管理人员对学生信息的维护。

  2. 成绩管理:教师可以录入学生成绩,学生可查询自己的成绩信息,管理员可进行成绩的统计分析。

  3. 统计分析:系统能够根据存储的数据,生成各类统计报表,如学生成绩分布、班级人数统计等,为学校的教育决策提供数据支持。

  4. 权限管理:系统采用多角色多权限设计,确保不同用户只能访问和操作自己权限范围内的功能。

本系统的设计目标是提高学校管理的信息化水平,为学校管理人员提供一个方便、快捷、高效的学生信息管理平台。同时,我们也期待通过不断的优化和升级,为学校的教育管理工作带来更多的便利和价值。

  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:退出系统
---------------------------
请输入要进行的操作(数字):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值