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
  • 相关阅读:
    call()与apply()的作用与区别
    Tomcat8/9的catalina.out中文乱码问题解决
    怎样查看Jenkins的版本
    每日日报2020.8.18
    528. Random Pick with Weight
    875. Koko Eating Bananas
    721. Accounts Merge
    515. Find Largest Value in Each Tree Row
    286. Walls and Gates (Solution 1)
    408. Valid Word Abbreviation
  • 原文地址:https://www.cnblogs.com/zhangkangzh/p/8604910.html
Copyright © 2011-2022 走看看