四则运算3

  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 }

结果:

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

 

一、项目计划总结:

 

周活动总结表

姓名:徐擎天                                 日期:2015.3.22

日期       任务

听课

编写程序

阅读课本

准备考试

 

 

日总计

周日

 

 

 

 

 

 

 

周一

 

 

 

 

 

 

 

周二

 100

 20

 20

 

 

 

 140

周三

 

 40

 20

 

 

 

 60

周四

 

 

 

 

 

 

 

周五

 100

 120

 

 

 

 

 220

周六

 

 120

 40

 

 

 

 160

周总结

 200

 300

 80

 

 

 

 580

 

二、时间记录表:

学生        徐擎天                                             日期       2014.3.22

教师        王建民                                             课程           PSP       

日期

开始时间

结束时间

中断时间

净时间

活动

备注

 3.17

 8.00

 9.50

 10

 100

 听课,根据题目想设计思路

 

 3.18

 14.00

 15.00

 0

 60

 根据所遇到的问题,查阅资料

将总体框架初步设定

 

 3.20

 8.00

 9.50

 10

 100

 听课

 

 

 15.00

 17.00

 0

 

 编写程序

 

 3.21

 8.00

 9.00

 0

 

 编写程序

 

 

 19.00

 20.00

 0

 

 进行最后调试,提交代码

 

三、缺陷记录日志:

学生       徐擎天     

日期      2014.3.22

教员       王建民   

程序号                

日期

编号

类型

引入阶段

排除阶段

修复时间

修复缺陷

 3.20

 1

 

 执行

 执行

 

 

再输入错误的情况下,仍显示正确,后来得以改正

 

 

 

 

 

 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

posted on 2015-03-22 18:46  徐擎天不是死胖纸  阅读(105)  评论(0编辑  收藏  举报