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

mac2022-06-30  27

需求分析:

    设计一个能够自动生成小学生四则运算试题的程序。使用C语言或者Java语言(这里使用的是C语言,编译器为vc++ 6.0)

 

 

设计功能:

基本功能

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

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

题目数量可定制

相关参数可控制,是否包含乘法和除法,操作数数值范围可控(如操作数 在100以内   还是1000以内),操作数是否含负数    

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

 

扩展功能

两个随机数相乘,结果大于100的容错

两个随机数相减,结果为负数的容错

 

 

设计实现:

C语言没有类的概念。函数为C语言自带的头文件函数<stdlin.h>,<stdio.h>

 

 

测试运行:

因为使用了freopen("D:\\result.txt", "w", stdout);代码,所以产生的结果不会在c的命令行中出现,结果直接保存到了D盘的result.txt文档中,result.txt中所得的四则运算不一定为10条,因为随机数相减为负数的四则运算并未打印,下图代码为红色的部分并未运行,只是做了容错,去掉注释之后可以运行。

 

case 1: result=first_num-second_num; //小学没有正负数的概念,如果产生正负数则跳过此题 if(result<0) { //如果出现负数,重新生成新的随机数字,直到结果出现正数为止,增加了时间复杂度 /*while(1) { if(result<0) { first_num=rand()P; second_num=rand()P; result=first_num-second_num; } else if(result>=0) { printf("%d-%d=%d\n",first_num,second_num,result); break; } }*/ continue; } else printf("%d-%d=%d\n",first_num,second_num,result); break;

 

 

 

 

 

 

 

 

代码展示:

 

//小学没有正负数的概念,如果产生正负数则跳过此题 if(result<0) { //如果出现负数,重新生成新的随机数字,直到结果出现正数为止,增加了时间复杂度 /*while(1) { if(result<0) { first_num=rand()P; second_num=rand()P; result=first_num-second_num; } else if(result>=0) { printf("%d-%d=%d\n",first_num,second_num,result); break; } }*/ continue; }

 

//对结果超过100的进行容错,当两个随机数相乘大于100,重新生成新的随机数 if(result>100) { first_num=rand()%10; second_num=rand()%10; result=first_num*second_num; }

 

 

 

 

总结:

在进行设计时,先对需要设计的程序进行了分部设计。如先设计代码的主体功能:实现程序的四则运算,当主体功能能够进行实现,在进行程序的容错处理,例如结果在100以内的容错,小学不存在负数概念的容错等等,最后进行代码测试。

 

 

 

Psp:

 

任务内容

计划功完成需要时间(min)

时间完成需要时间(min)

估计任务所需时间以及大致步骤

10

8

开发

150

160

需求分析

3

4

生成设计文档

20

40

代码规范

6

5

具体设计

20

10

具体编码

120

180

测试

30

50

测试报告

20

30

计算工作量

2

2

事后总结

20

60

 

 

转载于:https://www.cnblogs.com/-123/p/11527721.html

最新回复(0)