当前位置: 首页 > news >正文

python项目练习——14.学生管理系统

这个项目可以让用户管理学生的信息,包括学生的姓名、年龄、成绩等,并提供添加、编辑、删除、查询等功能。这个项目涉及到数据库操作、用户界面设计、数据验证等方面的技术。

代码示例:

import tkinter as tk  # 导入 Tkinter 库
import sqlite3  # 导入 sqlite3 库

class StudentManagementApp:
    def __init__(self, master):
        self.master = master
        self.master.title('学生管理系统')

        # 连接到数据库
        self.conn = sqlite3.connect('students.db')
        self.cursor = self.conn.cursor()
        self.create_table()

        # 创建界面组件
        self.label_name = tk.Label(master, text='姓名:')
        self.label_name.grid(row=0, column=0)
        self.entry_name = tk.Entry(master)
        self.entry_name.grid(row=0, column=1)

        self.label_age = tk.Label(master, text='年龄:')
        self.label_age.grid(row=1, column=0)
        self.entry_age = tk.Entry(master)
        self.entry_age.grid(row=1, column=1)

        self.label_score = tk.Label(master, text='成绩:')
        self.label_score.grid(row=2, column=0)
        self.entry_score = tk.Entry(master)
        self.entry_score.grid(row=2, column=1)

        self.btn_add = tk.Button(master, text='添加', command=self.add_student)
        self.btn_add.grid(row=3, column=0, columnspan=2)

        self.btn_display = tk.Button(master, text='显示全部', command=self.display_students)
        self.btn_display.grid(row=4, column=0, columnspan=2)

        self.textbox = tk.Text(master)
        self.textbox.grid(row=5, column=0, columnspan=2)

    def create_table(self):
        # 创建学生表
        self.cursor.execute('''CREATE TABLE IF NOT EXISTS students (
                                id INTEGER PRIMARY KEY AUTOINCREMENT,
                                name TEXT NOT NULL,
                                age INTEGER,
                                score REAL
                              )''')
        self.conn.commit()

    def add_student(self):
        name = self.entry_name.get()
        age = self.entry_age.get()
        score = self.entry_score.get()

        if name and age and score:
            # 插入学生数据到数据库
            self.cursor.execute('INSERT INTO students (name, age, score) VALUES (?, ?, ?)', (name, age, score))
            self.conn.commit()

    def display_students(self):
        # 查询所有学生数据并显示在文本框中
        self.textbox.delete('1.0', tk.END)
        self.cursor.execute('SELECT * FROM students')
        students = self.cursor.fetchall()
        for student in students:
            self.textbox.insert(tk.END, f'ID: {student[0]}, 姓名: {student[1]}, 年龄: {student[2]}, 成绩: {student[3]}\n')

if __name__ == '__main__':
    root = tk.Tk()  # 创建主窗口
    app = StudentManagementApp(root)  # 创建学生管理系统应用程序实例
    root.mainloop()  # 运行主事件循环
 

 代码逻辑分析:

使用 Tkinter 库创建了一个简单的图形界面学生管理系统应用程序。用户可以在输入框中输入学生的姓名、年龄、成绩,点击添加按钮将学生信息添加到数据库中,并点击显示全部按钮可以查看所有学生的信息。学生信息存储在 SQLite 数据库中,通过 sqlite3 模块进行数据库操作。 

相关文章:

python项目练习——14.学生管理系统

这个项目可以让用户管理学生的信息,包括学生的姓名、年龄、成绩等,并提供添加、编辑、删除、查询等功能。这个项目涉及到数据库操作、用户界面设计、数据验证等方面的技术。 代码示例: import tkinter as tk # 导入 Tkinter 库 import sqli…...

基于SpringBoot的公益慈善平台

一、项目背景介绍: 基于SpringBoot的公益慈善平台是一款致力于为社会所有人带来便利服务的B/S架构的应用程序。随着网络技术的发展,公益慈善网站已经逐渐成为公益行动的主要信息载体。在这个平台上,主要有管理员、捐赠者和志愿者三种角色&…...

Python网络爬虫(一):HTML/CSS/JavaScript介绍

1 HTML语言 1.1 HTML简介 HTML指的是超文本标记语言:HyperText Markup Language,它不是一门编程语言,而是一种标记语言,即一套标记标签。HTML是纯文本类型的语言,使用HTML编写的网页文件也是标准的文本文件,可以使用任意的文本编辑器例如记事本打开HTML文件,查看并修改H…...

机器学习每周挑战——旅游景点数据分析

