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

  • 相关阅读:
    zookeeper集群搭建
    Linux文本三剑客之sed流编辑器
    java 企业工程管理系统软件源码 自主研发 工程行业适用
    快速导入mysql较大的SQL文件
    .NET开发中合理使用对象映射库,简化和提高工作效率
    【SkyWalking】SkyWalking是如何实现跨进程传播链路数据?
    二分算法(2)
    【云原生 | Kubernetes 系列】--Gitops持续交付 ArgoCD自动同步策略
    Django+Pytest搭建在线自动化测试平台实战1
    1037 Magic Coupon(贪心,排序)
  • 原文地址:https://blog.csdn.net/weixin_66370632/article/details/137381083