一、需求分析
家长每天给孩子出十道算数题,给孩子做测试,为了出题方便,该程序实现了随机生成题目的功能。
二、功能实现
2.1基本功能
(1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
(2)剔除重复样式
(3)题目数量可定制
(4)相关参数可控制
是否包含乘法和除法
操作数数值范围可控
操作数是否含负数
(5)生成的运算题存储到外部文件result.txt中
2.2扩展功能
(1)可显示用户答对题目的数量
三、设计实现
我是用c编写的程序,程序中写入一个主函数,在主函数中完成了让题目储存在F盘下 result.txt 文件中 、控制操作范围 、控制题目数量、是否含负数、题目正确数量的累加功能。写入了一个remove函数,实现剔除重复样式功能。
四、测试运行
1.生成五道含负数题,操作数在200 以内,存在result.txt文件中,并显示答题正确数量
2.生成十道不含负数题,操作数在100 以内,存在result.txt文件中,并显示答题正确数量
五、代码
1.答对正确题目累加
if(c == answer) //判断答案是否正确
{
score+= 1; //答对题目累加和
}
2.运算符做标记
int mode = 0; //运算符;0代表加 ,1代表减 ,2代表乘, 3代表除 mode = rand() % 4;
3.确定运算符
switch(mode) //确定运算符
{
case 0:
printf("+");
answer= x+y;
fprintf(fp,"%d / %d=%d\n",x,y,answer); break;
case 1:
printf("- ");
answer= x-y ;
fprintf(fp,"%d - %d=%d\n",x,y,answer); break;
case 2:
printf("* ");
answer= x*y;
fprintf(fp,"%d / %d=%d\n",x,y,answer); break;
case 3:
printf("/ ");
answer= x/y;
fprintf(fp,"%d / %d=%d\n",x,y,answer); break;
default:
printf("有错误!\n"); break;
}
六、总结
定义两个变量x,y作为随机操作数;
answer 是用户输入运算结果;
定义了一个score 变量用于正确题目累加;
定义了变量range 可以让客户控制操作范围;
定义一个mode 变量用于运算符标志;
用switch case选择语句确定运算符,输出算式;
七、psp
PSP7.1 | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 10 | 10 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 5 | 5 |
Development | 开发 | 120 | 150 |
Analysis | 需求分析 | 10 | 8 |
Design Spec | 生成设计文档 | 5 | 5 |
Coding Standard | 代码规范 | 5 | 5 |
Design | 具体设计 | 20 | 25 |
Coding | 具体编码 | 90 | 100 |
Test | 测试(测试,修改代码) | 10 | 15 |
Size Measurement | 计算工作量 | 3 | 3 |
Postmortem & Process Improvement Plan | 总结 | 5 | 5 |