此次程序是对上次程序的再次开发,我将自己视作另一个在开发者,在对自己前面程序进行再次审视时,有了别样的感受,自己写的程序,一定要为别人(也有可能是自己)留一条活路。闲话不多说,进入大家最喜欢的**环节。
要求:每个同学选一个方向,把程序扩展一下让程序能接受用户输入答案,并判定对错。最后给出总共对/错 的数量。
设计思想:由于我把当初产生的操作数存储在了链表中,并且实现过对链表题目的显示,在此基础上实现对用户的答案验证,显得不那么困难,只需要让用户看到他应该做的题目,让他输入答案,程序为其进行验证。函数之间设计的参数传递细节不在赘述。
1 int Count(int first,int second,char third)
2 {
3 switch(third)
4 {
5 case '+':
6 return (first+second);
7 case '-':
8 return (first-second);
9 case '*':
10 return (first*second);
11 case '/':
12 return (first/second);
13 default :
14 return 0;
15 }
16
17 }
18
19 int UserUsing(linknode &L)
20 {
21 int right=0;
22 int record;
23 linknode p=L->next;
24 while(p !=NULL)
25 {
26 cout<<"请输入计算结果:";
27 cout<<p->num1<<p->ope<<p->num2<<"=";
28 cin>>record;
29 if(record==Count(p->num1,p->num2,p->ope))
30 right++;
31 p=p->next;
32 }
33 return right;
34 }
35 void Show(int zongtishu,int zhengque)
36 {
37 cout<<"恭喜您答对了"<<zhengque<<"道题目"<<endl;
38 if(zongtishu-zhengque!=0)
39 {
40 cout<<"但很遗憾您答错了"<<(zongtishu-zhengque)<<"道题目"<<endl;
41 }
42 }

程序设计时间没有做详细记录,但有一个我感觉有一个学到的点,在程序写完后一开始没运行,后来测试了一次,当用户答题全部正确时,程序仍会提醒答错了0道题,这显的很是别扭,便做了一些调整。判断了一下是否有答错的题目,再进行输出。还有一个方面就是刚开始想设计两个值一个表示回答正确的题目,另一个记录回答错误的题目数,但这样与只记录一个数据,另一个通过总数减去你记录的数据,代码的复杂度会降低。