一、题目
请编写一个能自动生成小学四则运算题目的 “软件”。 让程序能接受用户输入答案,并判定对错。 最后给出总共 对/错 的数量。
二、分析
1、此软件可选择所需的四则运算符号,即加、减、乘、除。
2、对于用户选择的运算符号可自动生成两个随机数。
3、通过用户手动输入运算结果,该软件可判断用户答案的正确性。
4、对于用户答案的正确与否可进行统计。
三、代码
#include<stdio.h> #include<math.h> #include<windows.h> int right=0; int wrong=0; void plus() { int x,y,z; x=rand()%100; y=rand()%100; printf("请回答: %d + %d = ",x,y); scanf("%d",&z); if(x+y==z) { printf("回答正确! "); right++; } else { printf("回答错误! "); wrong++; } } void subtract() { int x,y,z; x=rand()%100; y=rand()%100; printf("请回答: %d - %d = ",x,y); scanf("%d",&z); if(x-y==z) { printf("回答正确! "); right++; } else { printf("回答错误! "); wrong++; } } void multiply() { int x,y,z; x=rand()%100; y=rand()%100; printf("请回答: %d * %d = ",x,y); scanf("%d",&z); if(x*y==z) { printf("回答正确! "); right++; } else { printf("回答错误! "); wrong++; } } void divide() { int x,y,z; x=rand()%100; y=rand()%100; printf("请回答: %d / %d = ",x,y); scanf("%d",&z); if(x/y==z) { printf("回答正确! "); right++; } else { printf("回答错误! " ); wrong++; } } void main() { int choise; int p=0; printf(" 欢迎进入小学四则运算 "); while(1) { printf("请选择: "); printf(" 加法运算(请输入1) "); printf(" 减法运算(请输入2) "); printf(" 乘法运算(请输入3) "); printf(" 除法运算(请输入4) "); printf(" 退出运算(请输入5) "); if(p==0) scanf("%d",&choise); switch(choise) { case 1: plus();break; case 2: subtract();break; case 3: multiply(); break; case 4: divide(); break; case 5: return; }
printf(" 继续该运算?(请输入1) "); printf(" 重新选择?(请输入2) "); printf(" 退出运算?(请输入3) "); scanf("%d",&p); if(p==1) p=1; else if(p==2) p=0; else if(p==3) break; else printf("输入指令有误!请重新输入! "); } printf("做对 %d 道 做错 %d 道 ",right,wrong); }
四、程序效果截图
五、PSP耗时统计
PSP |
Personal Software Process Stages |
Time(%) Senior Student |
Time(%) SDE |
Plannig | 计划 | 10 | 8 |
Analysis | 需求分析 | 10 | 8 |
Design Spec | 生成设计文档 | 3 | 6 |
Design Review | 设计复审 | 4 | 6 |
Coding Standard | 代码规范 | 2 |
2 |
六、总结
通过这次作业,让我尝试到了软件开发是一件挺辛苦的事。该软件能够完成简单的小学四则运算,我觉得很不错。例如,可根据自己的需要选择所需的四则运算符号(加、减、乘、除),根据用户选择的运算符号,系统可自动生成两个随机数,而且可对用户输入的运算结果进行判断对错并统计对错数量等。当然,它同时也存在着一些不足之处。比如说,产生的两个随机数均为整数,但在计算除法时,结果可能会出现小数,而软件会将计算所得结果自动化为整数,导致结果错误,这是还需改进的地方。所有我会继续努力,争取将它更加完善。