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

  

posted @ 2020-02-19 21:00  shanlu  阅读(3657)  评论(0编辑  收藏  举报