一.需求分析
自动生成100以内的2个操作数的四则运算算式,为老师和家长节省出题时间,也减少错误的出现
二. 功能设计
(1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
(2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式
(3)题目数量可定制
(4)相关参数可控制
是否包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
(5)生成的运算题存储到外部文件result.txt中
三. 设计实现
使用C语言设计程序
在程序中使用了rand函数
运用了while,switch,if等语句
四. 测试运行
五.代码片段
定义输入输出函数
#include <stdio.h> #include <time.h> #include <stdlib.h> void main() { int a,b,c,i; int d,store=0; int number,n,num2; srand((unsigned)time(NULL));//生成随机数 printf("输入生成题目的数量\n"); scanf("%d",&number);//输入生成题目数量 printf("0 代表加减乘除随机生成\n"); scanf("%d",&n);//输入生成代码 num2=number;
算法设计
while(number>=1) { switch(n)//各种算法 { case 0: number--;break;//退出循环 case 1: a= rand()%100; //随机生成100以内的随机数 b= rand()%100; c=a+b;//加法运算 if(c<1000) number--;//次数 else break; printf("%d+%d=%d\n",a,b,c);//输出结果 num2=0; break;//退出循环 case 2: a= rand()%100; b= rand()%100; c=a-b;//减法运算 if(c<1000) number--; else break; printf("%d-%d=%d\n",a,b,c); num2=0; break; case 3:a= rand()%100; b= rand()%100; c=a*b;//乘法运算 if(c<1000) number--; else break; printf("%d*%d=%d\n",a,b,c); num2=0; break; case 4: a= rand()%100; b= rand()%100; c=a/b;//除法运算 if(c<1000) number--; else break; printf("%d/%d=%d\n",a,b,c); num2=0; break; } } if(num2>=1)//检查上面的算法满足则进行 { while(1)//死循环 { d=rand()%100; d=d/10;//生成随机数 if(d>=0&&d<=3)//产生随机选择四个运算 { switch(d)
六. 总结:
对编写程序还是不够熟悉,编写中出现很多问题,希望在今后的学习中能够做到更好。
七.PSP撰写
PSP2.1 | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
Planning | 计划 | 40 | 60 |
Estimate | 估计这个任务需要多少时间, 并规划大致工作步骤 |
40 | 60 |
Development | 开发 | 30 | 40 |
Analysis | 需求分析 (包括学习新技术) | 3 | 3 |
Design Spec | 生成设计文档 | 8 | 10 |
Design Review | 设计复审 (和同事审核设计文档) | 6 | 8 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 5 | 6 |
Design | 具体设计 | 10 | 13 |
Coding | 具体编码 | 20 | 30 |
Code Review | 代码复审 | 8 | 8 |
Test | 测试(自我测试,修改代码,提交修改 | 4 | 5 |
Reporting | 报告 | 10 | 11 |
Test Report | 测试报告 | 2 | 3 |
Size Measurement | 计算工作量 | 6 | 7 |
Postmortem & Process Improvement Plan | 事后总结 ,并提出过程改进计划 | 5 | 5 |