我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python基础(16):学生信息管理系统——Python编写(附全部代码)

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

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python基础(16):学生信息管理系统——Python编写(附全部代码)

✅作者简介:大家好我是Xlong,一枚正在学习COMSOL、Python的工科研究僧
📃个人主页: Xlong的个人博客主页
🔥系列专栏:Python学习
💖如果觉得博主的文章还不错的话,请👍支持一下博主哦🤞

目录

一、需求分析

二、系统分析

三、系统开发必备

四、主函数设计

五、学生信息维护模块设计

六、查询/统计模块设计

七、排序模块设计

八、项目打包

九、代码


一、需求分析

1.学生管理系统应具备的功能:

(1)添加学生及成绩信息

(2)将学生信息保存到文件中

(3)修改和删除学生信息

(4)查询学生信息

(5)根据学生成绩进行排序

(6)统计学生的总分

二、系统分析

1.系统功能结构:学生信息管理系统的7大模块

(1)录入学生信息模块

(2)查找学生信息模块

(3)删除学生信息模块

(4)修改学生信息模块

(5)学生成绩排名模块

(6)统计学生总人数模块

(7)显示全部学生信息模块

2.系统业务流程:

三、系统开发必备

1.系统开发环境:

(1)操作系统:win10

(2)Python解释器版本:Python3.9.10

(3)开发工具:Pycharm

(4)Python内置模块:os,re

四、主函数设计

 1.实现主函数

五、学生信息维护模块设计

1.实现录入学生信息功能

 2.具体实现:

(1)save(student)函数,用于将学生信息保存到文件

(2)insert()函数,用于录入学生信息

3.删除学生信息功能:业务流程

 4.修改学生信息功能:业务流程

 5.查找学生信息功能:业务流程

六、查询/统计模块设计

1.统计学生总人数功能:业务流程

2.显示所有学生信息功能:业务流程

七、排序模块设计

八、项目打包

安装第三方模块:

(1)在线安装方式;pip install Pylnstaller

(2)执行打包操作:C:\Users\jjlu>pyinstaller -F E:\软件相关\Python\vippython\chap16\stusyste.py

最后打包的exe路径在C:\Users\jjlu\dist

九、代码

import os.path  #导入os.path模块def menm():    #菜单    print('==========================学生信息管理系统==========================')    print('------------------------------功能菜单-----------------------------')    print('\t\t\t   1.录入学生信息')    print('\t\t\t   2.查找学生信息')    print('\t\t\t   3.删除学生信息')    print('\t\t\t   4.修改学生信息')    print('\t\t\t   5.排序')    print('\t\t\t   6.统计学生总人数')    print('\t\t\t   7.显示所有学生信息')    print('\t\t\t   0.退出系统')    print('-------------------------------------------------------------------')filename = 'student.txt'# 文件名def main(): #主程序    while True:        menm()  #调用菜单函数        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() #统计学生总人数            elif choice == 7:                show() #显示所有学生信息def insert():# 插入信息    student_list = []    while True: # 循环输入        id = input('请输入ID(如1001):')        if not id:# 防止手滑            break        name = input('请输入姓名:')        if not name:            break        try:            english = int(input('请输入英语成绩:'))            python = int(input('请输入python成绩:'))            java = int(input('请输入Java成绩:'))        except:            print('输入无效,不是整数类型,请重新输入')            continue        #将录入的学生信息保存到字典当中        student ={'id':id,'name':name,'english':english,'python':python,'java':java}        #将学生信息添加到列表中        student_list.append(student)        answer = input('是否继续添加?y/n\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')# 将内容写入文件中def 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\n')            if answer =='y':                continue            else:                break        else:            print('暂未保存学生信息')            returndef show_student(lst):    if len(lst)==0:        print('没有查询到学生信息,无数据显示!!!')        return    #定义标题显示格式    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 item in lst:        print(format_data.format(item.get('id'),     item.get('name'),     item.get('english'),     item.get('python'),     item.get('java'),     int(item.get('english'))+int(item.get('python'))+int(item.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'id为{student_id}的学生信息已被删除')                    else:                        print(f'没有找到ID为{student_id}的学生信息')            else:                print('无学生信息')                break            show() #删除之后要重新显示所有学生信息            answer = input('是否继续删除?y/n\n')            if answer == 'y':                continue            else:                breakdef 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('请输入英语成绩:')                        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\n')        if answer == 'y':            modify()def 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('请选择排序方式(1.按英语成绩排序 2.按python成绩排序 3.按java成绩排序 0.按总成绩排序):')    if 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)    elif mode == '0':        student_new.sort(key=lambda x:int(x['english'])+int(x['python'])+int(x['java']),reverse=asc_or_desc_bool)    else:        print('您的输入有误,请重新输入!!!')        sort()    show_student(student_new)def 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('暂未保存数据信息......')def 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('暂未保存过数据!!!')if __name__ == '__main__':    main()

持续更新中......

原创不易,各位看官请随手点个赞和关注哦,感谢!!!

来源地址:https://blog.csdn.net/l1796333514/article/details/123410256

免责声明:

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

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

python基础(16):学生信息管理系统——Python编写(附全部代码)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python实现学生信息管理系统的示例代码

夏天是用来告别的季节,因为毕业总在七月。那么七月之前的季节是用来干嘛的呢?当然是用来做毕业设计的啦!本文为大家准备了两个版本的学生信息管理系统,希望对大家有所帮助
2023-02-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录