使用Python实现学生信息管理系统
本文介绍了一个简单的学生信息管理系统,包括管理员登录、重置学生密码、添加、删除和修改学生信息、查询学生信息以及对学生成绩进行排序等功能。该系统使用Python编写,基于控制台交互实现思路
该系统分为两个部分,管理员登录和学生信息管理。在管理员登录时,程序会要求用户输入用户名和密码进行身份验证;验证通过后,进入到学生信息管理界面。学生信息管理界面提供了多种操作方式,包括重置学生密码、添加、删除和修改学生信息、查询学生信息以及对学生成绩进行排序等功能。
在实现过程中,我们使用了文件存储学生信息,其中每一行代表一个学生的信息,各字段之间以逗号分隔。在对学生成绩进行排序时,我们计算每个学生的平均分,并将其作为排序依据。
代码实现
登录界面
# 登录界面
def login():
print("欢迎使用学生信息管理系统") # 打印欢迎信息
while True: # 一直循环直到输入正确的角色类型
role = input("请输入登录角色(1-学生,2-管理员):") # 输入角色类型
if role == '1': # 如果输入是学生
student_login() # 转到学生登录函数
break # 结束循环
elif role == '2': # 如果输入是管理员
admin_login() # 转到管理员登录函数
break # 结束循环
else:
print("输入有误,请重新输入") # 提示输入错误,重新输入执行效果
https://img-blog.csdnimg.cn/2b6c16c4189a4dc3ae44a11905cf898e.gif
学生登录
# 学生登录
def student_login():
while True: # 一直循环直到输入正确的账号和密码
account = input("请输入账号:") # 输入账号
password = input("请输入密码:") # 输入密码
with open('xs.txt', 'r', encoding='utf-8') as f: # 打开存放学生信息的文件
for line in f: # 遍历所有行
data = line.strip().split() # 分隔每行数据
姓名 = data.split(':').strip() # 获取姓名
学号 = data.split(':').strip() # 获取学号
账号 = data.split(':').strip() # 获取账号
密码 = data.split(':').strip() # 获取密码
if 账号 == account and 密码 == password: # 如果账号和密码匹配
print(f"欢迎登陆,{姓名}同学!") # 打印欢迎信息
student_menu(account) # 转到学生菜单函数
return # 结束函数
print("账号或密码错误,请重新输入") # 提示输入错误,重新输入执行效果
https://img-blog.csdnimg.cn/ac7def13e9224a739e7e9510b8c27255.gif
学生菜单
# 学生菜单
def student_menu(account):
while True: # 一直循环直到选择退出系统或者退回登录界面
print("""
================
1. 查看所有学生信息
2. 查询个人信息
3. 退回登录界面
0. 退出系统
================
""") # 打印菜单
choice = input("请输入您的选择:") # 输入选项
if choice == "1": # 如果输入为 1
show_all_students() # 转到显示所有学生信息函数
elif choice == "2": # 如果输入为 2
show_student_info() # 转到显示个人信息函数
elif choice == "3": # 如果输入为 3
login() # 返回登陆
elif choice == "0": # 如果输入为 0
print("感谢使用本系统,再见!") # 打印欢送信息
exit() # 退出程序
else:
print("输入有误,请重新输入!") # 提示输入错误,重新输入执行效果
https://img-blog.csdnimg.cn/9a7b10bc5a824d5db88f20c4aceefc6f.gif
展示所有学生信息
# 展示所有学生信息def show_all_students(): with open('xinxi.txt', 'r',encoding='utf-8') as f: # 打开存放学生信息的文件 lines = f.readlines() # 读取所有行 if len(lines) == 0: # 如果文件为空 print("暂无学生信息") # 打印提示信息 return # 结束函数 header = "{:
页:
[1]