简单的四则运算

 

Github地址:https://github.com/zhangkangzh/Arithmetic

 

1.需求分许

   (1)程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 20 之间,运算符在2个到4个之间。

   (2)为了让小学生得到充分锻炼,每个练习题至少要包含2种运算符。同时,由于小学生没有分数与负数的概念,你所出的练习题在运算过程中不得出现负数与非整数,比如不能出          3/5+2=2.6,2-5+10=7等算式。

   (3)练习题生成好后,将你的学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中,不要输出额外信息,文件目录与程序目录一致。

   (4)当程序接收的参数为4时,以下为输出文件示例。

         

2.功能分析

  (1)程序接收一个输入参数n,产生n个算数表达式。

   (2)使用math函数中的random方法产生运算符(1,2,3,4代表+,-,*,/)和运算数。

    (3) 将运算符和运算数组成算数表达式。

   (4)将表达式存入到文件“result.txt”中。

3.设计实现

   (1)接收一个参数n。

   (2)产生运算符和运算数。

   (3)将表达式中优先级高的降阶(乘法和除法变成加法)。

   (4)计算算式结果并保存。

4.测试运行

5.核心代码

 if(fu[j]==3)
                {

                    shu[j+1]=shu[j]*shu[j+1];

                    shu[j]=1;
                    tema++;
                    if(j>=1&&fu[j-1]==2)
                    {
                        fu[j]=2;
                    }
                    continue;
                }
                if(fu[j]==4)
                {
                    shu[j+1]=shu[j]/shu[j+1];
                    shu[j]=1;
                    if(shu[j+1]!=0)
                    {
                        tema++;
                        shu[j]=1;
                    }
                    else
                    {
                        shu[j]=0;
                    }
                    if(j>=1&&fu[j-1]==2)
                    {
                        fu[j]=2;
                    }
                    continue;
                }
 for(;j<=n;j++)
            {
                if(j>=1)
                {
                    if(fu[j-1]==2)
                    {
                        sum = sum-shu[j];
                        if(sum<0)
                        {

                            tt=1;
                            break;
                        }
                    }
                    else
                    {
                        sum=sum+shu[j];

                    }
                }
               else
                {
                    sum=sum+shu[j];
                }

6.总结

       这个项目中,主要使用了random函数产生运算符和随机数。同时使用了降阶的方式,使整个表达式变成一个同阶表达式。这样就可以使用数组直接进行计算,在小数处理时使用了整除处理,但却造成除法表达式的式子偏少。

7.展示PSP

 

PSP任务内容计划完成需要的时间(min)实际完成需要的时间(min)
  计划 15 20
Estimate 需求分析,函数实现 20 30
  开发 30 30
Analysis 需求分析 5 10
Design Spec 设计 10 15
Design Review 设计复审 12 20
Design 具体设计 16 25
Coding 具体编码 30 40
Code Review 代码复审,查找语法错误 2 2
Test 测试 5 5
  报告 10 20
Test Report 测试,程序编译正确,运行结果正确 2 2
Size Measurement 计算工作量 3 3
Postmortem

小数处理时使用了整除处理,但却造成除法表达式的式子偏少

2 2
posted @ 2018-03-20 21:36  坎坷的一生  阅读(291)  评论(1编辑  收藏  举报