码迷,mamicode.com
首页 > 其他好文 > 详细

四则运算2扩展

时间:2015-03-21 22:41:55      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:

一、题目

我在这次扩展中加入了实现让程序能接受用户输入答案,并判定对错,最后给出总共对/错的数量。

二、设计思想

接收用户输入的数,用if结构判断,对则继续,错则给出正解再继续。

有余数除法部分加入类型转换,以实现浮点型答案输出。

增加一个全局变量,对结果对错计数。

因要逐题输入答案,所以去掉分列显示。

三、代码

  1 #include<iostream.h>
  2 #include<stdlib.h>
  3 #include<time.h>
  4 
  5 static int i=0,j=0;
  6 
  7 void jia(int n)   //加法         
  8 {
  9     int a,b,m;
 10     a=rand()%n; 
 11     b=rand()%n;
 12     cout<<a<<"+"<<b<<"="<<"    ";
 13     cout<<"请输入结果:";
 14     cin>>m;
 15     cout<<endl;
 16     if(m==a+b)
 17     {
 18         cout<<"答案正确!"<<endl;
 19         i++;
 20     }
 21     else
 22     {
 23         cout<<"答案错误,正确答案是:"<<a+b<<endl<<endl;//给出正确答案
 24         j++;
 25     }
 26 }
 27 
 28 void jian(int n)   //减法   
 29 {
 30     int a,b,m;
 31     a=rand()%n;        
 32     b=rand()%n;     
 33     cout<<a<<"-"<<b<<"="<<"    ";
 34     cout<<"请输入结果:";
 35     cin>>m;
 36     cout<<endl;
 37     if(m==a-b)
 38     {
 39         cout<<"答案正确!"<<endl;
 40         i++;
 41     }
 42     else
 43     {
 44         cout<<"答案错误,正确答案是:"<<a-b<<endl<<endl;//给出正确答案
 45         j++;
 46     }
 47 }
 48 
 49 void jianfu(int n)    //无负数减法   
 50 {
 51     int a,b,t,m;
 52     a=rand()%n;        
 53     b=rand()%n;     
 54     if(a<b) 
 55     {t=a;a=b;b=t;}
 56     cout<<a<<"-"<<b<<"="<<"    ";
 57     cout<<"请输入结果:";
 58     cin>>m;
 59     cout<<endl;
 60     if(m==a-b)
 61     {
 62         cout<<"答案正确!"<<endl;
 63         i++;
 64     }
 65     else
 66     {
 67         cout<<"答案错误,正确答案是:"<<a-b<<endl<<endl;//给出正确答案
 68         j++;
 69     }
 70 }
 71 
 72 void cheng(int n)     //乘法
 73 {
 74     int a,b,m;
 75     a=rand()%n;      
 76     b=rand()%n;      
 77     cout<<a<<"*"<<b<<"="<<"    ";
 78     cout<<"请输入结果:";
 79     cin>>m;
 80     cout<<endl;
 81     if(m==a*b)
 82     {
 83         cout<<"答案正确!"<<endl;
 84         i++;
 85     }
 86     else
 87     {
 88         cout<<"答案错误,正确答案是:"<<a*b<<endl<<endl;//给出正确答案
 89         j++;
 90     }
 91 }
 92 
 93 void chu(int n)       //除法
 94 {
 95     int a,b;
 96     float m,f,g,h;
 97     a=rand()%n;     
 98     b=rand()%n;    
 99     while(b==0)
100     {
101         b=rand()%n;
102     }
103     cout<<a<<"/"<<b<<"="<<"    ";
104     cout<<"请输入结果:";
105     cin>>m;
106     cout<<endl;
107     if(m==a/b)
108     {
109         cout<<"答案正确!"<<endl;
110         i++;
111     }
112     else
113     {
114         g=(float)a;
115         h=(float)b;
116         f=g/h;
117         cout<<"答案错误,正确答案是:"<<f<<endl<<endl;//给出正确答案
118         j++;
119     }
120 }
121 
122 void chuyu(int n)     //无余数除法
123 {
124     int a,b;
125     float m,f,g,h;
126     a=rand()%n;     
127     b=rand()%n;            
128     if(b==0)
129     {
130         b=rand()%n+1;
131     }
132     if(a%b!=0)
133     {
134         a=a-a%b;
135     }
136     cout<<a<<"/"<<b<<"="<<"    ";
137     cout<<"请输入结果:";
138     cin>>m;
139     cout<<endl;
140     if(m==a/b)
141     {
142         cout<<"答案正确!"<<endl;
143         i++;
144     }
145     else
146     {
147         cout<<"答案错误,正确答案是:"<<a/b<<endl<<endl;//给出正确答案
148         j++;
149     }
150 }
151 
152 void main()
153 {
154     srand((unsigned)time(NULL));
155     
156     int i,m,n,p,q,r;
157     
158     cout<<"请输入需要出题数目:"<<endl;
159     cin>>m;
160     
161     cout<<"请输入数值范围(0—n):"<<endl;
162     cin>>n;
163     
164     cout<<"请选择题目类型:"<<endl<<"0.加减法"<<endl<<"1.加减乘除法"<<endl;
165     cin>>p;
166     
167     cout<<"请选择加减法有无负数:"<<endl<<"0.有"<<endl<<"1.无"<<endl;
168     cin>>r;
169     
170     if(p==1)
171     {
172         cout<<"请选择除法有无余数:"<<endl<<"0.有"<<endl<<"1.无"<<endl;
173         cin>>q;
174     }
175     
176     switch(p)
177     {
178     case 0:        
179         for(i=0;i<m;i++)
180         {
181             int a;
182             a=rand()%2;
183             switch(a)
184             {
185             case 0:
186                 jia(n);
187                 break;
188             case 1:
189                 if(r==1)
190                 {
191                     jianfu(n);
192                 }
193                 else
194                 {
195                     jian(n);
196                 }
197                 break;
198             }
199         }
200         break;
201     case 1:
202         for(i=0;i<m;i++)
203         {
204             int b;
205             b=rand()%4;
206             switch(b)
207             {
208             case 0:
209                 jia(n);
210                 break;
211             case 1:
212                 if(r==1)
213                 {
214                     jianfu(n);
215                 }
216                 else
217                 {
218                     jian(n);
219                 }
220                 break;
221             case 2:
222                 cheng(n);
223                 break;
224             case 3:
225                 if(q==1)
226                 {
227                     chuyu(n);
228                 }
229                 else
230                 {
231                     chu(n);
232                 }
233                 break;
234             }
235         }
236     }
237     cout<<"您回答正确的个数是:"<<i-j<<endl; //统计出回答正确的个数
238     cout<<"您回答错误的个数是:"<<j<<endl; //统计出回答错误的个数    
239 }

四、截图

技术分享

技术分享

五、PSP0级记录

技术分享

技术分享

技术分享

四则运算2扩展

标签:

原文地址:http://www.cnblogs.com/dr73/p/4356366.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!