GUI版的学生成绩管理系统,具有如下功能: 1)学生的信息输入,(学生,包括属性:学号,姓名,C成绩,C++成绩,python成绩) 2)显示输入的学生信息 3)按学生总分对学生降序排序。 4)计算每个学生的总分 用python
时间: 2024-01-01 17:04:44 浏览: 74
好的,我可以为您提供一些帮助。首先,您需要安装Tkinter库,它是Python的标准GUI库。您可以使用以下命令进行安装:
```python
pip install tkinter
```
然后,您可以使用以下代码来创建一个简单的GUI界面,以便用户可以输入学生信息:
```python
import tkinter as tk
class StudentGUI:
def __init__(self, master):
self.master = master
master.title("学生成绩管理系统")
# 创建学号标签和输入框
self.student_id_label = tk.Label(master, text="学号:")
self.student_id_label.grid(row=0, column=0)
self.student_id_entry = tk.Entry(master)
self.student_id_entry.grid(row=0, column=1)
# 创建姓名标签和输入框
self.student_name_label = tk.Label(master, text="姓名:")
self.student_name_label.grid(row=1, column=0)
self.student_name_entry = tk.Entry(master)
self.student_name_entry.grid(row=1, column=1)
# 创建C成绩标签和输入框
self.c_score_label = tk.Label(master, text="C成绩:")
self.c_score_label.grid(row=2, column=0)
self.c_score_entry = tk.Entry(master)
self.c_score_entry.grid(row=2, column=1)
# 创建C++成绩标签和输入框
self.cpp_score_label = tk.Label(master, text="C++成绩:")
self.cpp_score_label.grid(row=3, column=0)
self.cpp_score_entry = tk.Entry(master)
self.cpp_score_entry.grid(row=3, column=1)
# 创建Python成绩标签和输入框
self.python_score_label = tk.Label(master, text="Python成绩:")
self.python_score_label.grid(row=4, column=0)
self.python_score_entry = tk.Entry(master)
self.python_score_entry.grid(row=4, column=1)
# 创建提交按钮
self.submit_button = tk.Button(master, text="提交", command=self.submit)
self.submit_button.grid(row=5, column=1)
def submit(self):
# 获取输入的学生信息
student_id = self.student_id_entry.get()
student_name = self.student_name_entry.get()
c_score = float(self.c_score_entry.get())
cpp_score = float(self.cpp_score_entry.get())
python_score = float(self.python_score_entry.get())
# TODO: 将学生信息保存到数据库中
# 清空输入框
self.student_id_entry.delete(0, tk.END)
self.student_name_entry.delete(0, tk.END)
self.c_score_entry.delete(0, tk.END)
self.cpp_score_entry.delete(0, tk.END)
self.python_score_entry.delete(0, tk.END)
root = tk.Tk()
gui = StudentGUI(root)
root.mainloop()
```
这段代码创建了一个包含学生信息输入框和提交按钮的GUI界面。当用户点击提交按钮时,程序将获取输入的学生信息,并将其保存到数据库中。您需要实现保存学生信息到数据库的代码。
接下来,您可以使用以下代码来显示输入的学生信息:
```python
import tkinter as tk
class StudentGUI:
def __init__(self, master):
self.master = master
master.title("学生成绩管理系统")
# 创建学号标签和输入框...
# 创建提交按钮
self.submit_button = tk.Button(master, text="提交", command=self.submit)
self.submit_button.grid(row=5, column=1)
# 创建显示学生信息的文本框
self.student_info_text = tk.Text(master, height=10, width=50)
self.student_info_text.grid(row=6, columnspan=2)
def submit(self):
# 获取输入的学生信息...
# 将学生信息显示到文本框中
self.student_info_text.insert(tk.END, f"学号:{student_id}\n")
self.student_info_text.insert(tk.END, f"姓名:{student_name}\n")
self.student_info_text.insert(tk.END, f"C成绩:{c_score}\n")
self.student_info_text.insert(tk.END, f"C++成绩:{cpp_score}\n")
self.student_info_text.insert(tk.END, f"Python成绩:{python_score}\n\n")
# TODO: 将学生信息保存到数据库中
# 清空输入框...
```
这段代码创建了一个文本框,用于显示输入的学生信息。当用户点击提交按钮时,程序将显示输入的学生信息。您需要实现按学生总分对学生进行降序排序的功能,以及计算每个学生的总分。您可以使用以下代码来完成这些功能:
```python
import tkinter as tk
from operator import itemgetter
class StudentGUI:
def __init__(self, master):
self.master = master
master.title("学生成绩管理系统")
# 创建学号标签和输入框...
# 创建提交按钮
self.submit_button = tk.Button(master, text="提交", command=self.submit)
self.submit_button.grid(row=5, column=1)
# 创建显示学生信息的文本框
self.student_info_text = tk.Text(master, height=10, width=50)
self.student_info_text.grid(row=6, columnspan=2)
# 创建排序按钮
self.sort_button = tk.Button(master, text="按总分排序", command=self.sort)
self.sort_button.grid(row=7, column=1)
def submit(self):
# 获取输入的学生信息...
# 将学生信息显示到文本框中...
# TODO: 将学生信息保存到数据库中...
# 清空输入框...
def sort(self):
# 从数据库中获取所有学生信息
students = []
# TODO: 从数据库中获取所有学生信息
# 计算每个学生的总分
for student in students:
total_score = student["C成绩"] + student["C++成绩"] + student["Python成绩"]
student["总分"] = total_score
# 按学生总分进行降序排序
sorted_students = sorted(students, key=itemgetter("总分"), reverse=True)
# 将排序后的学生信息显示到文本框中
self.student_info_text.delete(1.0, tk.END)
for student in sorted_students:
self.student_info_text.insert(tk.END, f"学号:{student['学号']}\n")
self.student_info_text.insert(tk.END, f"姓名:{student['姓名']}\n")
self.student_info_text.insert(tk.END, f"C成绩:{student['C成绩']}\n")
self.student_info_text.insert(tk.END, f"C++成绩:{student['C++成绩']}\n")
self.student_info_text.insert(tk.END, f"Python成绩:{student['Python成绩']}\n")
self.student_info_text.insert(tk.END, f"总分:{student['总分']}\n\n")
root = tk.Tk()
gui = StudentGUI(root)
root.mainloop()
```
这段代码创建了一个按总分排序的按钮。当用户点击该按钮时,程序将从数据库中获取所有学生信息,并计算每个学生的总分。然后,程序将按学生总分进行降序排序,并将排序后的学生信息显示到文本框中。
请注意,此代码仅提供了一个简单的框架,您需要根据自己的需求进行修改和完善。此外,您需要实现将学生信息保存到数据库的代码。
阅读全文