用Python tkinter库和sqlite3库编写一个学生信息管理系统
时间: 2024-05-03 07:20:21 浏览: 155
好的,我可以为您提供一些基本的思路和代码,但具体的实现还需要您自己完成。
首先,我们使用 tkinter 创建 GUI 界面,然后使用 sqlite3 存储和管理学生信息。以下是一个基本的示例代码:
```python
import tkinter as tk
import sqlite3
# 创建框架
root = tk.Tk()
root.title("学生信息管理系统")
frame = tk.Frame(root)
frame.pack()
# 连接数据库
conn = sqlite3.connect('students.db')
c = conn.cursor()
# 创建数据表
c.execute('''CREATE TABLE IF NOT EXISTS students
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER,
grade INTEGER);''')
# 添加学生信息
def add_student():
name = name_entry.get()
age = age_entry.get()
grade = grade_entry.get()
c.execute("INSERT INTO students (name, age, grade) VALUES (?, ?, ?)", (name, age, grade))
conn.commit()
# 显示学生信息
def show_students():
students_list.delete(0, tk.END)
for student in c.execute("SELECT * FROM students"):
students_list.insert(tk.END, student)
# 删除学生信息
def delete_student():
name = name_entry.get()
c.execute("DELETE FROM students WHERE name=?", (name,))
conn.commit()
# 创建标签和输入框
name_label = tk.Label(frame, text="姓名:")
name_label.grid(row=0, column=0)
name_entry = tk.Entry(frame)
name_entry.grid(row=0, column=1)
age_label = tk.Label(frame, text="年龄:")
age_label.grid(row=1, column=0)
age_entry = tk.Entry(frame)
age_entry.grid(row=1, column=1)
grade_label = tk.Label(frame, text="成绩:")
grade_label.grid(row=2, column=0)
grade_entry = tk.Entry(frame)
grade_entry.grid(row=2, column=1)
# 创建按钮
add_button = tk.Button(frame, text="添加", command=add_student)
add_button.grid(row=3, column=0)
show_button = tk.Button(frame, text="显示", command=show_students)
show_button.grid(row=3, column=1)
delete_button = tk.Button(frame, text="删除", command=delete_student)
delete_button.grid(row=3, column=2)
# 创建学生信息列表框
students_label = tk.Label(frame, text="学生信息列表:")
students_label.grid(row=4, column=0)
students_list = tk.Listbox(frame)
students_list.grid(row=5, column=0, columnspan=3)
# 运行程序
root.mainloop()
```
这是一个基本的学生信息管理系统,您可以根据自己的需要进行修改和完善。希望对您有所帮助!
阅读全文