可视化学生成绩管理系统(重点,要有增删改查,查询时品示新界面)python代码
时间: 2024-10-21 19:01:39 浏览: 30
可视化学生成绩管理系统通常是一个基于Python的GUI应用程序,我们可以使用Tkinter库来创建用户界面,如sqlite3数据库用于存储学生的成绩信息。以下是一个简单的示例代码框架:
```python
import tkinter as tk
import sqlite3
# 连接到SQLite数据库(如果不存在则创建)
def create_connection():
conn = None
try:
conn = sqlite3.connect('scores.db')
print(sqlite3.version)
except Error as e:
print(e)
if conn:
return conn
# 创建表结构
def create_table(conn):
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS students
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
score INTEGER NOT NULL)''')
# 功能函数(增删改查)
def add_score(entry_id, entry_name, entry_score):
conn = create_connection()
with conn:
conn.execute("INSERT INTO students (name, score) VALUES (?, ?)", (entry_name, entry_score))
def delete_score(id):
conn = create_connection()
with conn:
conn.execute("DELETE FROM students WHERE id=?", (id,))
def update_score(id, new_score):
conn = create_connection()
with conn:
conn.execute("UPDATE students SET score=? WHERE id=?", (new_score, id))
def query_scores():
conn = create_connection()
cursor = conn.cursor()
cursor.execute("SELECT * FROM students")
rows = cursor.fetchall()
# 更新UI显示查询结果
display_results(rows)
# 主窗口
root = tk.Tk()
frame = tk.Frame(root)
frame.pack()
add_entry = tk.Entry(frame)
delete_button = tk.Button(frame, text="删除", command=lambda: delete_score(add_entry.get()))
update_entry = tk.Entry(frame)
update_button = tk.Button(frame, text="更新", command=lambda: update_score(update_entry.get(), int(add_entry.get())))
# 添加更多输入框和按钮来处理其他操作...
# 查询结果显示区域
results_frame = tk.Frame(root)
results_scrollbar = tk.Scrollbar(results_frame)
results_listbox = tk.Listbox(results_frame, yscrollcommand=results_scrollbar.set)
results_scrollbar.config(command=results_listbox.yview)
# 配置UI,运行查询函数
query_scores_button = tk.Button(root, text="查询", command=query_scores)
query_scores_button.pack()
# ... 继续添加其他UI元素和事件绑定
root.mainloop()
```
在这个示例中,我们首先建立了一个数据库连接,然后创建了`students`表。接着定义了四个功能函数分别对应增删改查的操作,并在主窗口上放置了相应的输入框和按钮。`query_scores`函数用于从数据库中获取所有学生的成绩并显示在列表框中。
请注意,这只是一个基础框架,实际应用中还需要完善错误处理、数据验证以及更复杂的交互设计。此外,对于新的查询界面,可以创建一个新的窗口或者模态对话框来展示查询结果,而不是直接修改原有的窗口。
阅读全文