首页 > 编程语言 >python项目练习——14.学生管理系统

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

时间:2024-04-04 20:04:43浏览次数:17  
标签:14 管理系统 python self score master tk age name

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

代码示例:

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 模块进行数据库操作。 

标签:14,管理系统,python,self,score,master,tk,age,name
From: https://blog.csdn.net/weixin_66370632/article/details/137381083

相关文章

  • Python - arxiv
    arxiv文章目录arxiv一、关于arxiv.py安装二、使用示例1、获取结果2、下载papers3、自定义client获取结果4、日志三、类型说明1、Client2、Search3、Result一、关于arxiv.pygithub:https://github.com/lukasschwab/arxiv.pyarxiv.py是arXivAPI的......
  • 如何利用c调用python代码
    C语言调用python通过C语言调用Python代码,需要先安装libpython3的dev依赖库(不同的ubuntu版本下,python版本可能会有差异,比如ubuntu22.04里是libpython3.10-dev)。首先可以通过以下命令验证是否是否已经存在python3的dev包dpkg-l|greplibpython3正常会有类似如下的输出,出......
  • Python数据分析与可视化笔记 九 分类问题
    分类        分类是找出数据库中一组数据对象的共同特点,并按照分类模式将其划分为不同的类,其目的是通过分类模型,将数据库中的数据项映射到某个给定的类别。        分类学习是一类监督学习的问题,训练数据会包含其分类结果,根据分类结果分为以下几种问题。1.......
  • 11.python的字典dict(下) 遍历字典,结构优化
    11.python的字典dict(下)遍历所有的键值对items()方法是字典的一个内置方法,用于返回字典中所有键值对的视图(view)。它返回一个可迭代的对象,每个元素都是一个包含键和对应值的元组。下面用一个例子来说明items()方法的用法:dict1={'name':'John','age':25,'job':'En......
  • Python企业面试题1 —— 基础篇
    1.b、B、KB、MB、GB的关系?b----位(bit)B----字节(一个字节等于8位)1B=8bit1KB=1024B1MB=1024KB1GB=1024MB2.PE8规范1.使用4个空格而不是tab键进行缩进。2.每行长度不能超过79。3.使用空行来间隔函数和类。4.必要时候,在每一行下写注释。5.......
  • python相对路径导包与绝对路径导包的正确方式
    【python相对路径导包与绝对路径导包的正确方式】python相对路径导包与绝对路径导包的正确方式_哔哩哔哩_bilibilipython导包的难题,今天解决了,相对路径导包和绝对路径导包,均可以!!!,视频播放量5、弹幕量0、点赞数0、投硬币枚数0、收藏人数0、转发人数1,视频作者天龙战神......
  • Python+requests+Pytest+logging+allure+pymysql框架详解
    一、框架目录结构1)tools目录用来放公共方法存储,如发送接口以及读取测试数据的方法,响应断言数据库断言前置sql等方法;2)datas目录用例存储接口用例的测试数据,我是用excel来存储的数据,文件数据图片数据等;3)testcases目录用来存放测试用例,一个python文件对应一个接口模块的......
  • Python从0到100(十):Python集合介绍及运用
    一、集合定义定义:由不同元素组成的集合,集合是一组无序排列可hash值,可作为字典的key。特性:集合的目的是将不同的值存放在一起,不同的集合间用来做关系运算,无须纠结于集合中的单个值。(1、不同元素组成2、无序3、集合中的元素必须是不可变类型)二、创建集合在Python中......
  • Python常用算法思想--递归算法思想详解【附源码】
    递归算法能够重复性的将问题分解为同类的子问题,然后解决这些子问题,最终达到解决最开始的问题为目的。以下从解决“阶乘”问题、“汉诺塔”问题、“斐波那契数列”问题、“最大公倍数和最小公约数”问题、“小球弹跳”、“深度优先”与“广度优先”问题等六个经典递归算法的案例......
  • 使用 Python 和 TensorFlow 构建深度人脸检测模型
    在本教程中,我们将逐步介绍使用Python和TensorFlow构建用于人脸检测的深度学习模型的过程。人脸检测是许多计算机视觉应用的重要组成部分,包括人脸识别、监控和图像理解。我们将利用卷积神经网络(CNN)和VGG16架构的强大功能来完成此任务。1.设置和数据收集1.1安装......