zoukankan      html  css  js  c++  java
  • 简单的四则运算

    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
  • 相关阅读:
    Maganto错误Cannot initialize the indexer process的解决方法
    保护单元格内容
    欧几里得算法
    SVN服务端命令行的使用心得
    C++常用数值类型的值范围的宏定义
    代码之谜(三) 运算符
    《越狱》观后感
    R 报错的问题
    代码之谜(二) 语句与表达式
    你为什么薪水那么低(二)之 生产力
  • 原文地址:https://www.cnblogs.com/zhangkangzh/p/8604910.html
Copyright © 2011-2022 走看看