前言
嗨喽~大家好呀,这里是魔王呐 ❤ ~!
环境使用:
-
Python 3.8 解释器
-
Pycharm 编辑器
可领取福利:
GUI学生管理系统源码
代码展示
从学生信息数据库<文本文件>里面读取数据
f = open('学生信息.txt', encoding='utf-8')
info_list = f.readlines()
创建一个空列表
student_info = []
for循环遍历, 把列表里面元素一个一个提取出来
for info in info_list:
"""
str.replace('\n', '') 字符串替换方法, 把\n替换成空的
str.split(',') 字符串分割方法, 以 , 作为分割, 把字符串分割成列表
"""
content = info.replace('\n', '').split(',')
创建字典
dit = {
'姓名': content[0],
'语文': content[1],
'数学': content[2],
'英语': content[3],
'总分': content[4],
}
列表添加元素
student_info.append(dit)
读取出来, 并且整理好数据内容, 列表数据容器, 把所有信息放到里面存储
# print(student_info)
msg = """**************************************************
欢迎使用【学生信息管理系统】V1.0
请选择你想要进行的操作
1. 新建学生信息
2. 显示全部信息
3. 查询学生信息
4. 删除学生信息
5. 修改学生信息
0. 退出系统
**************************************************"""
输出
while True:
print(msg)
# 输入相关指令, 让代码执行相关程序 等号左边是自定义变量名
num = input('请选择你要进行操作: ') # input输入内容, 返回字符串数据类型
# 判断, 判断输入内容是什么?
if num == '1':
print('新建学生信息')
# 输入学生姓名, 成绩
name = input('请输入学生姓名:')
chinese = input('请输入学生语文成绩:')
math = input('请输入学生数学成绩:')
english = input('请输入学生英语成绩:')
# 字符串用 + 拼接
score = int(chinese) + int(math) + int(english)
student_dit = {
'姓名': name,
'语文': chinese,
'数学': math,
'英语': english,
'总分': str(score),
}
# 添加学生信息, 放到数据库里面
student_info.append(student_dit)
# 会看报错的同学 1 不会看报错 0
elif num == '2':
print('显示全部信息')
# 排序的
student_info.sort(key=lambda x:x["总分"], reverse=True)
# \t 转义字符 制表符 一个tab键
print('姓名\t\t语文\t\t数学\t\t英语\t\t总分')
for student in student_info:
# student['姓名'] --> 字符串
# student['语文'] --> 整型
# student['总分'] --> 整型
# 数据类型不同, 不能直接相加
print(
student['姓名'] + '\t\t' +
str(student['语文']) + '\t\t\t' +
str(student['数学']) + '\t\t\t' +
str(student['英语']) + '\t\t\t' +
str(student['总分'])
)
查询学生信息
elif num == '3':
print('查询学生信息')
# 输入查询人 --> 在一整个数据库里面一一对比
name = input('请输入你要查询学生姓名: ')
# for循环 一一提取数据内容
for student in student_info:
# 判断人名对不对
if name == student['姓名']:
print('姓名\t\t语文\t\t数学\t\t英语\t\t总分')
print(
student['姓名'] + '\t\t' +
str(student['语文']) + '\t\t\t' +
str(student['数学']) + '\t\t\t' +
str(student['英语']) + '\t\t\t' +
str(student['总分'])
)
break
else:
print('找不到')
删除学生信息
elif num == '4':
print('删除学生信息')
name = input('请输入你要删除学生姓名: ')
for student in student_info:
if name == student['姓名']:
print('姓名\t\t语文\t\t数学\t\t英语\t\t总分')
print(
student['姓名'] + '\t\t' +
str(student['语文']) + '\t\t\t' +
str(student['数学']) + '\t\t\t' +
str(student['英语']) + '\t\t\t' +
str(student['总分'])
)
word = input('是否要真的开除这个学生, 不考虑一下吗? <Y/N>: ' )
if word == 'Y' or word == 'y':
# remove() 移除列表元素
student_info.remove(student)
break
elif word == 'N' or word == 'n':
break
else:
print('操作失误')
else:
print('找不到人')
修改学生信息
elif num == '5':
print('修改学生信息')
name = input('请输入你要删除学生姓名: ')
for student in student_info:
if name == student['姓名']:
print('姓名\t\t语文\t\t数学\t\t英语\t\t总分')
print(
student['姓名'] + '\t\t' +
str(student['语文']) + '\t\t\t' +
str(student['数学']) + '\t\t\t' +
str(student['英语']) + '\t\t\t' +
str(student['总分'])
)
word = input('就这, 成绩还有问题? <Y/N>: ')
if word == 'Y' or word == 'y':
# 输入学生姓名, 成绩
name = input('请输入学生姓名:')
chinese = input('请输入学生语文成绩:')
math = input('请输入学生数学成绩:')
english = input('请输入学生英语成绩:')
# 字符串用 + 拼接
score = int(chinese) + int(math) + int(english)
# 字典值修改
student['姓名'] = name
student['语文'] = chinese
student['数学'] = math
student['英语'] = english
student['总分'] = score
break
elif word == 'N' or word == 'n':
break
else:
print('操作失误')
else:
print('找不到人')
退出系统
elif num == '0':
print('退出系统')
# 退出的时候, 要做数据保存
with open('学生信息.txt', mode='w', encoding='utf-8') as f:
for student in student_info:
f.write(f'{student["姓名"]},{student["语文"]},{student["数学"]},{student["英语"]},{student["总分"]}')
f.write('\n')
exit() # 退出
else:
print('输入有误')
尾语 💝
要成功,先发疯,下定决心往前冲!
学习是需要长期坚持的,一步一个脚印地走向未来!
未来的你一定会感谢今天学习的你。
—— 心灵鸡汤
本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 😝