20194695+自动生成四则运算题第一版报告

1.需求分析

  1)自动生成10道100以内的2个操作数的四则运算算式(+ - *  /),要求运算结果也在100以内

    //使用随机函数产生随机数和运算符,使用if将结果控制在100以内

  2)剔除重复算式。  2 + 3 =    和  2 + 3 =     是重复算式      2 + 3 =   和   3 + 2 =  不属于重复算式

    //将随机产生的数存在在数组中,if判断是否重复

  3)题目数量可定制

    //用户输入题目数量,利用for循环给出相应的题目数量

  4)相关参数可控制

        是否包含乘法和除法

        操作数数值范围可控(如操作数 在100以内   还是1000以内)

         操作数是否含负数

    //用户选择    

   5)生成的运算题存储到外部文件result.txt中

    //利用fopen

2. 功能设计

  ★ 基本功能

    ✓ 题目数量可定制 用户可输入需要的题目数量

    ✓ 用户选择是否包含乘法和除法

    ✓ 用户选择操作数数值范围(如操作数 在100以内   还是1000以内)

    ✓ 用户选择是否包含负数

    ✓ 无重复题目

    ✓ 运算结果均在100以内

  ★ 扩展功能

    ✓ 用户最后选择是否查看答案

3. 设计实现

  使用C语言设计实现在main函数中完成程序 

4. 测试运行

  //基本功能运行截图

  

  //扩展功能及存储到外部文件txt运行截图

  

5.代码片段

  //判断随机数是否重复

        suiji[k]=num1;
        suiji2[k]=num2;         //将随机产生的数存放在数组里
        for(s=0;s<k;s++)        //判断随机数是否重复;
        {
            if(suiji[s]==suiji[k]&&suiji2[s]==suiji2[k])
            {
            flag++;
            break;
            }
        }
        if(flag==1)
        {
            k--;
            flag--;
            continue;      //如果两个随机数与之前重复则返回循环 重新产出随机数
        }    

  // 解决了除法答案不保留小数点后的问题  由于产生的随机数都是int型整数,所在在做除法时自动去除了小数点后面的数,在我们实际数学运算中是错误的

        if(num1/num2<100)               //运算结果在100以内
        {
        printf("%d/%d=
",num1,num2);
        fuhao[k]='/';            
        daan2[k]=(float)num1/num2;      //强制转换为float型运算
        k++;
        break;
        }    
***********************************************************        
//将除法答案单独输出
       for(m=0;m<k;m++)
        {   
            if(fuhao[m]=='/')               //如果是除法时保留小数点
             printf("%.2f	",daan2[m]);
            else
            printf("%d	",daan[m]);
    
        }

6. 总结

  1.通过需求分析逐步实现所需的功能。

  2.测试每个小功能是否正确。

  3.编写的代码不够优化,有很多不足,后续会继续改进。

7.PSP

  

PSP2.1 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 6 8
·       Estimate ·  估计这个任务需要多少时间,并规划大致工作步骤 6 8
Development 开发 315 428
·       Analysis ·  需求分析 (包括学习新技术) 20 30
·       Design Spec ·  生成设计文档 10 10
·       Design Review ·  设计复审 (和同事审核设计文档) 10 10
·       CodingStandard ·  代码规范 (为目前的开发制定合适的规范) 5 8
·       Design  · 具体设计 20 15
·       Coding  · 具体编码 200 300
·       Code Review ·  代码复审 20 20
·       Test ·  测试(自我测试,修改代码,提交修改) 30 35
Reporting 报告 35 30
·      Test Report ·  测试报告 20 15
·       Size Measurement ·  计算工作量 10 10
·       Postmortem & Process Improvement Plan ·  事后总结 ,并提出过程改进计划 5 5
原文地址:https://www.cnblogs.com/xushaohua/p/11506232.html