python大作业——学生管理系统制作,另赠福利:GUI学生管理系统源码

news2024/12/23 5:50:46

目录

      • 前言
      • 环境使用:
      • 代码展示
      • 尾语 💝

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

环境使用:

  • Python 3.8 解释器

  • Pycharm 编辑器

可领取福利:

GUI学生管理系统源码

python资料、源码、教程\福利皆: 点击此处跳转文末名片获取

代码展示

从学生信息数据库<文本文件>里面读取数据

f = open('学生信息.txt', encoding='utf-8')
info_list = f.readlines()

创建一个空列表

student_info = []

for循环遍历, 把列表里面元素一个一个提取出来

for info in info_list:
    """
    str.replace('\n', '') 字符串替换方法, 把\n替换成空的
    str.split(',') 字符串分割方法, 以 , 作为分割, 把字符串分割成列表
    """
    content = info.replace('\n', '').split(',')

创建字典

    dit = {
        '姓名': content[0],
        '语文': content[1],
        '数学': content[2],
        '英语': content[3],
        '总分': content[4],
    }

列表添加元素

    student_info.append(dit)

读取出来, 并且整理好数据内容, 列表数据容器, 把所有信息放到里面存储

# print(student_info)
msg = """**************************************************
欢迎使用【学生信息管理系统】V1.0
请选择你想要进行的操作
1. 新建学生信息
2. 显示全部信息
3. 查询学生信息
4. 删除学生信息
5. 修改学生信息

0. 退出系统
**************************************************"""

输出

while True:
    print(msg)
    # 输入相关指令, 让代码执行相关程序 等号左边是自定义变量名
    num = input('请选择你要进行操作: ') # input输入内容, 返回字符串数据类型
    # 判断, 判断输入内容是什么?
    if num == '1':
        print('新建学生信息')
        # 输入学生姓名, 成绩
        name = input('请输入学生姓名:')
        chinese = input('请输入学生语文成绩:')
        math = input('请输入学生数学成绩:')
        english = input('请输入学生英语成绩:')
        # 字符串用 + 拼接
        score = int(chinese) + int(math) + int(english)
        student_dit = {
            '姓名': name,
            '语文': chinese,
            '数学': math,
            '英语': english,
            '总分': str(score),
        }
        # 添加学生信息, 放到数据库里面
        student_info.append(student_dit)
    # 会看报错的同学 1 不会看报错 0
    elif num == '2':
        print('显示全部信息')
        # 排序的
        student_info.sort(key=lambda x:x["总分"], reverse=True)
        # \t 转义字符 制表符 一个tab键
        print('姓名\t\t语文\t\t数学\t\t英语\t\t总分')
        for student in student_info:
            # student['姓名'] --> 字符串
            # student['语文'] --> 整型
            # student['总分'] --> 整型
            # 数据类型不同, 不能直接相加
            print(
                student['姓名'] + '\t\t' +
                str(student['语文']) + '\t\t\t' +
                str(student['数学']) + '\t\t\t' +
                str(student['英语']) + '\t\t\t' +
                str(student['总分'])
            )

查询学生信息

    elif num == '3':
        print('查询学生信息')
        # 输入查询人 --> 在一整个数据库里面一一对比
        name = input('请输入你要查询学生姓名: ')
        # for循环 一一提取数据内容
        for student in student_info:
            # 判断人名对不对
            if name == student['姓名']:
                print('姓名\t\t语文\t\t数学\t\t英语\t\t总分')
                print(
                    student['姓名'] + '\t\t' +
                    str(student['语文']) + '\t\t\t' +
                    str(student['数学']) + '\t\t\t' +
                    str(student['英语']) + '\t\t\t' +
                    str(student['总分'])
                )
                break
        else:
            print('找不到')

删除学生信息

    elif num == '4':
        print('删除学生信息')
        name = input('请输入你要删除学生姓名: ')
        for student in student_info:
            if name == student['姓名']:
                print('姓名\t\t语文\t\t数学\t\t英语\t\t总分')
                print(
                    student['姓名'] + '\t\t' +
                    str(student['语文']) + '\t\t\t' +
                    str(student['数学']) + '\t\t\t' +
                    str(student['英语']) + '\t\t\t' +
                    str(student['总分'])
                )
                word = input('是否要真的开除这个学生, 不考虑一下吗? <Y/N>: ' )
                if word == 'Y' or word == 'y':
                    # remove() 移除列表元素
                    student_info.remove(student)
                    break
                elif word == 'N' or word == 'n':
                    break
                else:
                    print('操作失误')
        else:
            print('找不到人')

