GUI程序设计--班级信息收集系(python)
代码
import tkinter as tk
from tkinter import messagebox
import sqlite3
# 初始化数据库
def init_db():
conn = sqlite3.connect("class.db")
cur = conn.cursor()
# 创建学生表:学号(主键)、班级、姓名
cur.execute('''
CREATE TABLE IF NOT EXISTS student (
stu_id TEXT PRIMARY KEY,
class_name TEXT NOT NULL,
name TEXT NOT NULL
)
''')
conn.commit()
conn.close()
# 录入学生信息
def add_student():
sid = entry_id.get().strip()
cls = entry_class.get().strip()
name = entry_name.get().strip()
if not sid or not cls or not name:
messagebox.showwarning("提示", "学号、班级、姓名不能为空!")
return
try:
conn = sqlite3.connect("class.db")
cur = conn.cursor()
cur.execute("INSERT INTO student (stu_id, class_name, name) VALUES (?,?,?)", (sid, cls, name))
conn.commit()
messagebox.showinfo("成功", "班级信息录入完成!")
# 清空输入框
entry_id.delete(0, tk.END)
entry_class.delete(0, tk.END)
entry_name.delete(0, tk.END)
except sqlite3.IntegrityError:
messagebox.showerror("错误", "该学号已存在,请勿重复录入!")
finally:
conn.close()
# 查询所有学生学号
def query_id():
conn = sqlite3.connect("class.db")
cur = conn.cursor()
cur.execute("SELECT stu_id, name FROM student")
res = cur.fetchall()
conn.close()
if not res:
text_result.delete(1.0, tk.END)
text_result.insert(tk.END, "暂无班级学生信息!")
return
text_result.delete(1.0, tk.END)
text_result.insert(tk.END, "===== 班级学生学号列表 =====\n")
for sid, name in res:
text_result.insert(tk.END, f"姓名:{name} 学号:{sid}\n")
# 主程序入口
if __name__ == "__main__":
# 初始化数据库
init_db()
# 创建主窗口
root = tk.Tk()
root.title("班级信息收集系统")
root.geometry("500x400") # 窗口大小
# 标签+输入框:学号
label_id = tk.Label(root, text="学 号:", font=("宋体", 11))
label_id.place(x=60, y=30)
entry_id = tk.Entry(root, width=30, font=("宋体", 11))
entry_id.place(x=130, y=30)
# 标签+输入框:班级
label_class = tk.Label(root, text="班 级:", font=("宋体", 11))
label_class.place(x=60, y=70)
entry_class = tk.Entry(root, width=30, font=("宋体", 11))
entry_class.place(x=130, y=70)
# 标签+输入框:姓名
label_name = tk.Label(root, text="姓 名:", font=("宋体", 11))
label_name.place(x=60, y=110)
entry_name = tk.Entry(root, width=30, font=("宋体", 11))
entry_name.place(x=130, y=110)
# 功能按钮
btn_add = tk.Button(root, text="录入班级信息", command=add_student, width=12, font=("宋体", 10))
btn_add.place(x=120, y=150)
btn_query = tk.Button(root, text="查询全体学号", command=query_id, width=12, font=("宋体", 10))
btn_query.place(x=260, y=150)
# 结果展示文本框
label_res = tk.Label(root, text="查询结果:", font=("宋体", 11))
label_res.place(x=60, y=190)
text_result = tk.Text(root, width=50, height=10, font=("宋体", 10))
text_result.place(x=60, y=215)
# 主循环
root.mainloop()
输入输出

更多推荐


所有评论(0)