首页 > 其他 > 详细

四则运算3

时间:2015-03-22 19:28:50      阅读:188      评论:0      收藏:0      [点我收藏+]
  1 #include<iostream>
  2 #include<time.h>
  3 using namespace std;
  4 void menu()
  5 {
  6 //    system("cls");
  7     cout<<"---------------菜单---------------"<<endl;
  8     cout<<"         1.定制题目数量           "<<endl;
  9     cout<<"         2.是否有乘除法           "<<endl;
 10     cout<<"         3.数值范围               "<<endl;
 11     cout<<"         4.加减有无负数           "<<endl;
 12     cout<<"         5.除法有无余数           "<<endl;
 13     cout<<"         6.定制每行题的个数       "<<endl;
 14     cout<<"         7.定制间距               "<<endl;
 15     cout<<"         8.开始定制               "<<endl;
 16     cout<<"         9.退出                   "<<endl;
 17     cout<<"----------------------------------"<<endl;
 18 }
 19 void yunsuan(int num,int cc,int range,int neg,int yu,int mhs,int kgs)       //四则运算函数
 20 {
 21     srand(time(NULL));
 22     int a[100];     //存放第一个操作数的数组
 23     int b[100];     //存放第二个操作数的数组
 24     int c[100];     //存放运算符的数组
 25     int n,o,p,q,m,x=1;
 26     int repeat;      //控制是否重复   
 27     int d,e,f,g,sum=0;
 28     for(int i=0;i<num;i++)
 29     {
 30         n=rand()%range;
 31         a[i]=n; 
 32         o=rand()%range;
 33         b[i]=o;
 34         p=rand()%cc;
 35         c[i]=p;
 36         q=rand()%2;
 37         m=rand()%2;
 38         while(neg)      //有无负数
 39         {
 40             switch(q)
 41             {
 42             case(0):
 43                 a[i]=-a[i];
 44                 break;
 45             case(1):
 46                 break;
 47             }
 48             break;
 49         }
 50         while(neg)
 51         {
 52             switch(m)
 53             {
 54             case(0):
 55                 b[i]=-b[i];
 56                 break;
 57             case(1):
 58                 break;
 59             }
 60             break;
 61         }
 62         repeat=1;
 63         for(int j=0;j<i;j++)
 64         {
 65             if(a[i]==a[j]&&b[i]==b[j]&&c[i]==c[j])    //判断是否有重复
 66             {
 67                 i=i-1;
 68                 repeat=0;
 69             }
 70         }
 71         while(repeat)
 72         {
 73             if(i%mhs==0)
 74             {
 75                 cout<<endl;
 76             }
 77             switch(c[i])
 78             {
 79             case(0):
 80                 {
 81                     cout<<"("<<i+1<<") "<<a[i]<<"+ "<<b[i]<<"=";
 82                     cin>>d;
 83                     if(d==a[i]+b[i])
 84                         sum++;
 85                 }
 86                 break;
 87             case(1):
 88                 {
 89                     cout<<"("<<i+1<<") "<<a[i]<<"- "<<b[i]<<"=";
 90                     cin>>e;
 91                     if(e==a[i]-b[i])
 92                         sum++;
 93                 }
 94                 break;
 95             case(2):
 96                 {
 97                     cout<<"("<<i+1<<") "<<a[i]<<"* "<<b[i]<<"=";
 98                     cin>>f;
 99                     if(f==a[i]*b[i])
100                         sum++;
101                 }
102                 break;
103             case(3):
104                 {   
105                      
106                     if(b[i]==0)       //判断被除数是否为0,是0则不输出
107                     {
108                         i=i-1;
109                         break;
110                     }
111                     else
112                     {
113                         while(yu)
114                         {
115                             if(a[i]%b[i]!=0)
116                             {
117                                 i=i-1;
118                                 x=0;
119                                 break;
120                             }
121                         }
122                         while(x)
123                         {
124                             cout<<"("<<i+1<<") "<<a[i]<<"/ "<<b[i]<<"=";
125                             cin>>g;
126                             if(g==a[i]/b[i])
127                                 sum++;
128                         }
129                         break;
130                     }   
131                 }   
132             }
133             for(int k=0;k<kgs;k++)
134             {
135                 cout<<"\t";
136             }
137             break;
138         }
139     }
140     cout<<endl;
141     cout<<"共答对"<<sum<<"道题目"<< endl;
142 }
143 
144 
145 void main()
146 {
147     int option,op1,op2,op3,op4,op5,op6,op7,n;
148     int cc;
149     menu();
150    
151     while(n)
152     {
153         cout<<"请输入选择:";
154         cin>>option;
155         switch(option)
156         {
157         case 1:
158             {
159                 cout<<"请输入题目数量:";
160                 cin>>op1;
161                 menu();
162             //    cin>>option;
163                 break;
164             }
165         case 2:
166             {
167                 cout<<"有乘除法请输入0,没有乘除法请输入1(程序默认有乘除法):";
168                 cin>>op2;
169                 if(op2==0)
170                 {
171                     cc=4;
172                 }
173                 else if(op2==1)
174                 {
175                     cc=2;
176                 }
177                 else 
178                     cout<<"输入有误,请重新输入(有乘除法请输入0,没有乘除法请输入1):";
179                 menu();
180             //    cin>>option;
181                 break;
182             }
183         case 3:
184             {
185                 cout<<"请输入数值范围";
186                 cin>>op3;
187                 menu();
188             //    cin>>option;
189                 break;
190             }
191         case 4:
192             {
193                 cout<<"无负数请输入0,有负数请输入1:";
194                 cin>>op4;
195                 menu();
196             //    cin>>option;
197                 break;
198             }
199         case 5:
200             {
201                 cout<<"有余数请输入0,无余数请输入1:";
202                 cin>>op5;
203                 menu();
204             //    cin>>option;
205                 break;
206             }
207         case 6:
208             {
209                 cout<<"请输入每行题目的数量:";
210                 cin>>op6;
211                 menu();
212             //    cin>>option;
213                 break;
214             }
215         case 7:
216             {
217                 cout<<"请输入每题之间的间距:";
218                 cin>>op7;
219                 menu();
220             //    cin>>option;
221                 break;
222             }
223         case 8:
224             {
225                 yunsuan(op1,cc,op3,op4,op5,op6,op7);
226                 cout<<endl;
227                 break;
228             }
229         case 9:
230             cout<<"是否退出(0代表退出,1代表继续)";
231             cin>>n;///
232             break;
233          
234         }
235     }    
236 }

结果:技术分享

实验心得:这次的个人项目,在上次的基础之上,加以改进,虽然还有一些问题,相信在查阅书籍和询问老师以后,可以更好的实现查错。

四则运算3

原文:http://www.cnblogs.com/xuqingtian/p/4357751.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!