python写有交互界面的学分统计系统
时间: 2023-09-14 09:02:41 浏览: 43
实现一个有交互界面的学分统计系统可以使用 Python 的 GUI 库 tkinter,以下是一个简单的示例代码:
```python
import tkinter as tk
class CreditCalculator(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.pack()
self.create_widgets()
def create_widgets(self):
# 创建标签和输入框
self.course_label = tk.Label(self, text="课程名:")
self.course_label.pack()
self.course_entry = tk.Entry(self)
self.course_entry.pack()
self.credit_label = tk.Label(self, text="学分:")
self.credit_label.pack()
self.credit_entry = tk.Entry(self)
self.credit_entry.pack()
self.grade_label = tk.Label(self, text="成绩:")
self.grade_label.pack()
self.grade_entry = tk.Entry(self)
self.grade_entry.pack()
# 创建添加按钮
self.add_button = tk.Button(self, text="添加", command=self.add_course)
self.add_button.pack()
# 创建统计按钮
self.calculate_button = tk.Button(self, text="计算总学分和平均成绩", command=self.calculate)
self.calculate_button.pack()
# 创建输出框
self.output_text = tk.Text(self, height=10, width=30)
self.output_text.pack()
# 初始化变量
self.courses = []
self.total_credit = 0
self.total_grade = 0
def add_course(self):
# 获取输入的数据
course_name = self.course_entry.get()
credit = float(self.credit_entry.get())
grade = float(self.grade_entry.get())
# 添加到列表
self.courses.append((course_name, credit, grade))
# 清空输入框
self.course_entry.delete(0, tk.END)
self.credit_entry.delete(0, tk.END)
self.grade_entry.delete(0, tk.END)
def calculate(self):
# 计算总学分和平均成绩
self.total_credit = sum(course[1] for course in self.courses)
self.total_grade = sum(course[1] * course[2] for course in self.courses) / self.total_credit
# 输出结果
self.output_text.delete(1.0, tk.END)
self.output_text.insert(tk.END, f"总学分: {self.total_credit:.1f}\n")
self.output_text.insert(tk.END, f"平均成绩: {self.total_grade:.1f}\n")
if __name__ == "__main__":
root = tk.Tk()
app = CreditCalculator(master=root)
app.mainloop()
```
运行代码后会出现一个窗口,可以输入课程名、学分和成绩,点击添加按钮将数据添加到列表中,点击计算按钮将统计结果输出到输出框中。
需要注意的是,这只是一个简单的示例,实际应用中需要根据具体需求进行修改和完善。