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


程序运行界面:





目录
相关文章
|
算法 搜索推荐 JavaScript
基于python智能推荐算法的全屋定制系统
本研究聚焦基于智能推荐算法的全屋定制平台网站设计,旨在解决消费者在个性化定制中面临的选择难题。通过整合Django、Vue、Python与MySQL等技术,构建集家装设计、材料推荐、家具搭配于一体的一站式智能服务平台,提升用户体验与行业数字化水平。
|
存储 分布式计算 大数据
基于Python大数据的的电商用户行为分析系统
本系统基于Django、Scrapy与Hadoop技术,构建电商用户行为分析平台。通过爬取与处理海量用户数据,实现行为追踪、偏好分析与个性化推荐,助力企业提升营销精准度与用户体验,推动电商智能化发展。
|
异构计算 Python
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
937 1
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的台风灾害分析及预测系统
针对台风灾害预警滞后、精度不足等问题,本研究基于Python与大数据技术,构建多源数据融合的台风预测系统。利用机器学习提升路径与强度预测准确率,结合Django框架实现动态可视化与实时预警,为防灾决策提供科学支持,显著提高应急响应效率,具有重要社会经济价值。
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
人工智能 Shell Python
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
479 0

推荐镜像

更多