四则运算 结对编程

基本功能:1.一个带有用户界面的四则运算程序2.用户可以自己输入数据3.支持负数运算4.中间结果同样符合用户参数要求

界面效果:1.主界面

2.参数设置界面

原理分析:程序的大致流程为:用户进入主界面,点集“生成题目”,跳转到参数设置界面,用户设置完成后点击确定,主窗口从子窗口对象中提取各个参数生成算式,用户点击“打印题目”后将算式在listbox控件中输出。

为了方便起见,将生成算式的功能独自封装为一个类,在读取参数后直接调用这个类所实例化的对象的不同方法来生成算式。

生成算式的类主要包括三个方面的功能,即:算式求解、算式判重、生成算式。

(1)算式求解,参数为一个字符串表示具体算式,利用栈对其求解得出结果。

(2)算式判重,直接比较两个字符串是否相等。

(3)算式生成,为了保证中间结果满足整除或不为负数的要求,先用字母表示操作数,  随机生成运算符,此时得到一个抽象算式,对此算式计算其后缀表达式,以确定其 运算顺序,之后一次生成操作数即可,此处依然借助了栈进行实现。

代码:“生成题目”按钮的Click时间核心代码下:

当form窗体关闭后提取参数。之后调用算式类Equation类的对象,生成算式。

Equation类的类图如下

其中前8个方法为生成不同情况算式所对应的方法,build_suf为构造后缀表达式的方法,其调用如下所示:

e_cmp为比较两个算式是否重复,参数为两个字符串。Solve方法为表达式求解方法。属性的定义及含义如下所示:

MyStack为自己定义的栈类,对象sop存储操作符,snum存储操作数。构造抽象算式的代码以其中一个方法为例,如下所示:

这次的作业大部分都是靳嘉豪做的 ,因为是一个组的原因,我的作业得到他许多的帮助,在他积极的帮助下我们完成了这次的作业。虽然我并没有给与他太多的帮助,但是跟他在一个组我学习了很多。十分感谢

同组人:靳嘉豪

时间: 2024-07-30 23:54:11

四则运算 结对编程的相关文章

20165326 四则运算-结对编程 总结

四则运算-结对编程 总结 一.需求分析 能随机生成n道四则运算题目,n由使用者输入 支持整数和分数 支持多运算符 能够判断正误,错误时能提醒并输出正确答案 能计算出正确率 能多次生成题目,直到使用者选择退出 文件: 处理生成题目并输出到文件 完成题目后从文件读入并判题 二.设计思路 基于之前的工作,这一阶段的主要重心放在了生成txt文件,对文件进行输入输出等操作,此处设计了两个主类Questions和Results分别实现这两个操作.输出题目放在Exercisies.txt中,结果放在Exerc

网络四则运算结对编程

一.结对信息 项目组合 郭炜埕 201521123065 郑晓丽 201521123066 项目地址 (https://gitee.com/vicheng/four_operations/tree/master) 二.结对编程 1.需求分析 原来的代码只实现简单的两位数之间的加减乘除,而我们为需要改进其功能,实现了三位数的计算,并加了括号 改进后界面: 改进前类图: 改进后类图: 2.程序设计 3.代码展示 关键代码展示: ··· double g(double a, double b, Str

20165230 结对编程项目-四则运算 整体总结

20165230 结对编程项目-四则运算 整体总结 一.需求分析 随机生成题目 生成的题目个数从命令行输入 用户可选择生成不同难度的题目,比如通过参数指定: (1) 运算符个数范围 (2) 运算符限定(小学一年级题目只生成 + - 题目) 能多次生成题目 题目运算(判题) 支持多运算符 支持整数 支持真分数 题目合法性判断 可独立使用 可用于测试生成题目的正确性 扩展需求 题目去重 支持多语言 处理生成题目并输出到文件 完成题目后从文件读入并判题 二.设计思路 设计一个IntNumber类,用来

20172330 2017-2018-2 《程序设计与数据结构》结对编程项目-四则运算

1.结对成员 严域俊20172333 担任角色(团队分工) 1.前期分析流程 领航员:严域俊 操作员:李楠 原因:我是对于我们要编写的类寻找一些方法来进行实现,以及如何方便快捷的进行编写.而严域俊同学则是对于整个四则运算过程要求进行一一确定需要编写什么样的类, 2.中期各自分工编写类 该阶段主要是进行各自任务分工,由于之前的讨论我们的目的较为明确分为三个步奏,第一是严域俊同学进行编写一个可以随机生成不同等级的题目类,其次就是我编写一个可以进行中缀转后缀并输出后缀表达式及结果的类来承接他的题目,最

结对编程总结:简单的四则运算生成程序

1.题目描述:           面向小学生,随机生成30个100以内的四则运算,并且用户可以录入结果,检查用户录入的结果是否是正确的. 2.结对编程说明 结对对象:尤建  博客地址:http://www.cnblogs.com/lovelyYakir/ 双方贡献:2:1 3.本程序描述: a. 本程序在原有题目的基础上加以了部分改进: 1. 随机生成指定个数的四则运算. 2.可以输入四则运算的上下限. 4.结对编程照片: 5.源程序代码: MyExpression.java package

结对编程之四则运算

学习进度条 点滴成就 学习时间 新编写代码行数 博客量(篇) 学习知识点 第一周 2h 0 0 了解软件工程 第二周 3h 0 1 项目开题 第三周 5h 0 1 需求文档.用例图 第四周 8h 100 1 结对编程 第五周 12h 120 0 软件工程 第六周 15h 200 0 编译原理.软件工程详细设计 第七周 20h 100 1 软件测试 1. 结对编程对象:范心莲 2013110410 对方博客地址:http://www.cnblogs.com/FancyLian/ 双方贡献比例: 1

结对编程项目——四则运算

1. 结对编程项目---四则运算 (10分) 基本功能要求: 1) 实现一个带有用户界面的四则运算.2) 生成的题目不能重复.3) 支持负数,例如-1,-1/2,-3‘4/5等.(达成) 需要支持的基本设定参数 1) 题目的数量  2) 数值的范围  3) 题目中最多几个运算符(目前没有达成)  4) 题目中或运算过程中有无有分数(比如进行整数除法的时候不能除尽) 5) 题目中是否有乘除法  6) 题目中是否有括号 (目前没有达成) 7) 题目中或运算过程中有无负数         学习感受:

结对编程《四则运算》

1.结对编程题目是:面向小学生,随机生成30个100以内的四则运算,并且用户可以录入结果,检查用户录入的结果是否是正确的. 2.结对编程对象:晏蜀杰,博客地址:http://www.cnblogs.com/ysjwj320/ 3双方贡献度: 1:2 4.结对编程照片: 5.源程序代码: MyExpression.java package com.yanshujie.calculator; import java.util.Map; public interface MyExpression {

软件工程项目之二:结对编程——四则运算生成计算程序

0x01 :简介 本次的编程任务是完成一个具有UI界面的,具备四则运算生成.计算.判断对错功能的程序.本次程序使用C#语言编写,用时为2周. 0x02 :软件工程和PSP表格记录 PSP 2.1 Persinal Software Process Stages Time(Estimated) Time(Real) Planning 计划     Estimate 估计这个任务需要多少时间 24h 36h Development 开发     Analysis 需求分析(包括学习新技术) 8~10