对于学习成绩较差的同学,学校会进行成绩预警。请实现:学生输入姓名和各科成绩,点击按钮之后判断是否预警。假设课程数量为5门。成绩预警条件:平均成绩低于70分;挂科课程数量超过总课程数的1/3
时间: 2024-03-17 08:40:21 浏览: 40
学生成绩预警系统设计与实现
好的,这里提供一个简单的实现方式,使用 Python 和 tkinter 模块来实现图形界面。
```python
from tkinter import *
# 计算平均分数和挂科科目数
def calculate_score(scores):
total_score = sum(scores)
num_subjects = len(scores)
avg_score = total_score / num_subjects
fail_count = 0
for score in scores:
if score < 60:
fail_count += 1
return avg_score, fail_count
# 判断是否预警
def check_warning(name, scores):
avg_score, fail_count = calculate_score(scores)
if avg_score < 70 or fail_count > len(scores) / 3:
result = f"{name},您的成绩未达标,需要进行成绩预警。"
else:
result = f"{name},您的成绩已达标,无需进行成绩预警。"
return result
# 处理按钮点击事件
def handle_click():
name = name_entry.get().strip()
if not name:
result_label.config(text="请输入姓名。")
return
try:
scores = [int(score_entry.get()) for score_entry in score_entries]
except ValueError:
result_label.config(text="成绩必须为整数。")
return
if len(scores) != 5:
result_label.config(text="请填写完整的成绩。")
return
result = check_warning(name, scores)
result_label.config(text=result)
# 创建主界面
root = Tk()
# 创建姓名输入框
Label(root, text="姓名:").grid(row=0, column=0)
name_entry = Entry(root)
name_entry.grid(row=0, column=1)
# 创建成绩输入框
subjects = ["语文", "数学", "英语", "物理", "化学"]
score_entries = []
for i, subject in enumerate(subjects):
Label(root, text=subject + ":").grid(row=i+1, column=0)
score_entry = Entry(root)
score_entry.grid(row=i+1, column=1)
score_entries.append(score_entry)
# 创建按钮并绑定事件
Button(root, text="判断", command=handle_click).grid(row=6, column=1)
# 创建结果显示标签
result_label = Label(root, text="")
result_label.grid(row=7, column=0, columnspan=2)
# 运行主界面
root.mainloop()
```
这个程序会创建一个简单的界面,包含一个姓名输入框、五个成绩输入框、一个判断按钮和一个结果显示标签。当用户点击判断按钮时,程序会读取输入框中的数据,计算平均分数和挂科科目数,然后根据预警条件判断是否需要进行成绩预警,最后将结果显示在结果显示标签中。
阅读全文