首页 > 编程语言 >简单四则运算程序实现

简单四则运算程序实现

时间:2024-04-15 14:47:17浏览次数:23  
标签:程序实现 text self 四则运算 master tk 简单 answer result

功能要求

小学老师要每周给同学出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

相关文章

  • 简单写一个eventbus
    前言闲暇之余,简单写一个eventbus。正文什么是eventbus?eventbus是一个开源的发布订阅模式的框架,用于简化程序间不同组件的通信。它允许不同组件间松耦合通信,组件之间不通过直接引用的方式,而是事件的方式进行消息传递。下面进行代码演示:首先是发布订阅,那么就应该有发布方法......
  • 2024.4.15 学习数理结构“栈”后的四则运算
    使用栈的四则运算1.题目描述用顺序栈和算符优先法求解表达式的值2.任务定义和问题分析四则运算基本运要通过算法优先级和后缀表达式的思想完成,应当由以下功能:(1)可以先求解后缀表达式。然后再求值,也可以一并完成。(2)表达式中的运算为加、减、乘、除四种,包括括号,参与运算的数字为......
  • python 实现简单的web功能
    BaseHTTPRequestHandler介绍这是一个以TCPServer为基础开发的模块,可以在请求外层添加http协议报文,发送http协议。基于BaseHTTPServer的HttpServer的处理流程:1.HTTPServer绑定对应的应答类(BaseHTTPRequestHandler)http_server=HTTPServer((’’,int(port)),ServerHTTP)2.监......
  • C / C++ 文件简单混编 + 轻量级日志系统使用
    在项目工程里面,不一定全部是c或者c++文件,有时候是混合一起,这个时候如果使用makefile编译的话,就要考虑兼容两种类型的文件编译了;实战经验如下:根据自己的风格制作响应的打印和日志记录,makefile编写如下:CC=gccCPP=g++#文件夹路径ROOTPATH=.INCLUDE=-I./cfg/inc-I$(......
  • gitee基于webhooks实现前端简单自动化部署
    1.为什么采用自动化部署简而言之,程序员优秀传统:懒=>高级生产力.基于gitee进行的自动化部署,服务器环境为Ubuntu基于webhooks进行的自动化部署更加轻快便捷2.部署步骤1).服务器购买可以购买阿里云抢占式服务器进行实验,花费应该在一大洋以内,或者直接购买一年低配服务......
  • 搭建个人图书馆!一个简单的在线个人书库
    大家好,我是Java陈序员。今天,给大家介绍一个在线的个人图书管理系统,支持在线阅读。关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。项目介绍talebook——一个基于Calibre的简单的个人图书管理系统,支持在线阅读。友情提醒:个......
  • 简单智能手机原型设计
    实验一一、实验题目:原型设计二、实验目的:掌握产品原型设计方法和相应工具使用。三、实验要求与过程(1)对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点。1、墨刀适用领域:墨刀主要适用于移动应用、小程序等交互设计,尤其擅长快速原型设计和高保真度的交......
  • 结对编程--四则运算
    前言按照结对编程的原则,我和小组另一个成员进行了结对编程。我们开发的结对项目是小学的四则运算生成器。具体来说,我们开发了一个程序,用于随机生成四则运算题目,供学生答题,并返回答案的正误。在讨论后,我们决定使用C++来开发这个控制台程序,因为C++具有优秀的计算功能,并且能够在......
  • 简单了解前端性能监控
    作为一名开发来讲,以下场景你有没有遇到:点击这个按钮怎么没反应了页面为什么白了怎么一直正在加载很多用户说图片加载不出来......那么有一款性能监控产品太重要了,但是性能相关的东西实在太多了。那么从一个熟悉又陌生的api开始,performance。1.什么是performancemdn上是......
  • python四则运算生成器
    合作伙伴:2252717在编程任务中,清晰地理解并规划设计思路是至关重要的。对于这个特定的四则运算题目生成器,目标是创建一个程序,能够随机生成包含两个运算符的数学题目,这些题目涉及100以内的数字,并确保所有生成的题目的答案都在0到100之间。以下是我在设计和实现这个程序时遵循的详细......