python实现简单的学生成绩管理系统

Rohana ·
更新时间:2024-11-10
· 140 次阅读

本文实例为大家分享了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

需要 登录 后方可回复, 如果你还没有账号请 注册新账号