数据的截图,数据的说明: # 字段 数据类型 # 城市 string # 名称 string # 星级 string # 评分 float # 价格 float # 销量 int # 省/市/区 string # 坐标 string # 简介 string # 是否免费 bool # 具体地址 string拿到数据…...

开发语言漫谈-C语言

个人认为C语言是最伟大的开发语言(没有之一)。C语言开创了高级语言的新时代。比C更低级的是汇编语言,这个东西就是反人类的玩意。之后的语言或多或少都受C语言的影响。更神奇的是直到现在,C语言还有生命力。C语言的发明人丹尼斯里…...

vue3导入excel并解析excel数据渲染到表格中,纯前端实现。

需求 用户将已有的excel上传到系统,并将excel数据同步到页面的表格中进行二次编辑,由于excel数据不是最终数据,只是批量的一个初始模板,后端不需要存储,所以该功能由前端独立完成。 吐槽 系统中文件上传下载预览三部…...

Java常用API之Encoders类解读

写在开头:本文用于作者学习Java常用API 我将官方文档中Encoders类中所有API全测了一遍并打印了结果,日拱一卒,常看常新 在Spark中,Encoders类提供了一些静态方法用于创建不同数据类型的编码器。 首先,我遇到这样一个…...

java中大型医院HIS系统源码 Angular+Nginx+SpringBoot云HIS运维平台源码

java中大型医院HIS系统源码 AngularNginxSpringBoot云HIS运维平台源码 云HIS系统是一款满足基层医院各类业务需要的健康云产品。该产品能帮助基层医院完成日常各类业务,提供病患预约挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生工作站和护士工…...

windows部署Jenkins并远程部署tomcat

目录 1、Jenkins官网下载Jenkins 2、安装Jenkins 3、修改Home directory 4、插件安装及系统配置 5、Tomcat安装及配置 5.1、修改配置文件,屏蔽以下代码 5.2、新增登录用户 5.3、编码格式修改 5.4、启动tomcat 6、Jenkins远程部署war包 6.1、General配置 6.2、Sourc…...

设计模式|责任链模式(Chain of Responsibility Pattern)

文章目录 结构优点缺点使用责任链的步骤示例有哪些知名框架采用了责任链模式责任链模式和链表有什么关联常见面试题 责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许你创建一个对象链。请求将沿着这个链传递&#xff…...

文件服务器之二:SAMBA服务器

