• 20194731 自动生成四则运算题第一版报告


    一、需求分析

      现在的小学生算数能力需要经常锻炼,但是出题成了家长们的一大难题,因为人工出题需要自己计算,但是利用程序出题可以很快速,准确的出题。

    二、功能设计

      1、基本功能

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

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

        (3)题目数量可定制

        (4)相关参数可控制

          是否包含乘法和除法

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

          操作数是否含负数

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

       2、拓展功能

        (1)可选择是否生成答案

    三、设计实现

      因为我用的是c语言编写的程序,没有用到类,我也没有写函数。

    四、测试运行

     五、代码片段

      1、判断算式是否重复,若重复便跳过次算式

    1 for(j=0;j<i;j++)
    2  if(b1[i][0]==b1[j][0]&&b1[i][1]==b1[j][1]&&b1[i][2]==b1[j][2]){
    3    flag=1;
    4       break;
    5   }
    6 if(flag==1||(e==2&&c==0)){
    7       i--;
    8       continue;
    9 }

       2、是否生成带答案的算式

    1 if(t4==1)
    2   fprintf(fp,"%5.0f%5.c%5.0f =%5.0f
    ", a,b[e],c,sum);
    3 else
    4   fprintf(fp,"%5.0f%5.c%5.0f =
    ", a,b[e],c);

    六、总结

      改进思路:可把每段关键算法写成单独的函数,这样每次进行修改时可直接修改函数部分不需要到程序中进行修改,把可变的参数全部用变量代替,这样可实现更多功能,使程序更加人性化。

    七、PSP

    PSP2.1

    任务内容

    计划共完成需要的时间(min)

    实际完成需要的时间(min)

    Planning

    计划

    60

    120

    ·       Estimate

    ·  估计这个任务需要多少时间,并规划大致工作步骤

    60

    120

    Development

    开发

    30

    60

    ··       Analysis

      需求分析 (包括学习新技术)

    3

    5

    ·       Design Spec

    ·  生成设计文档

    2

    5

    ·       Design Review

    ·  设计复审 (和同事审核设计文档)

    2

    5

    ·       Coding Standard

      代码规范 (为目前的开发制定合适的规范)

    1

    1

    ·       Design

      具体设计

    5

    5

    ·       Coding

      具体编码

    20

    15

    ·       Code Review

    ·  代码复审

    5

    20

    ·       Test

    ·  测试(自我测试,修改代码,提交修改)

    1

    4

    Reporting

    报告

    30

    60

    ··       Test Report

    ·  测试报告

    10

    20

    ·       Size Measurement

      计算工作量

    10

    20

    ·       Postmortem & Process Improvement Plan

    ·  事后总结 ,并提出过程改进计划

    10

    20


     

  • 相关阅读:
    我的第一篇博客
    1.2 位于Shell脚本第一行的#!
    1.1 一个简单的脚本
    JDK与CGlib动态代理的实现
    解决Sublime Text3中文显示乱码问题
    多线程讲解
    (转)Spring中@Async用法总结
    (转)spring boot注解 --@EnableAsync 异步调用
    Spring Boot中的注解
    (转)如何用Maven创建web项目(具体步骤)
  • 原文地址:https://www.cnblogs.com/wy1025816034/p/11479429.html
Copyright © 2020-2023  润新知