功能要求
小学老师要每周给同学出300道四则运算练习题。
–这个程序有很多种实现方式:
C/C++
C#/VB.net/Java
Excel
Unix Shell
Emacs/Powershell/Vbscript
Perl
Python
–两个运算符,100 以内的数字,不需要写答案(实现)
–需要检查答案是否正确,并且保证答案在 0..100 之间(实现)
–尽可能地多设置一些条件
添加的条件:
给出的题目的结果为0--100之间的整数
在算式中出现除法运算时,除法运算能够整除
编程阶段
这次结对编程由我独自完成,我选择了python语言,Python拥有丰富的标准库和第三方库,提供了各种各样的功能模块,包括用于数学计算、随机数生成、文件操作等等,它的语法简洁,而且有很多现成的库可以直接调用,可以快速实现功能并进行测试和调试。
首先,我仔细阅读题目要求,理解老师的需求,并确定程序需要实现的功能和条件,设计生成题目和检查答案的算法。考虑如何使用随机数生成题目,如何检查答案是否正确,以及如何限制答案的范围等。
源代码
import tkinter as tk
import random
class Calculator:
def __init__(self, master):
self.master = master
self.master.title("四则运算出题计算器")
self.expression = ""
self.answer = 0
self.result_text = None #结果 初始化为None
self.create_widgets()
def create_widgets(self):
self.text = tk.StringVar()
self.text.set("点击出题开始")
self.label = tk.Label(self.master, textvariable=self.text)
self.label.pack()
self.entry = tk.Entry(self.master)
self.entry.pack()
self.check_button = tk.Button(self.master, text="检查答案", command=self.check_answer)
self.check_button.pack()
self.question_button = tk.Button(self.master, text="出题", command=self.generate_question)
self.question_button.pack()
# 新的文本框用于显示结果
self.result_text = tk.Text(self.master, height=1, width=30)
self.result_text.pack()
def generate_question(self):
num1 = random.randint(1, 50)
num2 = random.randint(1, 10)
num3 = random.randint(1, 3)
operator1 = random.choice(["+", "-"])
operator2 = random.choice(["*", "/"])
self.expression = f"{num1} {operator1} {num2} {operator2} {num3}"
self.answer = round(eval(self.expression), 2)
self.text.set(self.expression)
def check_answer(self):
try:
user_answer = float(self.entry.get())
if abs(user_answer - self.answer) < 0.01:
self.result_text.delete(1.0, tk.END)
self.result_text.insert(tk.END, "恭喜你,答案正确!")
else:
self.result_text.delete(1.0, tk.END)
self.result_text.insert(tk.END, f"答案错误,正确答案是:{self.answer}")
except ValueError:
self.result_text.delete(1.0, tk.END)
self.result_text.insert(tk.END, "请输入有效的数字")
root = tk.Tk()
app = Calculator(root)
root.mainloop()
我在程序中创建了GUI界面的几个组件,包括标签、文本框、按钮以及用于显示结果的文本框。在主程序中,首先创建了一个Tkinter窗口,然后创建了一个Calculator对象,并通过调用root.mainloop()方法启动了事件循环,使程序保持运行状态,等待用户的交互。
运行程序,就可以看到界面了:
程序的核心是check_answer这个方法,它用于检查用户输入的答案是否正确。首先获取用户输入的答案,然后与程序计算得到的答案进行比较,如果两者之差小于0.01,则认为答案正确,否则认为答案错误,并在结果文本框中显示相应的提示信息。
如果没有输入,将提示用户
合作对象:自己
标签:程序实现,text,self,四则运算,master,tk,简单,answer,result From: https://www.cnblogs.com/aloe-cong/p/18135911