本文实例为大家分享了python实现学生成绩管理系统的具体代码,供大家参考,具体内容如下
需求:
代码:
import os filename = 'student.txt' def main(): ? ? while True: ? ? ? ? menu() ? ? ? ? choice = int(input("请选择:")) ? ? ? ? if choice in [0,1,2,3,4,5,6,7]: ? ? ? ? ? ? if choice==0: ? ? ? ? ? ? ? ? answer = input("你确定要退出吗?y/n") ? ? ? ? ? ? ? ? if answer =='y' or answer =='Y': ? ? ? ? ? ? ? ? ? ? print("谢谢使用!") ? ? ? ? ? ? ? ? ? ? break ? ? ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? ? ? continue ? ? ? ? ? ? elif choice ==1: ? ? ? ? ? ? ? ? insert() ? ? ? ? ? ? elif choice ==2: ? ? ? ? ? ? ? ? search() ? ? ? ? ? ? elif choice ==3: ? ? ? ? ? ? ? ? delete() ? ? ? ? ? ? elif choice ==4: ? ? ? ? ? ? ? ? modify() ? ? ? ? ? ? elif choice ==5: ? ? ? ? ? ? ? ? sort() ? ? ? ? ? ? elif choice ==6: ? ? ? ? ? ? ? ? total() ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? show() # 菜单 def menu(): ? ? print("====================学生成绩管理系统=========================") ? ? print("======================功能菜单==============================") ? ? print("\t\t1、录入学生信息") ? ? print("\t\t2、查找学生信息") ? ? print("\t\t3、删除学生信息") ? ? print("\t\t4、修改学生信息") ? ? print("\t\t5、排序") ? ? print("\t\t6、统计学生人数") ? ? print("\t\t7、显示所有学生信息") ? ? print("\t\t0、退出系统") ? ? print("--------------------------------------------------------------") # 插入 def insert(): ? ? student_list=[] ? ? while True: ? ? ? ? id = input('请输入ID(如1001):') ? ? ? ? if not id: ? ? ? ? ? ? break ? ? ? ? name = input('请输入姓名:') ? ? ? ? if not name: ? ? ? ? ? ? break ? ? ? ? try: ? ? ? ? ? ? english=int(input("input english grade:")) ? ? ? ? ? ? python=int(input("input python grade:")) ? ? ? ? ? ? java=int(input("input java grade:")) ? ? ? ? except: ? ? ? ? ? ? print("输入成绩无效!重新输入!") ? ? ? ? ? ? continue ? ? ? ? student = {'id':id,'name':name,'english':english,'python':python,'java':java} ? ? ? ? student_list.append(student) ? ? ? ? answer = input("是否继续添加信息!?:'y/n'") ? ? ? ? if answer == 'y': ? ? ? ? ? ? continue ? ? ? ? else: ? ? ? ? ? ? break ? ? # 调用save函数将其保存在文本当中 ? ? save(student_list) ? ? print("学生信息录入成功!") # 保存 def save(lst): ? ? try: ? ? ? ? stu_txt = open(filename,'a',encoding='utf-8') ? ? except: ? ? ? ? stu_txt = open(filename,'w',encoding='utf-8') ? ?? ? ? for item in lst: ? ? ? ? stu_txt.write(str(item)+'\n') ? ? stu_txt.close() # 搜索 def search(): ? ? while True: ? ? ? ? student_name = input("请输入你要查找的学生姓名:") ? ? ? ? if student_name: ? ? ? ? ? ? if os.path.exists(filename): ? ? ? ? ? ? ? ? with open(filename,'r',encoding='utf-8') as rfile: ? ? ? ? ? ? ? ? ? ? student_old = rfile.readlines() ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? student_old = [] ? ? ? ? ? ? if student_old: ? ? ? ? ? ? ? ? d = {} ? ? ? ? ? ? ? ? flag = False ? ? ? ? ? ? ? ? for item in student_old: ? ? ? ? ? ? ? ? ? ? d = dict(eval(item)) ? ? ? ? ? ? ? ? ? ? if d['name'] == student_name: ? ? ? ? ? ? ? ? ? ? ? ? flag = True ? ? ? ? ? ? ? ? ? ? ? ? student_show(d) ? ? ? ? ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? ? ? ? ? pass ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? print("无学生信息,请添加!") ? ? ? ? ? ? if flag: ? ? ? ? ? ? ? ? print("查询成功") ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? print("查询失败") ? ? ? ? else: ? ? ? ? ? ? print("没有输入学生姓名!") ? ? ? ?? ? ? ? ? answer = input("请问是否继续查询:y/n") ? ? ? ? if answer == "y": ? ? ? ? ? ? continue ? ? ? ? else: ? ? ? ? ? ? break # 展示个人信息 def student_show(dic): ? ? format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' ? ? print(format_title.format('ID','姓名','英语成绩','python成绩','java成绩','总成绩')) ? ? format_data = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' ? ? print(format_data.format(dic.get('id'), ? ? ? ? ? ? ? ? ? ? ? ? ? ? dic.get('name'), ? ? ? ? ? ? ? ? ? ? ? ? ? ? dic.get('english'), ? ? ? ? ? ? ? ? ? ? ? ? ? ? dic.get('python'), ? ? ? ? ? ? ? ? ? ? ? ? ? ? dic.get('java'), ? ? ? ? ? ? ? ? ? ? ? ? ? ? int(dic.get('english'))+int(dic.get('python'))+int(dic.get('java')), ? ? ? ? ? ? ? ? ? ? ? ? ? ? )) # 删除 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: ? ? ? ? ? ? ? ? ? ? d={} ? ? ? ? ? ? ? ? ? ? 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(f"{student_id}已经被删除!") ? ? ? ? ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? ? ? ? ? print(f"{student_id}没有找到!") ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? print("无学生信息!") ? ? ? ? ? ? ? ? break ? ? ? ? ? ? show() ? ? ? ? ? ? answer = input("是否继续删除?y/n") ? ? ? ? ? ? if answer == 'y': ? ? ? ? ? ? ? ? continue ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? break ? ? ? ? else: ? ? ? ? ? ? print("请输入要删除的ID:") ? ? ? ? ? ? continue # 修改 ? ? ? def modify(): ? ? 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=[] ? ? ? ? ? ? if student_old: ? ? ? ? ? ? ? ? with open(filename,'w',encoding='utf-8') as wfile: ? ? ? ? ? ? ? ? ? ? d = {} ? ? ? ? ? ? ? ? ? ? for item in student_old: ? ? ? ? ? ? ? ? ? ? ? ? d = dict(eval(item)) ? ? ? ? ? ? ? ? ? ? ? ? if d['id'] == student_id: ? ? ? ? ? ? ? ? ? ? ? ? ? ? answer = input('已经找到该学生信息,是否修改:y/n?') ? ? ? ? ? ? ? ? ? ? ? ? ? ? flag = False ? ? ? ? ? ? ? ? ? ? ? ? ? ? if answer: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? d['name']=input("姓名:") ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? d['english']=int(input("english:")) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? d['python']=int(input("python:")) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? d['java']=int(input("java:")) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? wfile.write(str(d)+"\n") ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? flag = True ? ? ? ? ? ? ? ? ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? wfile.write(str(d)+"\n") ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break ? ? ? ? ? ? ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? ? ? ? ? ? ? wfile.write(str(d)+"\n") ? ? ? ? ? ? ? ? ? ? if flag: ? ? ? ? ? ? ? ? ? ? ? ? print("修改成功!") ? ? ? ? ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? ? ? ? ? print("修改失败!") ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? print("无学生信息,请添加") ? ? ? ? ? ? answer = input("请问是否继续修改?y/n") ? ? ? ? ? ? if answer == "y": ? ? ? ? ? ? ? ? continue ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? break ? ? ? ? else: ? ? ? ? ? ? print("输入错误!") # 排序 ? ? ? ? ?? def sort(): ? ? while True: ? ? ? ? if os.path.exists(filename): ? ? ? ? ? ? with open(filename,'r',encoding='utf-8') as file: ? ? ? ? ? ? ? ? student_old = file.readlines() ? ? ? ? ? ? student_new = [] ? ? ? ? ? ? d={} ? ? ? ? ? ? for item in student_old: ? ? ? ? ? ? ? ? d=dict(eval(item)) ? ? ? ? ? ? ? ? student_new.append(d) ? ? ? ? ? ? asc_and_desc = int(input("怎么排序:0 升序 ?1 降序:")) ? ? ? ? ? ? choice = int(input("按照什么排序:1 english ?2 python ?3 java ?0 总成绩:")) ? ? ? ? ? ? if choice == 1: ? ? ? ? ? ? ? ? student_new.sort(key=lambda x:int(x['english']),reverse=asc_and_desc) ? ? ? ? ? ? elif choice == 2: ? ? ? ? ? ? ? ? student_new.sort(key=lambda x:int(x['python']),reverse=asc_and_desc) ? ? ? ? ? ? elif choice == 3: ? ? ? ? ? ? ? ? ? student_new.sort(key=lambda x:int(x['java']),reverse=asc_and_desc) ? ? ? ? ? ? elif choice == 0: ? ? ? ? ? ? ? ? student_new.sort(key=lambda x:int(x['english'])+int(x['python'])+int(x['java']),reverse=asc_and_desc) ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? print("输入有误") ? ? ? ? ? ? ? ? sort() ? ? ? ? else: ? ? ? ? ? ? print("无学生信息") ? ? ? ? format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' ? ? ? ? print(format_title.format('ID','姓名','英语成绩','python成绩','java成绩','总成绩')) ? ? ? ? format_data = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' ? ? ? ? for dic in student_new: ? ? ? ? ? ? print(format_data.format(dic.get('id'), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? dic.get('name'), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? dic.get('english'), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? dic.get('python'), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? dic.get('java'), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int(dic.get('english'))+int(dic.get('python'))+int(dic.get('java')), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? )) ? ? ? ? answer = input("请问是否继续排序?y/n") ? ? ? ? if answer == "y": ? ? ? ? ? ? continue ? ? ? ? else: ? ? ? ? ? ? break # 总人数 def total(): ? ? if os.path.exists(filename): ? ? ? ? with open(filename,'r',encoding='utf-8') as file: ? ? ? ? ? ? student_old = file.readlines() ? ? ? ? print('一共有',len(student_old),'名学生!') ? ? else: ? ? ? ? print("无人员资料") ? ? import msvcrt ? ? msvcrt.getch() # 展示 def show(): ? ? if os.path.exists(filename): ? ? ? ? with open(filename,'r',encoding='utf-8') as file: ? ? ? ? ? ? student_old = file.readlines() ? ? ? ? d = {} ? ? ? ? students = [] ? ? ? ? for item in student_old: ? ? ? ? ? ? d = dict(eval(item)) ? ? ? ? ? ? students.append(d) ? ? else: ? ? ? ? print("没有信息!") ? ? if len(students): ? ? ? ? format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' ? ? ? ? print(format_title.format('ID','姓名','英语成绩','python成绩','java成绩','总成绩')) ? ? ? ? format_data = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' ? ? ? ? for dic in students: ? ? ? ? ? ? print(format_data.format(dic.get('id'), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? dic.get('name'), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? dic.get('english'), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? dic.get('python'), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? dic.get('java'), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int(dic.get('english'))+int(dic.get('python'))+int(dic.get('java')), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? )) ? ? else: ? ? ? ? print("无人员信息!") ? ? import msvcrt ? ? msvcrt.getch() if __name__ == '__main__': ? ? main()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
查看更多关于python实现简单的学生成绩管理系统的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did99803