废话不多说下面是代码和注释
import tkinter as tk
from tkinter import messagebox
# 创建一个空的字典来存储学生的信息
students = {}
def add_student():
# 获取输入框中的学生信息
name = name_entry.get()
age = age_entry.get()
gender = gender_entry.get()
id = id_entry.get()
# 将学生信息添加到字典中
students[id] = {'name': name, 'age': age, 'gender': gender}
# 显示所有学生信息
display_all_students()
def delete_student():
# 获取输入框中的学号
id = id_entry.get()
# 如果学号在字典中,删除该学生信息
if id in students:
del students[id]
# 显示所有学生信息
display_all_students()
else:
# 弹出错误提示框
messagebox.showerror("Error", "No student with this ID")
def modify_student():
# 获取输入框中的学生信息
name = name_entry.get()
age = age_entry.get()
gender = gender_entry.get()
id = id_entry.get()
# 如果学号在字典中,修改该学生信息
if id in students:
students[id] = {'name': name, 'age': age, 'gender': gender}
# 显示所有学生信息
display_all_students()
else:
# 弹出错误提示框
messagebox.showerror("Error", "No student with this ID")
def query_student():
# 获取输入框中的学号
id = id_entry.get()
# 根据学号查询学生信息,如果不存在则返回提示信息
info = students.get(id, 'No student with this ID')
# 弹出查询结果提示框
messagebox.showinfo("Query Result", info)
def display_all_students():
# 清空结果显示框
result_text.delete(1.0, tk.END)
# 遍历字典中的所有学生信息,并显示在结果显示框中
for id, info in students.items():
result_text.insert(tk.END, f"学号: {id}, 姓名: {info['name']}, 年龄: {info['age']}, 年级: {info['gender']}\n")
# 创建图形化界面
window = tk.Tk()
window.title("Student Management System")
frame = tk.Frame(window)
frame.pack(padx=10, pady=10)
label = tk.Label(frame, text="Enter student information:")
label.grid(row=0, column=0, columnspan=2)
id_label = tk.Label(frame, text="ID:")
id_label.grid(row=1, column=0)
id_entry = tk.Entry(frame)
id_entry.grid(row=1, column=1)
name_label = tk.Label(frame, text="Name:")
name_label.grid(row=2, column=0)
name_entry = tk.Entry(frame)
name_entry.grid(row=2, column=1)
age_label = tk.Label(frame, text="Age:")
age_label.grid(row=3, column=0)
age_entry = tk.Entry(frame)
age_entry.grid(row=3, column=1)
gender_label = tk.Label(frame, text="Gender:")
gender_label.grid(row=4, column=0)
gender_entry = tk.Entry(frame)
gender_entry.grid(row=4, column=1)
button_frame = tk.Frame(window)
button_frame.pack(pady=10)
add_button = tk.Button(button_frame, text="Add Student", command=add_student)
add_button.grid(row=0, column=0, padx=5)
delete_button = tk.Button(button_frame, text="Delete Student", command=delete_student)
delete_button.grid(row=0, column=1, padx=5)
modify_button = tk.Button(button_frame, text="Modify Student", command=modify_student)
modify_button.grid(row=0, column=2, padx=5)
query_button = tk.Button(button_frame, text="Query Student", command=query_student)
query_button.grid(row=0, column=3, padx=5)
result_label = tk.Label(window, text="Result:")
result_label.pack(pady=10)
result_text = tk.Text(window, height=10, width=50)
result_text.pack()
window.mainloop()
下面是代码效果:
代码可以直接复制
如果有啥问题可以问我看到一定会回复大家,如果大家喜欢可以作者点赞和关注
大家的支持是我创作下去的最大动力!