写一个学生成绩管理系统的gui python
时间: 2023-07-25 16:15:41 浏览: 80
好的,以下是一个简单的学生成绩管理系统的GUI Python代码示例,使用了Tkinter库:
```python
import tkinter as tk
class Student:
def __init__(self, name, grade):
self.name = name
self.grade = grade
class GradeBook:
def __init__(self):
self.students = []
def add_student(self, student):
self.students.append(student)
def list_students(self):
return [s.name for s in self.students]
def get_student_grade(self, name):
for s in self.students:
if s.name == name:
return s.grade
return None
class GradeBookGUI:
def __init__(self, gradebook):
self.gb = gradebook
self.window = tk.Tk()
self.window.title("学生成绩管理系统")
# 添加学生
self.add_frame = tk.Frame(self.window)
self.add_frame.pack(side=tk.TOP, pady=10)
tk.Label(self.add_frame, text="添加学生").pack(side=tk.LEFT)
self.add_entry = tk.Entry(self.add_frame, width=20)
self.add_entry.pack(side=tk.LEFT)
tk.Button(self.add_frame, text="添加", command=self.add_student).pack(side=tk.LEFT)
# 学生列表
self.list_frame = tk.Frame(self.window)
self.list_frame.pack(side=tk.TOP, pady=10)
tk.Label(self.list_frame, text="学生列表").pack(side=tk.LEFT)
self.listbox = tk.Listbox(self.list_frame)
self.listbox.pack(side=tk.LEFT)
self.refresh_list()
# 查询成绩
self.get_grade_frame = tk.Frame(self.window)
self.get_grade_frame.pack(side=tk.TOP, pady=10)
tk.Label(self.get_grade_frame, text="查询成绩").pack(side=tk.LEFT)
self.get_grade_entry = tk.Entry(self.get_grade_frame, width=20)
self.get_grade_entry.pack(side=tk.LEFT)
tk.Button(self.get_grade_frame, text="查询", command=self.get_student_grade).pack(side=tk.LEFT)
def add_student(self):
name = self.add_entry.get()
if name:
self.gb.add_student(Student(name, 0))
self.add_entry.delete(0, tk.END)
self.refresh_list()
def refresh_list(self):
self.listbox.delete(0, tk.END)
for s in self.gb.list_students():
self.listbox.insert(tk.END, s)
def get_student_grade(self):
name = self.get_grade_entry.get()
grade = self.gb.get_student_grade(name)
if grade is not None:
tk.messagebox.showinfo("成绩查询", "{} 的成绩为 {}".format(name, grade))
else:
tk.messagebox.showerror("成绩查询", "{} 不存在".format(name))
def run(self):
self.window.mainloop()
# 测试
gb = GradeBook()
gui = GradeBookGUI(gb)
gui.run()
```
这个简单的GUI应用程序包含了以下功能:
- 添加学生:可以输入学生姓名,点击“添加”按钮将学生添加到系统中。
- 学生列表:显示当前系统中所有学生的姓名。
- 查询成绩:可以输入学生姓名,点击“查询”按钮将查询该学生的成绩并显示在消息框中。如果该学生不存在,则显示错误消息框。
你可以根据自己的需求进行修改和扩展。
阅读全文