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