学生管理系统
系统需求
1.实现可以添加新的学员
2.修改单个学员的各项信息
3.将某个学员的所有信息全部删除
4.查看单个学员的信息
5.将所有学员的信息罗列出来
6.计算考试成绩的平均值
7.计算考试的及格率(大于60分)
8.每次操作后可以选择返回主菜单
9.将所有的学员信息保存在一个txt文件中
设计细节
因为某些操作会用到os模块所以先进行进行声明
import os
准备工作
# 创建总字典
# 创建的字典为大字典 我们采用字典嵌套的方式来进行数据的查找录入等....
all_dict = {
} #创建一个空的字典用来装数据
字典中的信息格式应为all_dict={学员学号:{学员信息},学员学号:{学员信息}…}采用字典嵌套的方式进行保存
将每个功能都装在函数中,可以减少内存,在需要用的时候直接调用就好了
1.上传数据
在上传之前先要创建一个 “学生信息.txt” 文件
然后用 global 方法来使函数中的 all_dict字典可以改变全局中all_dict字典
再用 eval() 函数将文件中的数据转换回原来的数据类型
def shangchuan(): #定义函数
if os.path.exists("学生信息.txt"): #判断是否存在存储数据的文件
with open("学生信息.txt", "r", encoding="utf-8") as file: #打开数据传输的通道
ret = file.read() #将读取的数据赋值给一个变量
global all_dict #利用global函数使局部变量可以影响全局变量
all_dict = eval(ret) #将eval() 函数用来执行一个字符串表达式,并返回表达式的值
print("加载成功.......")
2.添加新的学员信息
首先判断学员是否存在,学员不存在才可以添加,存在了的话接下来的一系列操作也就没属于添加新学员了
用 input 方法来让用户进行信息的输入
再利用字典的 setedfault 方法将数据保存进字典中
def add():
while True: #设置循环
num = input("请输入学号:")
if num in all_dict: #判断学员是否存在
print("该学生已存在!")
else:
name = input("请输入姓名:")
age = int(input("请输入年龄:"))
python = int(input("请输入python成绩:"))
# 将用户输入的信息添加到字典里
stu_dict = {
'num': num, 'name': name, 'age': age, 'python': python}
all_dict.setdefault(num, stu_dict)
print("添加成功!")
# 自定义是返回菜单还是继续添加
re_minu = int(input("返回主菜单输入0 继续输入新学员输入 1"))