一、题目
请编写一个能自动生成小学四则运算题目的 “软件”。
让程序能接受用户输入答案,并判定对错。
最后给出总共 对/错 的数量。
二、需求分析
本程序适合小学生,锻炼自己的运算能力。练习的软件。
三、 基本需求
1、 显示题目数量
2、 逐个自动显示题目
3、 用户可以逐题解答
4、 显示答题对错
5、统计对错数量
四、代码实现
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void main()
{
int a,b,c,d;
int total1=0,total2=0;
while(true)
{
srand(time(NULL));
d=a=rand()%100;
b=(rand()%a+a)%100;
if(a%4==1&&a<b)
c=a,a=b,b=c;
if(b==0&&a%4==3)
b=rand()%10+1;
if(a%4==3&&a%b!=0)
{
srand(time(0));
a=b*(rand()%a);
}
switch(d%4)
{
case 0:
{
printf("%d + %d = ",a,b);
break;
}
case 1:
{
printf("%d - %d = ",a,b);
break;
}
case 2:
{
printf("%d × %d = ",a,b);
break;
}
case 3:
{
printf("%d ÷ %d = ",a,b);
break;
}
}
scanf("%d",&c);
switch(d%4)
{
case 0:
{
if(c==a+b)
{
printf("正确 ");
total1++;
}
else
{
printf("错误 ");total2++;
}
break;
}
case 1:
{
if(c==a-b)
{
printf("正确 ");
total1++;
}
else
{
printf("错误 ");
total2++;
}
break;
}
case 2:
{
if(c==a*b)
{
printf("正确 ");
total1++;
}
else
{
printf("错误 ");
total2++;
}
break;
}
case 3:
{
if(c==a/b)
{
printf("正确 ");
total1++;
}
else
{
printf("错误 ");
total2++;
}
break;
printf("按任意键继续,Q退出! ");
fflush(stdin);
if(getchar()=='Q')
break;
}
}
printf("你答对了%d道题,答错%d道题 ",total1,total2);
}
}
五、程序运行截图
六、分析和总结
本题目,主要是设计这块比较重要,我充分感觉到一个程序不止是编程,其实设计分析更重要。
七、PSP统计表格
Personal Software Process Stages |
耗时 |
耗时百分比 |
需求分析 |
12 |
15.38% |
设计 |
18 |
23.08% |
代码实现 |
27 |
34.62% |
测试 |
3 |
3.85% |
分析总结 |
18 |
23.07% |