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

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

 1.需求分析

  该程序的存在利用程序随机生成四则运算,目的是增加出题人的效率,简化出题流程。

2. 功能设计

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

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

  (3)题目数量可定制

  (4)相关参数可控制

  (5)是否包含乘法和除法

  (6)新增了可以控制计算结果的功能

  (7)新增了可判断运算结果是否存在负数的功能 

3.设计实现

  我使用了多层的FOR语句进行嵌套来实现判断,误操作处理以及输出题目;IF语句进行对各项要求的判断,判断是否存在负数,结果是否超过预期值,以及生成题目是否符合要求。

4. 测试运行

5. 代码片段

  下面展示的是程序可控制的参数:1、共有多少道题目。2、运算结果不超过多少。3、有无乘除法。4、运算结果是否为负数。

 printf("输入题目总数----");
 scanf("%d",&x);
 printf("输入结果不超过多少----");
 scanf("%d",&result);
 for(;y!=1&&y!=2;)
 {
  
 printf("有无乘除,有则输入1否则输入2----");
 scanf("%d",&y);
 
 }
 for(;fushu!=1&&fushu!=2;)
 {
  
 printf("计算结果有无负数,有则输入1否则输入2----");
 scanf("%d",&fushu);
 
 }

  下面是判断是否存在重复算式以及除法的分母是否为0,以及是否超出规定范围。

        case 2://生成除法算式 
        {
            
            for(q=0;q<p;q++)//判断是否有重复算式 
            {
                if(A[q]==a&&B[q]==b)
                break;
            
            }
            if(q==p&&b!=0)//成立则代表数组中并未出现重复算式 ,并且分母不为0 
            {
            E[p]=a;
            F[p]=b;
            p++;
            if(fushu==1)//判断是否允许运算结果为负 
            {
                
            if(a/b<result)//判断算式结果是否超出规定范围 
            printf("%d/%d=\n",a,b,i++);

            }
            if(fushu==2)
            {
                
            if(a/b<result&&a/b>=0)
            printf("%d/%d=\n",a,b,i++);

            }
            }
            break;
        
        }

下面是控制生成随机数字组成题目

        a=rand()%100;//随机生成数字 
        b=rand()%100;

        if(y==1)//控制是否带有乘除法 
        mode=rand()%4;
        else
        mode=rand()%2;

6.总结如何使代码模块化

  任何程序都可由顺序、选择、循环三种基本控制结构构造。结构化程序设计主要强调的是程序的易读性。

  1、使用语言中的顺序、选择,有限的基本控制结构表示程序逻辑。

  2、选用结构中只准许有一个入口和一个出口。

  3、程序语句只有一个入口和一个出口。

  4、复杂结构应该用基本控制结构进行组合嵌套来实现。

  5、语言中没有的控制结构,可用一段等价的程序段实现,但要求该段程序在整个系统中应前后一致。

7.PSP

PSP2.1

任务内容

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

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

Planning

计划

10

10

·       Estimate

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

10

10

Development

开发

90

150

··       Analysis

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

5

5

·       Design Spec

·  生成设计文档

5

5

·       Design Review

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

5

5

·       Coding Standard

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

5

5

·       Design

  具体设计

10

10

·       Coding

  具体编码

30

20

·       Code Review

·  代码复审

10

10

·       Test

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

20

90

Reporting

报告

40

40

··       Test Report

·  测试报告

10

20

·       Size Measurement

  计算工作量

20

10

·       Postmortem & Process Improvement Plan

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

10

10