题目:
- 请编写一个能自动生成小学四则运算题目的 “软件”。
- 让程序能接受用户输入答案,并判定对错。
- 最后给出总共 对/错 的数量。
需求分析:
●基本功能
●实现100以内的加法
●实现100以内的减法
●实现100以内的乘法
●实现100以内的除法
●累计答对题目的个数,并做出相关的评价
设计:
●首先选择是否进入测试状态,若选择进入测试,则随机产生100以内的加减乘除的思则运算的题目
● 用Switch选择语句来选择做什么运算(0表示加法运算,1表示减法,2表示除法运算,3表示乘法)以及根据答对的题目个数做出相关的评价
●代码实现
#include#include using namespace std; int main() { int a,b,c,R=0,x,z,i,y,k; srand(time(NULL)); cout<<"**************************\n"; cout<<"欢迎进入小学四则运算测试系统\n"; cout<<" 1.进入测试 \n"; cout<<" 2.退出程序 \n"; cout<<"**************************\n"; cin>>z; if (z==1) { cout<<"测试开始!\n"; for(i=1;i<11;i++) { a=rand()%100; b=rand()%100; x=rand()%4; k=rand()%10; switch(x) { case 0: { y=a+b; cout<<"请看题:\t"; cout< <<"+"<<<"="; cin>>c; if (y==c) { R+=1; cout<<"答对了,累计答对题数为"< <<"\n"; } else cout<<"答错了,继续努力!\n"; break; } case 1: { if (b>a) { z=a; a=b; b=z; } y=a-b; cout<<"请看题:\t"; cout< <<"-"<<<"="; cin>>c; if (y==c) { R+=1; cout<<"答对了,累计答对题数为"<<<"\n"; } else cout<<"答错了,继续努力!\n"; break; case 2: { if (a>10) { a=a/10; } if (b>10) { b=b/10; } y=a*b; cout<<"请看题:\t"; cout< <<"*"<<<"="; cin>>c; if (y==c) { R+=1; cout<<"答对了,累计答对题数为"<<<"\n"; } else cout<<"答错了,继续努力!\n"; break; } case 3: { if (b>10) { b=b/10; } if (!(a%b==0)) { a=b*k; } y=a/b; cout<<"请看题:\t"; cout< <<"/"<<<"="; cin>>c; if (y==c) { R+=1; cout<<"答对了,累计答对题数为"<<<"\n"; } else cout<<"答错了,继续努力!\n"; break; } } } } } else { cout<<"测试已完成,谢谢您的参与\n"; return 0; } switch(R) { case 10: cout<<"真是个天才!\n";break; case 9: cout<<"真聪明!\n";break; case 8: cout<<"还不错!\n";break; case 7: cout<<"多多加油!\n";break; case 6: cout<<"刚及格,还得多练习!\n";break; case 5: case 4: case 3: case 2: case 1: case 0: cout<<"不及格!\n";break; } return 0; }
运行效果图
●选择1进入测试界面的运行效果图
●选择2退出程序的运行效果图
分析与总结:
●PSP耗时
PSP | Personal Software Process Stage | Time(h) | Time(%) |
Design | 具体设计 | 14 | 25.9 |
Coding | 具体编码 | 17 | 31.5 |
Code Review | 代码复审 | 9 | 16.7 |
Test | 测试 | 8 | 14.8 |
Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 6 | 11.1 |
●总结:
首先想法很重要,有了一定的想法再去实现。遇到问题多向老师,同学请教。多反思,和总结。这样才会设计出更好的程序!