文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-06-29 07:07

关注

这篇文章主要介绍了如何用python实现简单的学生成绩管理系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何用python实现简单的学生成绩管理系统文章都会有所收获,下面我们一起来看看吧。

需求:

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

代码:

import osfilename = '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实现简单的学生成绩管理系统”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“如何用python实现简单的学生成绩管理系统”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