当前位置: 首页 > 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 模块进行数据库操作。 

相关文章:

  • 在.Net6中用gdal实现第一个功能
  • 4月04日,每日信息差
  • 利用Idea实现Ajax登录(maven工程)
  • 【GlobalMapper精品教程】073:像素到点(Pixels-to-Points)从无人机图像轻松生成点云
  • 积鼎国产流体仿真解决方案助力2024航空装备数智化大会顺利召开
  • 图论- 最小生成树
  • axios 封装 http 请求详解
  • ClickHouse笔记
  • MySQL常用数据类型
  • LangChain-08 Query SQL DB 通过GPT自动查询SQL
  • Phpstorm配置Xdebug
  • Android BLE蓝牙扫描系统源码解析学习笔记
  • 【Servlet】Servlet入门
  • php开发实战分析(11):mysql中使用update语句使用CASE WHEN
  • 【快捷部署】011_PostgreSQL(16)
  • Liunx进程信号
  • Tuxera NTFS for Mac2023绿色免费版 免费的ntfs for mac 免费读写硬盘U盘工具
  • Linux存储的基本管理
  • 什么是Redis数据一致性?如何解决?
  • 操作系统① —— 进程管理
  • 史学巨擘的思想地图与学术路径——王汎森解析梁启超、陈寅恪、傅斯年
  • 举牌超200轮!中铁建7.76亿元竞得北京通州梨园宅地
  • 杨国荣︱学术上的立此存照——《故旧往事,欲说还休》读后
  • 助力企业高质量出海,上海静安发放服务包、服务券
  • 新造古镇丨上海古镇朱家角一年接待164万境外游客,凭啥?
  • 网警侦破特大“刷量引流”网络水军案:涉案金额达2亿余元