个人项目(四则运算程序)总结

一. 基本要求

将10-20道四则运算题目写入文档,程序读取并输出题目,同时计算出正确结果。使用者对每道题目计算答案,答对进行提示,答错输出正确结果。分别记录回答正确、错误的数目并输出。

四则运算题目基本要求:
1.加减乘除四种运算全部出现

3.算式中要出现括号
2.出现真分数和假分数的运算
4.最少出现一个长度为10的四则运算(10个数字的混合运算)

二.算式处理流程

传统的四则运算表达式(加、减、乘、除、括号)计算的算法分为两个步骤:1.将中缀表达式转为后缀表达式 2.进行后缀表达式的求值。其中中缀转后缀的操作需要一个线性数据结构“栈”的支持。

由于大二下“数据结构”课程中布置过表达式求值的任务,这次个人项目的完成可以在其基础上修改完成。在那时完成作业时,我并没有将输入的中缀表达式转化为后缀表达式,而是用两个栈分别存储操作数和运算符,并且比较当前运算符的优先级与运算符栈顶符号的优先级,然后进行相应的操作(严蔚敏版《数据结构》)。

考虑到需要完成真分数和假分数的运算,我定义了一个分数类(fraction),属性包括分子和分母两个整型数。操作数栈即为一个数据类型为分数类的栈。

图1-表达式计算处理基本流程图

三. 程序整体流程

图2-程序整体流程图

四.困难与挑战

由于进行运算操作的数据类型都是分数类,在修改完代码后发现括号和‘/’并不能总是很协调地在一起出现。在添加若干个条件判断后,这类问题得以解决。如果采用常规的中缀转后缀、后缀求值的方法进行计算的话,也许就不会产生这类的问题。

五.反思

由于时间限制,这次个人项目并没有实现表达式自动生成和图形界面的功能。希望在以后的项目中能够多动手、多尝试,敢于实现新的功能,在基本功能上有所突破和创新。

时间: 03-19

个人项目(四则运算程序)总结的相关文章

四则运算程序(java基于控制台)

一.题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r 参数控制题目中数值(自然数.真分数和真分数分母)的范围,例如 Myapp.exe -r 10 将生成10以内(不包括10)的四则运算题目.该参数可以设置为1或其他自然数.该参数必须给定,否则程序报错并给出帮助信息. 3. 生成的题目中如果存在形如e1 ÷ e2的子表达式,那么其结果应是真分数. 4. 每道题目中出现的运算符个数不超过

软件工程课后作业一之30道随机四则运算程序2

一.设计30道随机四则运算程序要求: 1.题目避免重复: 2.可定制(数量/打印方式): 3.可以控制下列参数: 是否有乘除法.是否有括号. 数值范围.加减有无负数.除法有无余数.否支持分数 (真分数, 假分数, …).是否支持小数 (精确到多少位).打印中每行的间隔可调整: 二.设计思路:1.题目避免重复我用3个数组将第一个数,第二个数和运算符(已用数字0-3表示加减乘除)存起来,之后用for循环将新产生的数组单元与以前产生的数组单元一一比较,有重复则将当前参数自减一重新产生新数组单元如此反复

四则运算程序代码

                                3月17日 看教材资料查找怎么产生1-100的随机数                            3月18日 将四则运算程序写出来之后,搞不懂怎么调用函数                            3月19日 怎么设置有无乘除法知道了,却没弄懂怎么衔接,怎么在设置之后建立循环语句让这30道题目能够符合要求有要求,只能先写出上次的作业充数了.                        #include<ios

四则运算程序的测试与封装

程序原型:之前的小学生四则运算程序 编程语言:java 测试代码如下: 1 package SuanFa; 2 3 import static org.junit.Assert.*; 4 5 import org.junit.Test; 6 7 public class CoreTest { 8 9 @Test 10 public void testJia() { 11 Core core = new Core(); 12 double a = core.jia(9, -3); 13 Syste

四则运算程序演变--测试

对此次的四则预算程序演变进行的测试,所有的测试项目目的及结果如下: 1.数值100范围内出10道题的加减乘除随机出题,减法允许负数,除法允许余数 2.数值100范围内出10道题的加减乘除随机出题,减法允许负数,除法不允许余数 3.数值100范围内出10道题的加减乘除随机出题,减法不允许负数,除法允许余数 4.数值100范围内出10道题的加减乘除随机出题,减法不允许负数,除法不允许余数(不允许的字符随机) 测试出现错误,程序中的“其他字符” 只能是数字. 5.测试出20道题 6.测试数值范围 测试

小学生四则运算程序的简单测试与封装

程序原型:之前写的小学生四运算程序 实验环境:java语言 封装代码如下: 1 package SuanFa; 2 3 public class Core { 4 public double jia(double a,double b) 5 { 6 double c=a+b; 7 return c; 8 } 9 public double jian(double a,double b) 10 { 11 double c=a-b; 12 return c; 13 } 14 public doubl

基于Java实现的四则运算程序

一 . 项目介绍 项目成员:黄梓垲  蔡海杰 项目仓库:github 二. PSP表格 三. 项目功能 由界面输入参数,实现了题目的生成以及去重,问题与答案的文件保存,用户输入答案文件与标准答案的校对以及结果文件生成 运行示例(Answerfile.txt为用户提交文件): 四. 项目分析与代码设计 1. 由于题目设计真分数运算,所以采用分数作为基本的运算单位.使用ExpressionResult类保存每条表达式以及它的运算结果 public class Fraction { //分子 priv

c实现的四则运算程序

github项目地址:https://github.com/xinxianquan/ruangong 成员:马朝滨,王志聪. 题目:实现一个自动生成小学四则运算题目的命令行程序. 需求: 1. 使用 -n 参数控制生成题目的个数 例如,Myapp.exe -n 10, 将生成10个题目. 2. 使用 -r 参数控制题目中数值(自然数.真分数和真分数分母)的范围 例如,Myapp.exe -r 10,将生成10以内(不包括10)的四则运算题目.该参数可以设置为1或其他自然数.该参数必须给定,否则程

四则运算程序

public static void main(String[] args) { String[] operate=new String[]{"+","-","×","÷"}; int[] numbers=new int[1000]; for(int i=1;i<=1000;i++){ numbers[i-1]=i; } Random r=new Random(); for(int i=0;i<300;i++){