码迷,mamicode.com
首页 > 其他好文 > 详细

软件工程个人作业04

时间:2016-04-15 18:21:50      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

 

【设计思路】

   定义了4个数组,分别是bracket[4]numberzi[4]numberm[4]sign[4]Bracket用于存储括号,2代表左双,1代表错括号,-1代表右括号,-2代表右双,0没有括号,初始为0numberzi用于存储分子,numbermu存储分母,sign存储符号。定义整型sui,用于限制式子的长度,随机生成,取值2-4.。定义整型type,取值范围0-1,1代表分数运算。对于每个式子都随机生成的式子长度suifor循环sui,生成numberzi[i]numbermu[i](当为整数时,取1)、sign[i](从i>0开始随机取值,范围0-1,生成符号时,判断是否需要乘除,是,再将取值范围扩大到0-3)。生成分数时,分母的取值范围为numberzi-high(最大值)。当循环次数大于一时,判断符号和运算符前后两个数的大小,看是否需要交换二者的位置(满足减法无负数,除法正分数)。

约分:当为分数时(numbermu==1),将分子赋值给整形变量ccfor循环cc--,直到分子与分母都能整除cc,运算除法,然后break

加括号:这部分用的是死方法,将所有的情况都考虑到。当运算输有四个数时,此时分三种情况,1.双括号:双括号有四种位置,第一个数前,bracket0=2,【1=-1,【2=-1。第二个数前,第三个数后,第四个数后。2.单括号:前两个数,前三个数,后两个数,中间两个数,后面三个数,前俩个数和后两个数。3.没有括号。当运算数为三个数时,此时只有两种情况:1.只有一个括号,前两个数,后两个数2.没有括号。当运算数为2时,没有括号。

式子输出:for循环sui,当i=0时,不输出sign;判断type的值,确定式子的格式,整数只输出numberzi,分数全部输出。

计算:首先判断括号的情况,单双((a b) (c  d)算但括号)。双括号分左双和右双,左双:从双括号开始,寻找下一个右括号,计算括号中的运算(先乘除,后加减),然后将结果存储在前一个数的位置,依次将后面的数向前移动(bracketsignnumberzinumbermu全移),然后再次计算,直至计算完括号中运算,然后寻找下一个后括号,一样运算直指没有右括号;右括号类似。单括号:计算括号中的运算,将后面的数前移,直至没有右括号。每进行一次运算,将sui--。没有括号:for循环sui,直接运算(先乘除,后加减)。数组前移。(注:单括号与双括号为同一层次,二者最后都会进行没有括号的运算)

结果输出:化简numberzi0】与numbermu0】,判断如果numbermu0=1,则结果为整数,输出numberzi0】否则输出numberzi0】与numbermu0】。

结果验证:将结果转化成字符串的格式(已化简),用户输入的结果保存在一个字符串中,比较二者。

【时间记录表】

日期 开始时间 结束时间 总计 活动 备注
2016.3.28 8.00 10.00 100 上课  
2016.3.29 15.20 18.00 150 看书讨论 先写出来,在写成网页版
2016.3.30 15.00 17.00 120 设计程序  
2016.3.31 15.30 17.40 130 编程 Java
2016.4.4 19.00 21.00 120 编程 Java
2016.4.5 19.00 21.30 150 编程 Java
2016.4.6 15.00 21.00 240 编程,找错 吃饭
2016.4.7 15.30 21.00 200 找错 吃饭
2016.4.9 15.00 21.00 200 改错 吃饭
2016.4.10 15.00 19.00 200 将程序写成网页版 jsp
2016.4.11 8.00 10.00 100 上课  
2016.4.12 15.00 21.00 240 继续将程序改成网页版  

 

软件工程个人作业04

标签:

原文地址:http://www.cnblogs.com/cchjl/p/5396127.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!