用python做一个学生管理系统图形界面版

废话不多说下面是代码和注释

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()

下面是代码效果:

代码可以直接复制

如果有啥问题可以问我看到一定会回复大家,如果大家喜欢可以作者点赞和关注

大家的支持是我创作下去的最大动力!

  • 19
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值