Python学生成绩管理,python成绩管理系统设计
本文主要介绍用python编写的学生成绩管理系统的八个功能实例。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
00-1010学生信息系统一、功能界面二、主功能三、学生信息录入功能四、学生信息搜索功能五、删除学生信息六、学生信息修改功能七、学生成绩排序八、学生人数统计九、显示打包的所有学生信息程序。
目录
提示:python写的学生成绩管理系统,包含8个函数和打包教程。
学生信息系统
def菜单():
打印(=================student _ manger==============)
打印(-)
打印( \t\t1。输入学生信息’)
打印( \t\t2。查找学生信息’)
打印( \t\t3。删除学生信息’)
打印( \t\t4。修改学生成绩’)
打印( \t\t5。排序’)
打印( \t\t6。统计学生总数’)
打印( \t\t7。显示所有学生信息’)
打印( \t\t8。显示功能介绍按钮’)
打印( \t\t0。退出’)
打印(========================================)
一、功能界面
定义主():
菜单()
而True:
尝试:
Choice=int(input(请选择你要做的操作3360 ))
除了ValueError:
打印(输入的数据有错误。您只能输入0到7之间的整数!)
尝试:
Choice=int(input(请重新输入: ))
除了ValueError:
打印(重复输入错误,退出系统!)
破裂
if选择在[0,1,2,3,4,5,6,7,8]:
if choice==0:
回答=输入(你确定要退出系统吗?(是/否):’)
如果答案==Y 或答案==y:
打印(感谢您的使用!)
破裂
elif答案==N 或答案==n:
Print(返回到上一个操作!)
继续
else:
输入(输入不正确,回到主界面!)
继续
elif choice==1:
插入()
elif choice==2:
搜索()
elif choice==3:
删除()
elif choice==4:
修改()
elif choice==5:
排序()
elif choice==6:
总计()
elif choice==7:
显示()
else:
menum()
else:
print(你选择的操作无效,请重新输入!:)
三 、学生信息录入功能
逻辑结构图
def insert():student_list = []
id_list = []
while True:
id = input(请输入ID: )
if not id:
break
name = input(请输入姓名:)
if not name:
break
try:
english = float(input(请输入英语成绩:))
math = float(input(请输入数学成绩:))
python = float(input(请输入Python成绩:))
except ValueError:
print(数据输入错误!)
continue
# 将录入的学生信息存放到字典中
student = {id: id, name: name, english: english, math: math, Python: python}
# 将每个学生的信息存放在列表中
if student[id] in id_list: # student[id] = value(id)
print(已存在相同ID:)
for i in range(len(student_list)):
if student_list[i][id] == student[id]: # 输出重复id元素
print(student_list[i].items())
break
print(请重新录入!)
else:
id_list.append(str(student[id]))
student_list.append(student)
# 是否继续添加学生信息
answer = input(是否继续添加学生信息?(Y/N): )
if answer == Y or answer == y:
continue
elif answer == N or answer == n:
# 存储学生信息
save(student_list, filename)
print(学生信息录入完毕!)
break
else:
print(输入错误,即将返回主界面!)
break
四 、学生信息查找功能
逻辑结构图
代码
def search():while True:
if os.path.exists(filename):
with open(filename, r, encoding = utf-8) as s_file:
student_qurey = s_file.readlines() # 将学生信息全部取出
id_list = []
name_list = []
for i in student_qurey:
d = dict(eval(i))
id_list.append(d[id]) # 将所有学生的id存放在id_list中
name_list.append(d[name]) # 将所有学生的name存放在id_list中
try:
mode = int(input(请选择查询模式: 1.按照ID查询 / 2.按照姓名查询 ))
except ValueError:
print(数据类型输入错误!请重新输入!)
else:
if mode == 1: # 按照ID查询
id = input(请输入学生id: )
if id in id_list:
print(已经查找到该名学生:)
print(ID\t\t\t姓名:\t\t英语成绩:\t\t数学成绩:\t\tPython成绩:\t\t总成绩:)
for item in student_qurey:
if dict(eval(item))[id] == id:
p = dict(eval(item))
print({0}\t\t{1}\t\t {2}\t\t {3}\t\t {4}\t\t {5}.format(
p[id], p[name], p[english], p[math], p[Python],
float(p[english])+float(p[math])+float(p[Python])))
else:
print(查无此人!)
elif mode == 2: # 按照姓名查询
name = input(请输入学生姓名: )
if name in name_list:
print(已经查找到该名学生:)
print(ID\t\t\t姓名:\t\t英语成绩:\t\t数学成绩:\t\tPython成绩:\t\t总成绩:)
for item in student_qurey:
if dict(eval(item))[name] == name:
p = dict(eval(item))
print({0}\t\t{1}\t\t {2}\t\t {3}\t\t {4}\t\t {5}.format(
p[id], p[name], p[english], p[math], p[Python],
float(p[english]) + float(p[math]) + float(p[Python])))
else:
print(查无此人!)
else:
print(输入错误,只能选择1/2两种模式!)
answer = input(是否继续查询? (Y/N))
if answer == Y or answer == y:
continue
elif answer == N or answer == n:
print(正在退出查询..)
break
else:
print(输入错误,即将返回主界面!)
break
else:
print(无学生信息文件!)
return
五 、删除学生信息
逻辑结构图
代码
def delete():while True:
student_id = input(请输入想要删除的学生的ID: )
if student_id != :
if os.path.exists(filename):
with open(filename, r, encoding = utf-8) as file:
student_old = file.readlines()
else:
student_old = []
flag = False # 标记是否删除
if student_old:
with open(filename, w, encoding = utf-8) as wfile:
for item in student_old:
d = dict(eval(item)) # 转化为字典类型
if d[id] != student_id:
wfile.write(str(d)+\n)
else:
flag = True
if flag:
print(fid为{student_id}的学生信息已被删除!)
else:
print(f没有找到id为{student_id}的学生信息!)
else:
print(无学生信息)
break
show() # 显示更新后的文件信息
answer = input(是否继续删除学生信息?(Y/N): )
if answer == Y or answer == y:
continue
elif answer == N or answer == n:
break
else:
print(输入错误,即将返回主界面!)
break
六 、学生信息修改功能
逻辑结构图
代码
def modify():show()
if os.path.exists(filename):
with open(filename, r, encoding = utf-8) as rfile:
student_old = rfile.readlines() # 直接将文本文件的内容整行读取到列表中
else:
print(学生文件信息不存在!)
student_id = input(请输入想要修改的学生的ID: )
with open(filename, w, encoding = utf-8) as just_file: # 判断学生是否在该系统中
id_list = []
for i in student_old:
d = dict(eval(i))
id_list.append(d[id]) # 将所有学生的id存放在id_list中
if student_id in id_list: # 要修改的学生存在时
for item in student_old:
e = dict(eval(item))
if e[id] == student_id:
print(已找到该名学生!)
while True:
try:
e[name] = input(请输入姓名: )
e[english] = input(请输入英语成绩: )
e[math] = input(请输入数学成绩: )
e[Python] = input(请输入Python成绩: )
except ValueError:
print(数据类型输入错误!请重新输入!)
else:
break # try...except..else: 输入为出错时,执行else语句
just_file.write(str(e) + \n)
print(修改成功!)
else:
just_file.write(str(e) + \n)
else:
answer1 = input(查无此人!,是否执行插入操作? (Y/N))
if answer1 == Y or answer1 == y:
insert()
else:
print(结束当前操作)
answer = input(是否继续修改其余学生信息?(Y/N): )
if answer == Y or answer == y:
modify()
elif answer == N or answer == n:
print(结束修改,即将返回主界面..)
else:
print(输入错误,即将返回主界面!)
七 、学生成绩排序
逻辑结构图
代码
def sort():
student_new = []
if os.path.exists(filename):
with open(filename, r, encoding = utf-8) as sort_file:
student_list = sort_file.readlines() # 无序的学生信息列表
for item in student_list:
d = dict(eval(item))
student_new.append(d) # 列表元素转化为字典
while True:
try:
sort_choice = int(input(请选择排序方式: 0:升序 / 1:降序\t))
except ValueError:
print(输入的数据类型错误,请重新输入)
else:
if sort_choice == 0:
Flag = False
break
elif sort_choice == 1:
Flag = True
break
else:
print(输入错误,只能在0/1中选择!)
continue
while True:
try:
asc_choice = int(input(请选择按照哪一门成绩进行排序: 英语:0 / 数学:1 / python:2\t\t))
except ValueError:
print(输入的数据类型错误,请重新输入)
else:
if asc_choice == 0:
student_new.sort(key = lambda x: int(x[english]), reverse = Flag) # 根据列表中的元素进行排序
show()
break
elif asc_choice == 1:
student_new.sort(key = lambda x: int(x[math]), reverse = Flag)
show()
break
elif asc_choice == 2:
student_new.sort(key = lambda x: int(x[Python]), reverse = Flag)
show()
break
elif asc_choice == 3:
student_new.sort(key = lambda x: int(x[Python])+int(x[english])+int(x[math]), reverse = Flag)
show()
break
else:
print(输入错误,只能在0/1/2中选择!)
continue
else:
print(学生信息文件不存在!)
八 、 学生人数统计
逻辑结构图
代码
def total():nums = 0
if os.path.exists(filename):
with open(filename, r, encoding = utf-8) as t_file:
len_list = t_file.readlines()
for i in range(len(len_list)):
if len_list[i] != :
nums += 1
print(当前学生总人数为: , nums)
print(请选择你想进行的下一步操作: )
else:
print(暂无学生信息文件)
九 、显示所有学生信息
逻辑结构图
代码
def show():if os.path.exists(filename):
with open(filename, r, encoding = utf-8) as show_file:
student_list = show_file.readlines()
if student_list:
print(----全部学生信息如下----)
print(ID\t\t\t姓名:\t\t英语成绩:\t\t数学成绩:\t\tPython成绩:\t\t总成绩:)
for item in student_list:
p = dict(eval(item))
print({0}\t\t{1}\t\t {2}\t\t {3}\t\t {4}\t\t {5}.format(
p[id], p[name], p[english], p[math], p[Python],
float(p[english]) + float(p[math]) + float(p[Python])))
else:
print(暂无学生信息!)
else:
print(暂无学生信息!)
程序打包
在 pycharm 终端 或者 python命令界面, 使用:
pip install PyInstaller
下载python打包程序,下载完成后, 执行以下操作:
pyinstaller —F F:\xxxx\xxx\xx\x.py
其中:
- -F 代表将程序打包为单个exe文件,
- F:\xxx\xxx\xx.py 为你的学生成绩管理系统文件的绝对地址
打包完成后,提示信息倒数第二行:Appending语句后面即为exe文件位置,若无特殊显示,则在当前目录父文件下
以上就是python编写学生成绩管理系统实现八个功能示例的详细内容,更多关于python编写学生成绩管理系统的资料请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。