一、需求分析
为节省父母出题的时间,加强孩子的计算能力,需要设计出可以随机生成算式的程序
二、功能设计
基本功能
(1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
(2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式
(3)题目数量可定制
(4)相关参数可控制
是否包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
(5)生成的运算题存储到外部文件result.txt中
扩展功能
可以同时生成答案。
三、设计实现
我选择用c语言作为编码语言,shengcheng函数用来随机生成数,随机数生成需要用到rand()函数,需要引进头文件#include <stdlib.h>、#include <time.h>。用一个函数来确定题目的个数,这个number函数确定题目的个数,数目由用户输入确定。用descide函数确定符号并算出运算结果。用exclude函数提出重复算式。用printf11函数将生成的运算题存储到外部文件result.txt中。
四、测试运行
五、代码显示
1.随机数生成函数
1 int shengcheng() 2 { 3 int a[100];//用于保存随机数 4 for (int i=0;i<10;i++) 5 { 6 a[i] = rand()%100+1;//产生1~100的随机数 7 } 8 }
2.判断符号
1 int deside() 2 { 3 int j=rand()%10+1; 4 int a,b,result; 5 float c,d,result1; 6 switch(j)//选择符号 7 { 8 case 1: 9 result =a+b; 10 printf("%d+%d=%d",a,b,result); 11 break; 12 case 2: 13 result =a-b; 14 printf("%d-%d=%d",a,b,result); 15 break; 16 case 3: 17 c=a; 18 d=b; 19 result1=c/d; 20 printf("%d/%d=%.1f",a,b,result1); 21 break; 22 default: 23 result=a*b; 24 printf("%d*%d=%d",a,b,result); 25 break; 26 } 27 }
3.导出
1 FILE*fp; 2 fp=fopen("result.txt","w+");//创建文件; 3 fprintf(fp,"%5d %c %d =\n",a,c,b);
六、总结
将需要实现的功能分成好几个模块,每一个模块实现相应功能,在主函数中调用相应功能。
七、PSP
PSP | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 10 | 8 |
· Estimate | · 估计这个任务需要多少时间,并规划大致工作步骤 | 10 | 8 |
Development | 开发 | 65 | 67 |
·· Analysts | 需求分析(包括学习新技术) | 10 | 10 |
· Design Spec | · 生成设计文档 | 6 | 6 |
· Design Review | · 设计复审 (和同事审核设计文档) | 2 | 2 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 2 | 2 |
· Design | · 具体设计 | 5 | 6 |
· Coding | · 具体编码 | 35 | 36 |
· Code Review | · 代码复审 | 3 | 3 |
· Test | · 测试(自我测试,修改代码,提交修改) | 2 | 2 |
Reporting | 报告 | 10 | 11 |
·· Test Report | · · 测试报告 | 5 | 6 |
· Size Measurement | · 计算工作量 | 2 | 2 |
· Postmortem & Process Improvement Plan | · 事后总结 ,并提出过程改进计划 | 3 | 3 |
原文:https://www.cnblogs.com/www37/p/11519331.html