结对编程项目---四则运算

结对编程项目---四则运算

小组成员:

赵文博

王林 中软1班 130201217  博客地址:http://www.cnblogs.com/Anaheim-Electronics/

基本功能:

1) 实现一个带有用户界面的四则运算。

2) 生成的题目不能重复。

3) 支持负数。

需要支持的基本设定参数

1) 题目的数量

2) 数值的范围

3) 题目中最多几个运算符

4) 题目中或运算过程中有无有分数

5) 题目中是否有乘除法

6) 题目中是否有括号

7) 题目中或运算过程中有无负数

 

工作分配:

由于是2人进行合作设计代码,没有具体分工,2人同时进行

结对的每一个人的优点和缺点:

优点:我擅长细节工作,我的同伴赵文博擅长大体的工作设计

缺点:我比较缺乏大体的工作设计,我的同伴赵文博则对细节发面不擅长

结对编程的优点和缺点:

 优点:取长补短,相互学习,共同进步

 缺点:代码认知能力不足,需要上网查阅资料

编程代码:

复制代码
  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Threading.Tasks;
  9 using System.Windows.Forms;
 10 
 11 namespace 四则运算
 12 {
 13     public partial class Form1 : Form
 14     {
 15         public Form1()
 16         {
 17             InitializeComponent();
 18         }
 19         char[] OC = { '+', '-', '*', '%', ' ' };
 20         static int GetRandomSeed()  //随机数种子,使随机数不重复
 21         {
 22             byte[] bytes = new byte[4];
 23             System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider();
 24             rng.GetBytes(bytes);
 25             return BitConverter.ToInt32(bytes, 0);
 26         }
 27         private void btn1_Click_1(object sender, EventArgs e)
 28         {
 29             int n = Convert.ToInt32(this.number.Text);  //生成题目的数量
 30             int r = Convert.ToInt32(this.range1.Text);  //生成范围的最小值
 31             int o = Convert.ToInt32(this.range2.Text);  //生成范围的最大值
 32             int OC = Convert.ToInt32(this.chooseysf.Text.ToString());  //生成需求的运算符个数(operational character)
 33             for (int i = 0; i < n; i++) //生成n道题
 34             {
 35                 if (OC == 1)  //生成一个运算符
 36                 {
 37                     
 38                     if (choosefs.SelectedItem.ToString() == "是")   //选择分数
 39                  {
 40                      Random rd = new Random(GetRandomSeed());
 41                     randnum1(r,o);  //插入随机数
 42                     input_OC();  //插入运算符
 43                     randnum1(r,o);
 44                  }
 45             else
 46             {
 47                 Random rd = new Random(GetRandomSeed());
 48                 randnum(r,o); 
 49                 input_OC();
 50                 randnum(r,o);
 51             }
 52                 }
 53                 else if (OC == 2)  // 生成两个运算符
 54                 {
 55                     Random rd = new Random(GetRandomSeed());
 56                     int t = 0;
 57                     t = rd.Next(2); 
 58                     if (t == 0)
 59                     {
 60                         if (choosefs.SelectedItem.ToString() == "是")   //选择“有”分数
 61                         {
 62                             Random rd1 = new Random(GetRandomSeed());
 63                             randnum1(r, o);  
 64                             input_OC();  
 65                             randnum1(r, o);
 66                         }
 67                         else
 68                         {
 69                             Random rd1 = new Random(GetRandomSeed());
 70                             randnum(r, o); 
 71                             input_OC();
 72                             randnum(r, o);
 73                         }
 74                     }
 75                     else
 76                     {
 77 
 78                         if (choosekh.SelectedItem.ToString() == "是")  //选择“有”括号
 79                         {
 80                             input_OC2_kh(r, o);
 81                         }
 82                         else
 83                         {
 84                             input_OC2(r, o);
 85                         }
 86 
 87 
 88                     }
 89                 }
 90                 else    //生成三个运算符
 91                 {
 92                     Random rd = new Random(GetRandomSeed());
 93                     int t = 0;
 94                     t = rd.Next(2); 
 95                     if (t == 0)
 96                     {
 97                         Random rd2 = new Random(GetRandomSeed());
 98                         int j = 0;
 99                         j = rd.Next(2); 
100                         if (j == 0)
101                         {
102                             if (choosefs.SelectedItem.ToString() == "是")   //选择“有”分数
103                             {
104                                 Random rd1 = new Random(GetRandomSeed());
105                                 randnum1(r, o);  
106                                 input_OC();  
107                                 randnum1(r, o);
108                             }
109                             else
110                             {
111                                 Random rd1 = new Random(GetRandomSeed());
112                                 randnum(r, o);
113                                 input_OC();
114                                 randnum(r, o);
115                             }
116                         }
117                         else
118                         {
119 
120                             if (choosekh.SelectedItem.ToString() == "是")  //选择“有”括号
121                             {
122                                 input_OC2_kh(r, o);
123                             }
124                             else
125                             {
126                                 input_OC2(r, o);
127                             }
128 
129 
130                         }
131                     }
132                     else
133                     {
134                         if (choosekh.SelectedItem.ToString() == "是")  //选择“有”括号
135                         {
136                             int m = 0;
137                             m = rd.Next(3); //随机括号
138                             if (m == 0)
139                             {
140                                 input_OC3_kh1(r, o);  
141                             }
142                             else if (m == 1)
143                             {
144                                 input_OC3_kh2(r, o);  
145                             }
146                             else
147                             {
148                                 input_OC3_kh3(r, o);  
149                             }
150                         }
151                         else
152                         {
153                             input_OC3(r, o);   //选择“无”括号
154                         }
155                     }
156                 }
157                 input(" = ");
158                 input("\n");
159                 input("\n");
160             }
161         }
162         public void input_OC()
163         {
164             input(" "); //运算符前后空格
165             Random rd = new Random(GetRandomSeed());
166             if (choosecc.SelectedItem.ToString() == "是")
167             {
168                 input(OC[rd.Next(4)].ToString());//选择“有”乘除法
169             }
170             else
171             {
172                 input(OC[rd.Next(2)].ToString());//选择“无”乘除法
173             }
174             input(" ");
175         }
176         public void input_OC2(int r,int o)
177         {
178             if (choosefs.SelectedItem.ToString() == "是")  //判断是否含分数
179             {
180                 randnum1(r,o);
181                 input_OC();
182                 randnum1(r,o);
183                 input_OC();
184                 randnum1(r,o);
185             }
186             else
187             {
188                 randnum(r,o);
189                 input_OC();
190                 randnum(r,o);
191                 input_OC();
192                 randnum(r,o);
193             }
194 
195         }
196         public void input_OC2_kh(int r,int o)
197         {
198             if (choosefs.SelectedItem.ToString() == "是") //选择“有”分数
199             {
200                 input("(");
201                 randnum1(r,o);
202                 input_OC();
203                 randnum1(r,o);
204                 input(")");
205                 input_OC();
206                 randnum1(r,o);
207             }
208             else
209             {
210                 input("(");
211                 randnum(r,o);
212                 input_OC();
213                 randnum(r,o);
214                 input(")");
215                 input_OC();
216                 randnum(r,o);
217             }
218 
219         }
220         public void input_OC3(int r,int o)
221         {
222             if (choosefs.SelectedItem.ToString() == "是")  //选择“有”分数
223             {
224                 randnum1(r,o);
225                 input_OC();
226                 randnum1(r,o);
227                 input_OC();
228                 randnum1(r,o);
229                 input_OC();
230                 randnum1(r,o);
231             }
232             else
233             {
234                 randnum(r,o);
235                 input_OC();
236                 randnum(r,o);
237                 input_OC();
238                 randnum(r,o);
239                 input_OC();
240                 randnum(r,o);
241             }
242 
243         }
244         public void input_OC3_kh1(int r,int o)  
245         {
246             if (choosefs.SelectedItem.ToString() == "是")
247             {
248                 input("[");
249                 input("(");
250                 randnum1(r,o);
251                 input_OC();
252                 randnum1(r,o);
253                 input(")");
254                 input_OC();
255                 randnum1(r,o);
256                 input("]");
257                 input_OC();
258                 randnum1(r,o);
259             }
260             else
261             {
262                 input("[");
263                 input("(");
264                 randnum(r,o);
265                 input_OC();
266                 randnum(r,o);
267                 input(")");
268                 input_OC();
269                 randnum(r,o);
270                 input("]");
271                 input_OC();
272                 randnum(r,o);
273             }
274 
275 
276         }
277         public void input_OC3_kh2(int r,int o)  
278         {
279             if (choosefs.SelectedItem.ToString() == "是")
280             {
281                 randnum1(r,o);
282                 input_OC();
283                 input("(");
284                 randnum1(r,o);
285                 input_OC();
286                 randnum1(r,o);
287                 input(")");
288                 input_OC();
289                 randnum1(r,o);
290             }
291             else
292             {
293                 randnum(r,o);
294                 input_OC();
295                 input("(");
296                 randnum(r,o);
297                 input_OC();
298                 randnum(r,o);
299                 input(")");
300                 input_OC();
301                 randnum(r,o);
302             }
303 
304         }
305         public void input_OC3_kh3(int r,int o)  
306         {
307             if (choosefs.SelectedItem.ToString() == "是")
308             {
309                 input("(");
310                 randnum1(r,o);
311                 input_OC();
312                 randnum1(r,o);
313                 input(")");
314                 input_OC();
315                 input("(");
316                 randnum1(r,o);
317                 input_OC();
318                 randnum1(r,o);
319                 input(")");
320             }
321             else
322             {
323                 input("(");
324                 randnum(r,o);
325                 input_OC();
326                 randnum(r,o);
327                 input(")");
328                 input_OC();
329                 input("(");
330                 randnum(r,o);
331                 input_OC();
332                 randnum(r,o);
333                 input(")");
334             }
335 
336         }
337         public void randnum(int r,int o) //对数进行随机,只能是整数
338         {
339             Random rd = new Random(GetRandomSeed());
340             int num;
341             do
342             {
343                 num = rd.Next(r,o + 1);
344             } while (num == 0); // 随机整数不为 0
345 
346             input(num.ToString());
347 
348         }
349         public void randnum1(int r,int o) //对数进行随机,可为分数
350         {
351             int t = 0;
352             Random rd = new Random(GetRandomSeed());
353             t = rd.Next(2);
354             if (t == 0)
355             {
356                 int num;
357                 do
358                 {
359                     num = rd.Next(r,o + 1);
360                 } while (num == 0); // 随机整数不为 0
361 
362                 input(num.ToString());
363 
364             }
365             else
366             {
367                 randnum2(r,o);
368             }
369 
370         }
371 
372         public void randnum2(int r,int o) //随机分数
373         {
374             Random rd = new Random(GetRandomSeed());
375             int x, y; 
376             do
377             {
378                 x = rd.Next(r,o + 1);
379             } while (x == 0); 
380             do
381             {
382                 y = rd.Next(r,o + 1);
383             } while (y == 0 || y == x); 
384 
385             if (x > y) 
386             {
387                 int t = x;
388                 x = y;
389                 y = t;
390             }
391             input(x.ToString());
392             input("/");
393             input(y.ToString());
394 
395 
396         }
397 
398         public void input(string t)
399         {
400             textBox1.AppendText(t);
401         }
402 
403        
404 
405    
406         private void btn2_Click_1(object sender, EventArgs e)
407         {
408             textBox1.Clear();
409         }
410     }
411 
412 }
复制代码

窗体框架:

 

运行结果截图:

 

总结:

经过两周的共同学习,共同做作业,我愈加发现我的知识的浅薄,很难自己独立的做到编写一个完整的程序,总是要靠别人的帮助,以及网络上的资料;同时也愈发坚定了我要你努力学习编程的愿望。

posted @ 2016-04-06 22:16  chasi  阅读(211)  评论(0编辑  收藏  举报