天天看點

結對程式設計項目---四則運算

結對程式設計項目---四則運算

小組成員:

趙文博

王林 中軟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 }      
結對程式設計項目---四則運算

窗體架構:

結對程式設計項目---四則運算

運作結果截圖:

結對程式設計項目---四則運算

總結:

經過兩周的共同學習,共同做作業,我愈加發現我的知識的淺薄,很難自己獨立的做到編寫一個完整的程式,總是要靠别人的幫助,以及網絡上的資料;同時也愈發堅定了我要你努力學習程式設計的願望。

結對程式設計項目---四則運算