文章目录 什么是SAMBASAMBA的发展历史与名称的由来SAMBA常见的应用 SAMBA服务器基础配置配置共享资源Windows挂载共享Linux挂载共享 什么是SAMBA 下图来自百度百科 SAMBA的发展历史与名称的由来 Samba是一款开源的文件共享软件,它基于SMB(Server Messa…...

20.安全性测试与评估

每年都会涉及;可能会考大题;多记!!! 典型考点:sql注入、xss; 从2个方面记: 1、测试对象的功能、性能; 2、相关设备的工作原理; 如防火墙,要了解防…...

阿里巴巴实习面经

本人bg:浙江大学,计算机研二,本科也是浙大计算机专业的。 在阿里巴巴达摩院实习,算法岗,我是去年拿到的阿里巴巴达摩院的实习offer,这个过程还是比较惊心动魄,所以我称之为惊心动魄版本&#xf…...

javaweb学习(day11-监听器Listener过滤器Filter)

一、监听器Listener 1 Listener介绍 Listener 监听器它是 JavaWeb 的三大组件之一。JavaWeb 的三大组件分别是:Servlet 程 序、Listener 监听器、Filter 过滤器 Listener 是 JavaEE 的规范,就是接口 监听器的作用是,监听某种变化(一般就是对…...

教你快速认识Java中的抽象类和接口

目录 引言 抽象类(Abstract Class) 抽象类的概念 抽象类的图标 抽象类的语法 抽象类的特点 接口(Interface) 接口的概念 接口的图标 接口的语法 接口的特点 接口的使用 接口的意义 抽象类与接口的区别 Object类 结…...

Linux第5课 Linux目录介绍

文章目录 Linux第5课 Linux目录介绍一、打开系统目录二、查看系统目录 Linux第5课 Linux目录介绍 系统目录就是指操作系统的主要文件存放的目录,目录中的文件直接影响到系统是否正常工作,了解这些目录的功能,对使用系统会有很大的帮助。 一…...

GitHub要求2FA?不慌,有它(神锁离线版)帮你!

GitHub宣布,到 2023 年底,所有用户都必须要启用双因素身份验证 (2FA),不能只用密码啦。 说实话,听到这消息小编是非常高兴的。 正如GitHub的首席安全官Mike Hanley所说,软件供应链是从开发者开始的,保护开…...

C语言第四十弹---预处理(下)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 预处理 1、#和## 1.1 #运算符 1.2、##运算符 2、命名约定 3、#undef 4、命令行定义 5、条件编译 6、头文件的包含 6.1、头文件被包含的方式 6.1.1、本地…...

SYS-2722音频分析仪SYS2722

181/2461/8938产品概述: Audio Precision 2722 音频分析仪是 Audio Precision 屡获殊荣的 PC 控制音频分析仪的旗舰型号,长期以来一直是音频设备设计和测试的全球公认标准。功能齐全的 SYS-2722 提供了测试转换器技术最新进展所需的无与伦比的失真和噪声…...

下载页面上的视频

引言:有些页面上的视频可以直接右键另存为或者F12检索元素找到视频地址打开后保存,但有些视频页面是转码后的视频,不能直接另存为视频格式,可以参考下本方法 以该页面视频为例:加载中...点击查看详情https://wx.vzan.c…...

如何高效清理重复图片?AntiDupl.NET智能去重工具详解

如何高效清理重复图片?AntiDupl.NET智能去重工具详解 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 在数字资产管理中,重复文件清理已成为提升…...

Matlab ode45求解微分方程保姆级教程:从单变量到多智能体系统,附完整代码

Matlab ode45求解微分方程:从单变量到多智能体系统的工程实践 微分方程是描述动态系统演化的核心数学工具,而Matlab的ode45求解器则是工程师和科研人员最常用的数值求解利器。本文将带你从最基础的单个微分方程求解出发,逐步深入到多智能体系…...

Pycharm更新骨架卡死C盘?罪魁祸首是torch-geometric的四个依赖库

PyCharm更新骨架卡死C盘?深入解析torch-geometric依赖库的存储陷阱 当你在PyCharm中启动一个包含torch-geometric的项目时,是否经历过C盘空间被神秘吞噬的噩梦?那个名为"Updating skeletons"的后台进程,本应是IDE的贴心…...

卸载软件后右键菜单残留?用PowerShell精准清理注册表(附一键备份脚本)

彻底告别右键菜单残留:PowerShell注册表清理实战指南 刚卸载完某款压缩软件,却发现右键菜单里依然顽固地留着它的选项——这种经历恐怕不少Windows用户都遇到过。上周帮同事处理电脑时,就遇到了一个典型案例:卸载"可牛压缩&q…...

别再乱点鼠标了!用netsh advfirewall命令搞定Windows防火墙,效率翻倍(附常用场景命令清单)

Windows防火墙命令行实战:netsh advfirewall高阶应用指南 每次看到同事在图形界面里一层层点击"控制面板→系统和安全→Windows Defender防火墙→高级设置"时,我都忍不住想递给他一个命令行窗口。作为IT运维老手,我早已习惯用netsh…...

NotebookLM笔记生产力跃迁(仅限前500名早鸟用户的动态模板库已开放)

更多请点击: https://intelliparadigm.com 第一章:NotebookLM笔记生产力跃迁(仅限前500名早鸟用户的动态模板库已开放) NotebookLM 正式引入基于语义理解的「上下文感知模板引擎」,早鸟用户可通过专属入口启用动态模板…...

基于Hammerspoon的macOS光标高亮定位工具实现与优化

1. 项目概述:一个让你不再“找光标”的效率神器你有没有过这样的经历?在27寸甚至更大的显示器上,或者是在多屏工作环境中,眼睛在密密麻麻的代码、文档和浏览器标签之间快速扫视,突然,那个小小的鼠标光标“消…...

AI智能体如何革新LaTeX写作:PaperDebugger深度集成Overleaf实践

1. 项目概述:当AI助手遇上LaTeX写作如果你是一名科研工作者、研究生,或者任何需要和LaTeX文档打交道的人,那么下面这个场景你一定不陌生:深夜,你对着Overleaf编辑器里密密麻麻的代码和公式,反复修改着论文的…...

E-Hentai下载器:免费漫画批量下载工具完整指南

E-Hentai下载器:免费漫画批量下载工具完整指南 【免费下载链接】E-Hentai-Downloader Download E-Hentai archive as zip file 项目地址: https://gitcode.com/gh_mirrors/eh/E-Hentai-Downloader 你是否曾经为了收藏喜欢的漫画而一页一页手动保存&#xff1…...

物联网安全认证:X.509证书的局限与替代方案实战解析

1. 项目概述:当X.509证书认证在IoT安全中“失灵”的深度剖析几年前,一份在DEFCON大会上披露的论文揭示了一个令人震惊的事实:互联网上存在大量未受保护的MQTT代理服务器。这些“门户大开”的代理,结合MQTT协议本身允许使用通配符订…...