20194651—自动生成四则运算题第一版报告chris

  1.需求分析:

(1)自动生成四则运算算式(+ - *  /),或两则运算(+  -)。

 

(2)剔除重复算式。

 

(3)题目数量可定制。

 

(4)相关参数可控制。 

 

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

  2.功能设计:

  • 基本功能:随机生成算式,可控制题目数量及相关参数。筛选重复的算式并剔除。
  • 拓展功能:当操作数生成负数是会产生小括号。

  3.设计实现:


  共设计了4个函数:Ctrl_2or4:用来控制四则运算还是2则运算。

          Rand_Get:生成随机数,是否包含负数可控。

          Data_Filtering:数据过滤,剔除重复算式。

          My_print:控制输出。

  4.测试运行:

 

1.生成四则运算,包含负数,操作数100以内,10道题:

 

 

 

 

 

2.生成两则运算,不包含负数,操作数50以内,15道题:

 

 

 

3.生成四则运算,包含负数,操作数范围1000以内,7道题:

 

 

 

  5.代码片段:

  • 生成随机数,控制操作数是否带负数:
 1 void Rand_Get(int c , int Maxl)
 2 {
 3     if( c == 1)
 4     {
 5         Num_a = rand()%(2*Maxl+1)-Maxl;
 6         Num_b = rand()%(2*Maxl+1)-Maxl;
 7     }
 8     else if( c == 2)
 9     {
10         Num_a = rand()%Maxl;
11         Num_b = rand()%Maxl;
12     }
13     else
14     {
15         printf("输入有误!");
16     } 
17 }
  • 数据筛选,剔除重复算式:
 1 int Data_Filtering(int flag )
 2 {
 3     int j,f3_flag,equ[Maxsize][3];
 4 
 5     f3_flag = 1;    
 6     equ[i][0]=Num_a;
 7     equ[i][1]=flag;
 8     equ[i][2]=Num_b;
 9     for(j=i-1;j>=0;j--)
10     {
11         if(equ[i][0] == equ[j][0])
12         {
13             if(equ[i][1] == equ[j][1])
14             {
15                 if(equ[i][2] == equ[j][2])
16                 {
17                     i--;
18                     f3_flag = 0;                    
19                 }
20             }
21         }
22     }
23     i++;
24     return f3_flag ;    
25 }
  • 控制是两则运算(+  -)还是四则运算(+  -  *  /):
 1 int Ctrl_2or4(int b)
 2 {
 3 
 4     int f2_c;
 5     if(b == 2)
 6     {
 7         f2_c = rand()%2;
 8     }
 9     else if(b == 4)
10     {
11         f2_c = rand()%4;
12     }
13     else
14     {
15         printf("输入有误!"); 
16     }
17     return f2_c;
18 } 

 

 

   6.总结(如何实现程序“模块化”原则):

  利用函数,分层次分模块进行代码编写,将每个功能用函数描述出来,而不是全部都写在主函数里。

 

  7.PSP:

 

PSP2.1

任务内容

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

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

Planning

计划

15

20

·       Estimate

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

15

20

Development

开发

410

520

··       Analysis

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

10

20

·       Design Spec

·  生成设计文档

0

0

·       Design Review

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

0

0

·       Coding Standard

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

5

5

·       Design

  具体设计

15

20

·       Coding

  具体编码

360

450

·       Code Review

·  代码复审

10

10

·       Test

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

10

15

Reporting

报告

30

45

··       Test Report

·  测试报告

20

25

·       Size Measurement

  计算工作量

0

0

·       Postmortem & Process Improvement Plan

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

10

20

 

 

 

posted @ 2019-09-15 21:39  chris丶w  阅读(175)  评论(2编辑  收藏  举报