作业1--四则运算

 

 

需求分析

 1、控制运算表达式题目数量,控制题目的格式

 2、题目中存在分数形式要进行约分,达到最简真分数

 3、运算符个数不能超过3个

 4、程序支持生成10000道题目

 5、程序同时支持计算生成的每道题目,并对结果进行约分,达到最简真分数

 6、对用户所做答案进行判断,并且输出正确答案或错误答案

 7、对生成的题目进行重复数量统计

 

功能设计

  1、随机生成运算表达式

  2、重复题目查询

  3、四则运算计算功能

  4、对运算表达式中数值和对计算结果进行约分

  5、将题目和答案分别写入文件

设计实现

 1、先随机生成二元运算,两个随机数和一个运算符,在二元运算的基础上生成三元运算(将其中一个数拆分成二元运算,在需要的地方加上括号,因此不会出现无意义的括号运算符)

 2、表达式中存在除法除数不能为0,分数分母生成时也不能为0,出现这种情况应该重新生成

 3、四则运算表达式计算,分为二元运算和三元运算,三元运算在二元的基础上进行,分别计算不同的情况(后悔没有使用逆波兰式计算,写的手都酸了)

 4、将所有的数值都转为分数形式,计算时放入数组容器,第一个元素放分数前的整数,第二个元素放分子,第三个元素放分母
5、重复题目判断,根据不同运算符的顺序,将算式化归为统一形式,放入容器,先比较运算符是否相同,相同之后比较运算数是否相同,相同则重复

代码说明

测试运行

 

 

 psp记录表

 

 

心得

这个项目刚刚开始就有一点思路,以为挺简单的,于是马上就开始动手写了,写着写着发现自己深陷泥潭。本来以为最多三个数的运算,这么少,灵机
一动,把二元的拆掉一个不就变成三元的了嘛,就没打算使用逆波兰进行计算,后来发现不论是在计算方面还是查重方面都出现了许多难题,令头疼不
已,因为实在是要分太多种情况了,我化归了几种之后或许还有几种没有考虑到,就这样带代码越来越多,从几百行到一千多行,调试越来越困难,到
现在还是有一些bug没有解决,但是写的好累啊,时间也到了,还是交了吧,教训啊教训啊。以后要做项目一点要先做好分析,把可能遇到的情况都列
举出来,然后选择最佳的方案解决问题。磨刀不误砍柴工啊。做这次项目收获很大,比如对数据的处理有很多种情况,可以把数据转换成统一的一种格
式,简化处理。

代码附上

 https://coding.net/u/int__Sherlock/p/simple_calculate/git/tree/master/

 

posted on 2017-09-17 15:17  Sherlock.K  阅读(263)  评论(2编辑  收藏  举报

导航