zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    php 创建多级文件夹
    php 格式化文件大小
    php 微信授权登录
    获取单据编号 不重复 骚
    js获取数组中的最后一个
    php截取
    循序栈
    链表
    顺序表
    halcon学习之阈值算子threshold operators
  • 原文地址:https://www.cnblogs.com/xushaohua/p/11506232.html
Copyright © 2011-2022 走看看