Python练手项目-学生成绩管理系统1

简介: 之前在最初的学习中,我就写过一个Python的学生管理系统,但是那个很粗糙,很简陋今天在学习过程中,再次拿出来,重新优化书写希望对初学者以及需要的朋友有帮助。

之前在最初的学习中,我就写过一个Python的学生管理系统,但是那个很粗糙,很简陋

今天在学习过程中,再次拿出来,重新优化书写

希望对初学者以及需要的朋友有帮助。


系统开发环境:


  • 操作系统:win11


  • Python解释器版本:python3.10


  • 开发工具:Pychram


  • Python内置模块:os,re


1.实现功能


学生管理系统具备功能


  • 添加学生及成绩信息


  • 将学生信息保存到文件中


  • 修改和删除学生信息


  • 查询学生信息


  • 根据学生成绩进行排序


  • 统计学生的总分


2.系统设计




项目目录结构




3.主函数设计


业务流程图




功能设计:.



实现代码:


def main():
    while True:
        menm()
        choice = 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:
                insret() # 录入学生信息
            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 menm():
    print('========================学生信息管理系统===================================')
    print('--------------------------功能菜单----------------------------------------')
    print('\t\t\t\t\t\t1.录入学生信息')
    print('\t\t\t\t\t\t2.查找学生信息')
    print('\t\t\t\t\t\t3.删除学生信息')
    print('\t\t\t\t\t\t4.修改学生信息')
    print('\t\t\t\t\t\t5.学生信息排序')
    print('\t\t\t\t\t\t6.统计学生总人数')
    print('\t\t\t\t\t\t7.显示所有学生信息')
    print('\t\t\t\t\t\t0.退出')
def insret():
    pass
def search():
    pass
def delete():
    pass
def modify():
    pass
def sort():
    pass
def total():
    pass
def show():
    pass
if __name__ == '__main__':
    main()


运行截图:





4.信息录入设计


从控制台录入学生信息,信息会被写入.txt文件



设计代码:


def insret():
    student_lst=[]
    while True:
        id=input('请输入ID(如01):')
        if not id:
            break
        name=input('请输入姓名:')
        if not name:
            break
        try:
            math=int(input('请输入数学成绩:'))
            english=int(input('请输入英语成绩:'))
            python=int(input('请输入python成绩:'))
            java=int(input('请输入Java成绩:'))
        except:
            print('输入无效,不是整数类型,请重新输入!')
            continue
        # 将录入学生信息写入字典中
        student={'id':id,'name':name,'math':math,'english':english,'python':python,'java':java}
        # 将学生信息添加到列表中
        student_lst.append(student)
        answer=input('是否继续添加?y/n\n')
        if answer == 'y' or answer =='Y':
            continue
        else:
            break
    # 调用save()函数保存信息
    save(student_lst)
    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()


程序运行截图:




5.信息删除设计




设计代码:


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'ID为{student_id}的学生信息已被删除')
                    else:
                        print(f'没有找到ID为{student_id}的学生信息')
            else:
                print('无学生信息')
                break
            show() #删除之后要重现显示所有学生信息
            answer=input('是否继续删除?y/n\n')
            if answer == 'y' or answer =='Y':
                continue
            else:
                break


程序运行界面:





目录
相关文章
|
1月前
|
Python
Python项目配置Dockerfile
该Dockerfile基于阿里云Alinux3的Python 3.11.1镜像构建,使用阿里云PyPI镜像加速依赖安装,部署一个运行于5000端口、时区为上海的Python应用。
|
2月前
|
存储 数据可视化 BI
Python可视化应用——学生成绩分布柱状图展示
本程序使用Python读取Excel中的学生成绩数据,统计各分数段人数,并通过Matplotlib库绘制柱状图展示成绩分布。同时计算最高分、最低分及平均分,实现成绩可视化分析。
120 0
|
3月前
|
机器学习/深度学习 监控 算法
基于mediapipe深度学习的手势数字识别系统python源码
本内容涵盖手势识别算法的相关资料,包括:1. 算法运行效果预览(无水印完整程序);2. 软件版本与配置环境说明,提供Python运行环境安装步骤;3. 部分核心代码,完整版含中文注释及操作视频;4. 算法理论概述,详解Mediapipe框架在手势识别中的应用。Mediapipe采用模块化设计,包含Calculator Graph、Packet和Subgraph等核心组件,支持实时处理任务,广泛应用于虚拟现实、智能监控等领域。
|
12天前
|
安全 JavaScript Java
Python中None与NoneType的真相:从单例对象到类型系统的深度解析
本文通过10个真实场景,深入解析Python中表示“空值”的None与NoneType。从单例模式、函数返回值,到类型注解、性能优化,全面揭示None在语言设计与实际编程中的核心作用,帮助开发者正确高效地处理“无值”状态,写出更健壮、清晰的Python代码。
76 3
|
2月前
|
算法 数据可视化 数据挖掘
基于EM期望最大化算法的GMM参数估计与三维数据分类系统python源码
本内容展示了基于EM算法的高斯混合模型(GMM)聚类实现,包含完整Python代码、运行效果图及理论解析。程序使用三维数据进行演示,涵盖误差计算、模型参数更新、结果可视化等关键步骤,并附有详细注释与操作视频,适合学习EM算法与GMM模型的原理及应用。
|
3月前
|
监控 大数据 API
Python 技术员实践指南:从项目落地到技术优化
本内容涵盖Python开发的实战项目、技术攻关与工程化实践,包括自动化脚本(日志分析系统)和Web后端(轻量化API服务)两大项目类型。通过使用正则表达式、Flask框架等技术,解决日志分析效率低与API服务性能优化等问题。同时深入探讨内存泄漏排查、CPU瓶颈优化,并提供团队协作规范与代码审查流程。延伸至AI、大数据及DevOps领域,如商品推荐系统、PySpark数据处理和Airflow任务编排,助力开发者全面提升从编码到架构的能力,积累高并发与大数据场景下的实战经验。
Python 技术员实践指南:从项目落地到技术优化
|
前端开发 关系型数据库 MySQL
基于python“花开富贵”花园管理系统
感谢大学同学的陪伴与帮助,在我独立编写毕业论文期间,大学同学的鼓励与耐心的帮助使得我少走很多弯路,节省毕业论文的编写时间,也让我有更多精力去完善我开发的系统。 在整个系统开发过程中,我周围的同学和朋友给了我很多意见,所以我很快就确认了系统的商业思想。在次,我由衷的向他们表示感激。
29 0
|
5月前
|
前端开发 JavaScript 关系型数据库
基于python的租房网站-房屋出租租赁系统(python+django+vue)源码+运行
该项目是基于python/django/vue开发的房屋租赁系统/租房平台,作为本学期的课程作业作品。欢迎大家提出宝贵建议。
154 6
|
5月前
|
JavaScript 前端开发 关系型数据库
基于Python+Vue开发的体育场馆预约管理系统源码+运行
本项目为大学生课程设计作业,采用Python和Vue技术构建了一个体育场馆预约管理系统(实现前后端分离)。系统的主要目标在于帮助学生理解和掌握Python编程知识,同时培养其项目规划和开发能力。参与该项目的学习过程,学生能够在实际操作中锻炼技能,为未来的职业发展奠定良好的基础。
124 3

热门文章

最新文章

推荐镜像

更多