四则运算3

1.实验题目:

让程序能接受用户输入答案,并判定对错。最后给出总共对/错 的数量。

2.设计思路:
定义两个数组,把计算结果存入其中一个,把用户自己写的答案存入另一个数组,比较是否相等,从而求出正确与错误题目的个数。
3.源代码:
  1 #include<iostream.h>
  2 #include<stdlib.h>
  3 #include<time.h>
  4 void choice2();
  5 void create(int m,int n){
  6     int a,b,c;
  7     a=rand()%n;
  8     b=rand()%n;
  9     c=rand()%m;
 10     switch(c){
 11     case 0:
 12         cout<<a<<"+"<<b<<"="<<endl;
 13         break;
 14     case 1:
 15         if(a>b)
 16         {
 17             cout<<a<<"-"<<b<<"="<<endl;
 18         }
 19         else
 20         {
 21             cout<<b<<"-"<<a<<"="<<endl;
 22         }
 23         break;
 24     case 2:
 25         cout<<a<<"*"<<b<<"="<<endl;
 26         break;
 27     case 3:
 28         if(b!=0)
 29         {
 30             cout<<a<<"/"<<b<<"="<<endl;
 31         }
 32         else
 33         {
 34             cout<<"这道题有误!"<<endl;
 35         }
 36         break;
 37     }
 38 }
 39 void caidan()
 40 {
 41     cout<<"----四则运算2-----"<<endl;
 42     cout<<"1. 定制出题数量"<<endl;
 43     cout<<"2. 出题打印"<<endl;
 44     cout<<"3. 退出菜单"<<endl;
 45 }
 46 void caidan2()
 47 {
 48     cout<<"----四则运算2----"<<endl;
 49     cout<<"1. 乘除法选择"<<endl;
 50     cout<<"2. 数值范围选择"<<endl;
 51     cout<<"3. 余数有无选择"<<endl;
 52     cout<<"4. 打印间隔选择"<<endl;
 53     cout<<"5. 退出菜单"<<endl;
 54 }
 55 void choice()
 56 {
 57     int xuanze,num;
 58     caidan();
 59     cout<<"输入您的选择:"<<endl;
 60     cin>>xuanze;
 61     while(xuanze!=3)
 62     {
 63         switch(xuanze)
 64         {
 65         case 1:
 66             cout<<"请输入您想定制的数量:"<<endl;
 67             cin>>num;
 68             caidan();
 69             cin>>xuanze;
 70             break;
 71         case 2:
 72             cout<<"出题打印!"<<endl;
 73             choice2();
 74             break;
 75         default:
 76             cout<<"输入有误!请重新输入!"<<endl;
 77             caidan();
 78             cin>>xuanze;
 79             break;
 80         }
 81     }
 82 }
 83 void choice2()
 84 {
 85     int key,k1,k2,k3,k4,num,k,a,b,c;
 86     int count1=0;
 87     int count2=0;
 88     int jg;
 89     int ans;
 90     caidan2();
 91     cout<<"请输入您的选择:"<<endl;
 92     cin>>key;
 93     while(key)
 94     {
 95         switch(key)
 96         {
 97         case 1:
 98             cout<<"请输入0或1(0代表有乘除,1代表无乘除!)"<<endl;
 99             cin>>k1;
100             if(k1==0)
101             {
102                 cout<<"请输入你想定制的数量:"<<endl;
103                 cin>>num;
104                 for(int i=0;i<num;i++)
105                 {
106                     int n=100;
107                     int m=4;
108                     a=rand()%n;
109                     b=rand()%n;
110                     c=rand()%m;    
111                     switch(c){
112                     case 0:
113                         {
114                             cout<<i<<")"<<a<<"+"<<b<<"="<<endl;
115                             jg=a+b;
116                             cout<<"输入你想的答案:"<<endl;
117                         cin>>ans;
118                         if(ans==jg){
119                             cout<<"正确!"<<endl;
120                             count1++;
121                         }
122                         else{
123                             cout<<"错误!"<<endl;
124                             count2++;
125                         }
126                         }
127                         break;
128                     case 1:
129                         if(a>b)
130                         {
131                             cout<<i<<")"<<a<<"-"<<b<<"="<<endl;
132                             jg=a-b;
133                             cout<<"输入你想的答案:"<<endl;
134                         cin>>ans;
135                         if(ans==jg){
136                             cout<<"正确!"<<endl;
137                             count1++;
138                         }
139                         else{
140                             cout<<"错误!"<<endl;
141                             count2++;
142                         }
143                         }
144                         else
145                         {
146                             cout<<i<<")"<<b<<"-"<<a<<"="<<endl;
147                             jg=b-a;
148                             cout<<"输入你想的答案:"<<endl;
149                         cin>>ans;
150                         if(ans==jg){
151                             cout<<"正确!"<<endl;
152                             count1++;
153                         }
154                         else{
155                             cout<<"错误!"<<endl;
156                             count2++;
157                         }
158                         }
159                         break;
160                     case 2:
161                         {
162                             cout<<i<<")"<<a<<"*"<<b<<"="<<endl;
163                             jg=a*b;
164                             cout<<"输入你想的答案:"<<endl;
165                         cin>>ans;
166                         if(ans==jg){
167                             cout<<"正确!"<<endl;
168                             count1++;
169                         }
170                         else{
171                             cout<<"错误!"<<endl;
172                             count2++;
173                         }
174                         }
175                         break;
176                     case 3:
177                         if(b!=0)
178                         {
179                             cout<<i<<")"<<a<<"/"<<b<<"="<<endl;
180                             jg=a/b;
181                             cout<<"输入你想的答案:"<<endl;
182                         cin>>ans;
183                         if(ans==jg){
184                             cout<<"正确!"<<endl;
185                             count1++;
186                         }
187                         else{
188                             cout<<"错误!"<<endl;
189                             count2++;
190                         }
191                         }
192                         else
193                         {
194                             cout<<"这道题有误!"<<endl;
195                         }
196                         break;
197 
198                     
199                         cout<<"答对共"<<count1<<""<<endl;
200                         cout<<"答错共"<<count2<<""<<endl;
201                     }
202                     }
203 cout<<"答对共"<<count1<<""<<endl;
204                         cout<<"答错共"<<count2<<""<<endl;
205             }
206         
207             
208             else if(k1==1)
209             {
210                 cout<<"请输入你想定制的数量:"<<endl;
211                 cin>>num;
212                 for(int i=0;i<num;i++){
213                     create(2,100);
214                 }
215             }
216             else
217             {
218                 cout<<"输入有误!请重输:"<<endl;
219                 cin>>k1;
220             }
221             caidan2();
222             cin>>key;
223             break;
224         case 2:
225             {
226                 cout<<"请输入出题数值范围(数值范围默认100以内)"<<endl;
227                 cin>>k2;
228                 cout<<"请输入你想定制的数量:"<<endl;
229                 cin>>num;
230                 for(int i=0;i<num;i++){
231                     create(4,k2);
232                 }
233                 caidan2();
234                 cin>>key;
235                 break;
236             }
237         case 3:
238             cout<<"请输入0或1(0代表有余数,1代表无余数!)"<<endl;
239             cin>>k3;
240             
241             if(k3==0)
242             {
243                 cout<<"请输入出题数值范围(数值范围默认100以内)"<<endl;
244                 cin>>k2;
245                 cout<<"请输入你想定制的数量:"<<endl;
246                 cin>>num;
247                 int a=rand()%k2;
248                 int b=rand()%k2;
249                 
250                 if(a%b==0)
251                 {
252                     srand(time(NULL));
253                     a=rand()%k2;
254                     b=rand()%k2;
255                     for(int i=0;i<num;i++){
256                         create(4,k2);}
257                 }
258                 else
259                 {
260                     for(int i=0;i<num;i++){
261                         create(4,k2);}
262                 }
263             }
264             else if(k3==1)
265             {
266                 cout<<"请输入出题数值范围(数值范围默认100以内)"<<endl;
267                 cin>>k2;
268                 cout<<"请输入你想定制的数量:"<<endl;
269                 cin>>num;
270                 int a=rand()%k2;
271                 int b=rand()%k2;
272                 
273                 if(a%b==0)
274                 {
275                     srand(time(NULL));
276                     a=rand()%k2;
277                     b=rand()%k2;
278                     for(int i=0;i<num;i++){
279                         create(4,k2);}
280                 }
281                 else
282                 {
283                     for(int i=0;i<num;i++){
284                         create(4,k2);}
285                 }
286             }
287             caidan2();
288             cin>>key;
289             break;
290         case 4:
291             {
292                 cout<<"请输入您想打印时的间隔:"<<endl;
293                 cin>>k4;
294                 cout<<"请输入你想定制的数量:"<<endl;
295                 cin>>num;
296                 for(int i=0;i<num;i++)
297                 {
298                     create(4,100);
299                     for(int j=0;j<k4;j++)
300                     {
301                         cout<<"	";
302                     }
303                 }
304                 caidan2();
305                 break;
306             }
307         case 5:
308             exit(1);
309         default:
310             cout<<"输入有误!请重新输入!"<<endl;
311             caidan2();
312             cin>>key;
313             break;
314         }
315     }
316 }
317 void main()
318 {
319     int xuanze;
320     choice();
321     if(xuanze==2)
322     {
323         choice2();
324     }
325 }

4.结果截图:

 
5.实验总结:
程序本身存在一些不足,但我相信用户使用起来效果应该不错。对于界面化的实现,日后还应该更加努力吧。
6.psp:
原文地址:https://www.cnblogs.com/zhengt/p/4357451.html