修改学生信息

    elif num == '5':
        print('修改学生信息')
        name = input('请输入你要删除学生姓名: ')
        for student in student_info:
            if name == student['姓名']:
                print('姓名\t\t语文\t\t数学\t\t英语\t\t总分')
                print(
                    student['姓名'] + '\t\t' +
                    str(student['语文']) + '\t\t\t' +
                    str(student['数学']) + '\t\t\t' +
                    str(student['英语']) + '\t\t\t' +
                    str(student['总分'])
                )
                word = input('就这, 成绩还有问题? <Y/N>: ')
                if word == 'Y' or word == 'y':
                    # 输入学生姓名, 成绩
                    name = input('请输入学生姓名:')
                    chinese = input('请输入学生语文成绩:')
                    math = input('请输入学生数学成绩:')
                    english = input('请输入学生英语成绩:')
                    # 字符串用 + 拼接
                    score = int(chinese) + int(math) + int(english)
                    # 字典值修改
                    student['姓名'] = name
                    student['语文'] = chinese
                    student['数学'] = math
                    student['英语'] = english
                    student['总分'] = score
                    break
                elif word == 'N' or word == 'n':
                    break
                else:
                    print('操作失误')
        else:
            print('找不到人')

退出系统

    elif num == '0':
        print('退出系统')
        # 退出的时候, 要做数据保存
        with open('学生信息.txt', mode='w', encoding='utf-8') as f:
            for student in student_info:
                f.write(f'{student["姓名"]},{student["语文"]},{student["数学"]},{student["英语"]},{student["总分"]}')
                f.write('\n')
        exit() # 退出

    else:
        print('输入有误')

尾语 💝

要成功,先发疯,下定决心往前冲!

学习是需要长期坚持的,一步一个脚印地走向未来!

未来的你一定会感谢今天学习的你。

—— 心灵鸡汤

本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 😝

👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇</center

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/562725.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python+django植物园性毒源成分管理系统

在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括植物性毒源成分管理系统的网络应用&#xff0c;在外国植物性毒源成分管理系统已经是很普遍的方式&#xff0c;不过国内的植物性毒源成分管理可能还处于起步阶段。植物性毒源成…

实验4—OpenGL的鼠标交互绘制

一、实验目的 1.掌握OpenGL的鼠标按钮响应函数。 2.掌握OpenGL的鼠标移动响应函数。 3.进一步巩固OpenGL的基本图元绘制基础 二、实验内容 1.鼠标画草图——实现鼠标点到哪&#xff0c;线就画到哪。 思路&#xff1a; 1 )在主程序注册鼠标响应和鼠标移动子函数: glutMouseF…

ChatGPT:你真的了解网络安全吗?浅谈网络安全攻击防御进行时之网络安全新防御

ChatGPT&#xff1a;你真的了解网络安全吗&#xff1f;浅谈网络安全攻击防御进行时 网络安全新防御1. 针对人工智能2. 针对5G和物联网3. 针对云安全4.针对社交工程5. 针对加密技术6. 针对多层次的安全控制 ChatGPT&#xff08;全名&#xff1a;Chat Generative Pre-trained Tra…

针对Rokcetmq引入的缺点提供相应解决方案

1.针对Rokcermq引入可用性降低问题 Rocketmq实现高可用模式&#xff0c;Rocketmq有三种模式&#xff1a;单机模式、主从模式、分片集群模式。 单机模式 单机模式&#xff0c;就是 Demo 级别的&#xff0c;一般就是你本地启动了玩玩儿的&#xff0c;没人生产用单机模式。 docker…

Postman传递@requestbody标注的List集合的传参遇到的问题

