实现成绩录入界面,要求如下: (1) 界面包含两个文本行、 一个按钮 一个 列表框组件。两个文本行分别输入学生学号 和分数,点击录入按钮,学号及分数信息在 列表框中显示 (2)输入成绩范国为0-100,如果成绩不在该 范围内,则弹出对话框提示分数必须在0-100 之间。要求使用异常处理机制来实现该功
时间: 2024-03-24 12:36:00 浏览: 106
Java制作的一个记事本程序
好的,这是一个实现成绩录入界面的问题,下面是代码实现:
```python
import tkinter as tk
from tkinter import messagebox
class ScoreInput:
def __init__(self, master):
self.master = master
master.title("成绩录入界面")
# 学号输入行
self.id_label = tk.Label(master, text="学号")
self.id_label.grid(row=0, column=0)
self.id_entry = tk.Entry(master)
self.id_entry.grid(row=0, column=1)
# 分数输入行
self.score_label = tk.Label(master, text="分数")
self.score_label.grid(row=1, column=0)
self.score_entry = tk.Entry(master)
self.score_entry.grid(row=1, column=1)
# 录入按钮
self.submit_button = tk.Button(master, text="录入", command=self.record_score)
self.submit_button.grid(row=2, column=1)
# 列表框
self.listbox = tk.Listbox(master)
self.listbox.grid(row=3, column=0, columnspan=2)
def record_score(self):
try:
# 获取学号和分数
student_id = self.id_entry.get()
score = int(self.score_entry.get())
# 判断分数是否在0-100之间
if score < 0 or score > 100:
raise ValueError("分数必须在0-100之间")
# 添加学号和分数到列表框中
self.listbox.insert(tk.END, f"{student_id}: {score}")
# 清空输入框
self.id_entry.delete(0, tk.END)
self.score_entry.delete(0, tk.END)
except ValueError as e:
messagebox.showerror("错误", str(e))
# 创建主窗口
root = tk.Tk()
# 创建 ScoreInput 实例
score_input = ScoreInput(root)
# 运行主循环
root.mainloop()
```
以上代码实现了一个简单的成绩录入界面,包括学号、分数的输入,录入按钮和列表框组件。当分数不在0-100之间时,会弹出对话框提示分数必须在0-100之间。使用了异常处理机制来实现该功能。
阅读全文