首页 热点 业界 科技快讯 数码 电子消费 通信 前沿动态 电商

python实现简易的学生信息管理系统

2022-05-17 11:39:53 来源 : 软件开发网

目录

一、系统功能

二、系统开发环境

三、实现代码

四、项目打包并生成.exe可执行文件

本文实例为大家分享了python实现简易学生信息管理系统的具体代码,供大家参考,具体内容如下

一、系统功能

1.录入学生信息

2.查找学生信息

3.修改学生信息

4.删除学生信息

5.成绩排序

6.统计学生总人数

7.显示所有学生信息

0.退出系统

二、系统开发环境

1.操作系统:win7

2.开发工具:PyCharm

3.Python内置模块:os,re

三、实现代码import osfilename="students.txt"def main():    while True:        menum()        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 #退出while循环并退出系统                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() #统计学生总人数            elif choice == 7:                show() #显示所有学生信息def insert():    student_list=[] #用于存储学生信息,列表每个元素是字典。    while True:        id=input("请输入学生ID:")        if not id:            break        name=input("请输入学生姓名:")        if not name:            break        try:            Englist=int(input("请输入英语成绩:"))            Python=int(input("请输入Python成绩:"))            Java=int(input("请输入Java成绩:"))        except:            print("输入无效,不是整数类型,请重新输入!")            continue        #将录入的学生信息保存到字典中        student={"id":id,"name":name,"English":Englist,"Python":Python,"Java":Java}        #将学生信息添加到列表中        student_list.append(student)        answer=input("是否继续添加?(y/n)")        if answer=="y" or answer=="Y":            continue        else:            break    #将学生信息保存在文件中    save(student_list)    print("学生信息录入完毕!")    passdef search():    student_query=[] #用列表存储,防止有同名学生。    while True:        id=""        name=""        if os.path.exists(filename):            mode=input("按ID查找请输入1,按姓名查找请输入2:")            if mode == "1":                id=input("请输入要查找的学生ID:")            elif mode == "2":                name=input("请输入要查找的学生姓名:")            else:                print("您的输入有误,请重新输入!")                search()            with open(filename,"r",encoding="utf-8") as rfile:                student=rfile.readlines()                for item in student:                    d=dict(eval(item))                    if id!="":                        if d["id"]==id:                            student_query.append(d)                    elif name!="":                        if d["name"]==name:                            student_query.append(d)            #显示查询结果            show_student(student_query)            student_query.clear() #清空列表            answer=input("是否要继续查询?(y/n)")            if answer=="y" or answer=="Y":                continue            else:                break        else:            print("暂未保存学生信息。")            return    passdef 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"id为{student_id}的学生信息已被删除")                    else:                        print(f"没有找到ID为{student_id}的学生信息")            else:                print("无此学生信息")                break            show() #删完之后重新显示所有学生信息            answer=input("是否继续删除?(y/n)")            if answer=="y" or answer=="Y":                continue            else:                break    passdef modify():    show()    if os.path.exists(filename): #判断文件是否存在        with open(filename,"r",encoding="utf-8") as rfile:            student_old=rfile.readlines()    else:        return #结束函数    student_id=input("请输入要修改信息的学生ID:")    with open(filename,"w",encoding="utf-8") as wfile:        for item in student_old:            d=dict(eval(item))            if d["id"]==student_id:                print("找到此学生信息,可以修改。")                while True:                    try:                        d["name"]=input("请输入学生姓名:")                        d["English"]=input("请输入English成绩:")                        d["Python"]=input("请输入Python成绩:")                        d["Java"]=input("请输入Java成绩:")                    except:                        print("您的输入有误请重新输入!")                    else:                        break                wfile.write(str(d)+"\n")                print("修改成功!")            else:                wfile.write(str(d)+"\n")        answer=input("是否继续修改其他学生信息?(y/n)")        if answer=="y":            modify()    passdef sort():    show()    if os.path.exists(filename):        with open(filename,"r",encoding="utf-8") as rfile:            student_list=rfile.readlines()        student_new=[]        for item in student_list:            d=dict(eval(item))            student_new.append(d)    else:        return    asc_or_desc=input("请选择(0:升序,1:降序):")    if asc_or_desc=="0":        asc_or_desc_bool=False    elif asc_or_desc=="1":        asc_or_desc_bool=True    else:        print("您的输入有误,请重新输入!")        sort()    mode=input("请选择排序方式(0:按总成绩排序,1:按English成绩排序,2:按Python成绩排序,3:按Java成绩排序)")    if mode=="0":        student_new.sort(key=lambda x: int(x["English"])+int(x["Python"])+int(x["Java"]), reverse=asc_or_desc_bool)    elif mode=="1":        student_new.sort(key=lambda x:int(x["English"]),reverse=asc_or_desc_bool)    elif mode=="2":        student_new.sort(key=lambda x: int(x["Python"]), reverse=asc_or_desc_bool)    elif mode=="3":        student_new.sort(key=lambda x: int(x["Java"]), reverse=asc_or_desc_bool)    else:        print("您的输入有误,请重新输入!")        sort()    show_student(student_new)    passdef total():    if os.path.exists(filename):        with open(filename,"r",encoding="utf-8") as rfile:            students=rfile.readlines()            if students:                print(f"一共有{len(students)}名学生")            else:                print("还没有录入学生信息!")    else:        print("暂未保存学生信息......")    passdef show():    student_lst=[]    if os.path.exists(filename):        with open(filename,"r",encoding="utf-8") as rfile:            students=rfile.readlines()            for item in students:                student_lst.append(eval(item))            if student_lst:                show_student(student_lst)    else:        print("暂未保存过数据!")    passdef save(stu_list):    try:        stu_txt=open(filename,"a",encoding="utf=8")    except:        stu_txt=open(filename,"w",encoding="utf-8")    for item in stu_list:        stu_txt.write(str(item)+"\n")    stu_txt.close()def show_student(lst):    if len(lst)==0:        print("没有查到学生信息,无数据显示!")        return    #定义标题显示格式    format_title="{:^6}\t{:^12}\t{:^10}\t{:^10}\t{:^10}\t{:^8}"    print(format_title.format("ID","姓名","English成绩","Python成绩","Java成绩","总成绩"))    #定义内容显示格式    format_data="{:^6}\t{:^12}\t{:^10}\t{:^18}\t{:^14}\t{:^8}"    for item in lst:        print(format_data.format(item.get("id"),item.get("name"),item.get("English"),item.get("Python"),item.get("Java"),str(int(item.get("English"))+int(item.get("Python"))+int(item.get("Java")))))    passdef menum():    print("-------------------学生信息管理系统--------------------")    print("-----------------------功能菜单------------------------")    print("                    1.录入学生信息")    print("                    2.查找学生信息")    print("                    3.删除学生信息")    print("                    4.修改学生信息")    print("                    5.成绩排序")    print("                    6.统计学生总人数")    print("                    7.显示所有学生信息")    print("                    0.退出系统")    print("------------------------------------------------------")main()四、项目打包并生成.exe可执行文件

1.安装第三方模块,打开dos窗口,输入:pip install PyInstaller并回车,

2.输入:pyinstaller -F 程序文件具体位置,

3.回车后即可在输出内容的倒数第二行看到.exe文件的位置。

标签: 退出系统 学生信息管理系统 可执行文件

相关文章

最近更新
观焦点:超萌相机 2023-03-01 12:29:37
海南百货网 2023-03-01 12:13:44
焦点热讯:宜点充 2023-02-28 10:10:16
天天关注:小铺CEO 2023-02-28 10:07:13
【世界聚看点】KaFit 2023-02-28 09:31:37
葱天下 2023-02-28 09:17:03
渔界竞钓 2023-02-28 08:15:29
焦点快看:鲸奇视频 2023-02-28 06:30:37
环球热议:萝小逗 2023-02-27 23:25:49
简讯:小码公交 2023-02-27 23:16:12
彼岸花 2023-02-27 22:32:52
时时夺宝 2023-02-27 21:37:50
天天动态:袜之源 2023-02-27 21:29:50
天天资讯:AI空气 2023-02-27 20:19:46
世界时讯:绘读 2023-02-27 20:19:41
看点:一元得购 2023-02-27 19:26:28