Postman传递requestbody标注的List集合的传参遇到的问题 引子如何测试以及遇到的问题参考文献 引子 我们想测试如下接口 RequestMapping(value "saveMessageRecover", method RequestMethod.POST) ResponseBody public AjaxMessage saveMessageRecover(RequestBod…

聚观早报 |必应成为中国第一大桌面搜索引擎;快手上市后首次盈利

今日要闻&#xff1a;必应成为中国第一大桌面搜索引擎&#xff1b;快手上市后集团层面首次盈利&#xff1b;ChatGPT相关诈骗攻击与日俱增&#xff1b;比亚迪回应法国建厂传闻&#xff1b;薇娅夫妇半年收获两家上市公司 必应成为中国第一大桌面搜索引擎 5 月 22 日消息&#xf…

媒体专访|美创胡大海:国内数据安全市场正处于战略机遇期

引言 &#xff1a;我国在《“十四五”数字经济发展规划》中强调深化应用、规范发展、普惠共享&#xff0c;更多强调了数据资源为关键要素的重要性&#xff0c;并呼应了数据要素正式被纳入生产要素的政策&#xff0c;着重提出了数字经济具有“融合应用”和“全要素数字化转型”的…

断言无忧!接口自动化框架封装,Mysql数据库断言

目录 前言&#xff1a; 一、项目背景 二、框架封装 1. Mysql数据库连接 2. 查询功能 3. 断言功能 4. 使用示例 三、总结 前言&#xff1a; 随着互联网行业的迅猛发展&#xff0c;接口自动化测试在软件开发过程中扮演着越来越重要的角色。而在进行接口测试的过程中&…

初学UE5,UE4的教程适用UE5吗?

在UE5出版后&#xff0c;很多人问UE4还要不要学、UE4适不适用于UE5等问题。 UE5是最近推出的一款游戏引擎&#xff0c;相较于UE4而言&#xff0c;它有着更好的性能和灵活的工作流程&#xff0c;同时也引入了一些新的功能。对于一些游戏开发初学者来说&#xff0c;他们可能会想…

Flask restful分页接口实现

1.先定义一个工作信息表: 指定一些相关的字段:工作名称、年限、级别等 class Work(db.Model):__tablename__ = workid = db.Column(db.Integer, primary_key=True)workName = db.Column(db.String(5),nullable=False)year = db.Column(db.String(20), nullable=False)level = …

加密与解密 调试篇 动态调试技术 (二)

我们在 (一)中调试了一个程序 接着我们开始继续学习 常见的断点 这里有 INT 3断点 硬件断点 内存断点 消息断点等 1.INT 3 断点 我们在OllyDbg中 可以使用 命令 bp 或者 F12进行断点 INT3断点 就是在程序中 对该位置的代码 进行替换 替换为INT3 INT3 是一个软中断指令…

ChatGPT:你真的了解网络安全吗?浅谈网络安全攻击防御进行时之网络安全新定义

ChatGPT&#xff1a;你真的了解网络安全吗&#xff1f;浅谈网络安全攻击防御进行时 网络安全新定义 ChatGPT&#xff08;全名&#xff1a;Chat Generative Pre-trained Transformer&#xff09;&#xff0c;美国OpenAI 研发的聊天机器人程序&#xff0c;是人工智能技术驱动的自…

如何利用ChatGPT在工作中提高生产力?

[请微信搜索“云智AI助手”、“云智博瑞”关注我们 │ 谢谢支持 ] Cloud wisdom, AI assistant 每次人工智能成为头条新闻&#xff0c;都会引发对它是否会让人类失业的讨论。尽管某些工作可能会变得多余&#xff0c;我们应该学会与人工智能共同工作&#xff0c;将其作为增强自…

Python统计学13——回归的多重共线性、异方差、自相关的检验

在基础统计学&#xff0c;或者是计量经济学里面&#xff0c;需要对回归问题进行一些违背经典假设的检验&#xff0c;例如多重共线性、异方差、自相关的检验。这些检验用stata&#xff0c;r&#xff0c;Eviews什么都很简单&#xff0c;但是用python很多人都不会。下面就带大家实…

2023.5.14Ubuntu忘记MySQL密码

如果您忘记了MySQL的密码&#xff0c;可以按照以下步骤重置MySQL的密码&#xff1a; 停止MySQL服务&#xff1a; sudo service mysql stop启动MySQL服务&#xff0c;并跳过授权表&#xff1a; sudo mysqld_safe --skip-grant-tables &使用MySQL客户端连接到MySQL&#x…

【搭建轻量级图床】本地搭建LightPicture开源图床管理系统 - 异地远程访问

文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进&#xff0c;功能也越来越多&#xff0c;而手机…

吃鸡史:傻鸡是怎么进化并“称霸”世界的?

鸡&#xff0c;给我们的印象是温顺的&#xff1a;温顺地长大&#xff0c;温顺地下蛋&#xff0c;温顺地进油锅… 若是鸡祖宗们知道&#xff0c;有一天它们的鸡子鸡孙会进化成一群不会飞、只知道吃的傻鸡&#xff0c;几千年前的红原鸡骨怕是都要惊得飞出土了&#xff01; 毕竟…

day17 回话跟踪技术Cookie与Session

会话跟踪技术 问题:一次会话中的多次请求不会共享数据,不能显示.若通过传参数在路径上来解决该问题,不安全. 作用:解决HTTP无状态 http,cookie,session使用的区别 如果使用http中的request.setAttribute(),只能一次共享一个 若使用cookie,cookie存在浏览器中,每一次请求都…

JAVA——类间双向关联关系的实现-Contact与Phone类(电话簿管理系统)

首先&#xff1a;确定代码雏形框架&#xff08;原始代码&#xff09; 先根据以往经验写出一般的电话簿管理系统&#xff0c;先把代码雏形框架确定好。 原始代码运行结果&#xff1a; 原始代码源码&#xff1a; package bidirectionalDome;import java.util.ArrayList;public…

前端基础面试题八股文

html语义化的理解 代码结构: 使页面在没有css的情况下,也能够呈现出好的内容结构 有利于SEO: 爬虫根据标签来分配关键字的权重,因此可以和搜索引擎建立良好的沟通,帮助爬虫抓取更多的有效信息 方便其他设备解析&#xff1a; 如屏幕阅读器、盲人阅读器、移动设备等&#xff0c…