四則運算2開發簡介

??? 四則運算2在四則運算1的基礎之上,又添加了新的功能,但是我覺得四則運算2的難度比四則運算1增大了很多,我在編程的過程中,遇到的最大難度就是不知該如何更好的融合各個功能之間的關系。

??? 寫到現在,四則運算2主要實現了以下幾個功能:

??? 1.題目可不重復

??? 2.打印方式可以選擇,既可以在屏幕上輸出,又可以保存到文件

??? 3.題目的數量可以由用戶控制

??? 4.可以設置四則運算的數值范圍

??? 5.可以實現運算式中有無乘除法

??? 6.可以支持十個數參與運算,并且通過括號改變運算的優先級

??? 7.有除法算式的情況下,可以實現整數除法的整除運算,不產生余數

??? 8.加減法可以實現無負數參與運算

??? 根據程序實現的功能,對程序的設計思想簡介如下:

??? 1.為保證題目的不重復,在產生隨機數時加入了判斷語句,將當下產生的隨機數與以前產生的隨機數作比較,如果重復了,則當下的隨機數舍棄,重新生成,重新生成后接著比較,直到產生新的不重復的隨機數才繼續往下執行。

??? 2.打印方式分為在屏幕上輸出與保存至文件兩項,保存到文件的程序功能與輸出到屏幕的程序功能一致,在輸出到文件時,定義了一個txt文檔,用文件輸出流將最后的結果輸出到文件保存。

??? 3.程序開始會讓用戶設置某些參數,通過定義全局變量的形式,保存用戶輸入的運算式數量,從而控制產生的運算式數量。

??? 4.設置數值范圍與設置數量的方式一樣,也定義了全局變量。

??? 5.乘除法的實現是用隨機數控制的,只產生0和1兩個隨機數,再加上switch語句就可以實現只有加減兩種運算。

??? 6.利用隨機函數生成3-10的一個隨機數,這個隨機數代表了多項式四則運算中的因子個數,然后分別產生這些隨機數和比運算數少一的運算符,比較后一個運算符和前一個運算符的優先級,若后一個運算符的優先級比前一個高,即后面的運算為乘除,則將前一個算式用括號括起來,保證了加減運算可以實現。

??? 7.多項式運算沒有實現沒有余數,兩個整數參與運算時,可以保證整除,分數除法考慮是否能夠整除無意義

??? 8.當數值范圍定義中含有負數范圍時,程序會提示用戶再次輸入范圍,即若最小值小于零,則不能保證每一個加數都是大于零的,則需用戶再次輸入范圍,重新生成隨機數。

??? 程序源代碼如下所示:

  1 //四則運算程序2,從四則運算程序1的基礎之上進行功能擴展
  2 //支持真分數運算,題目不重復,最多可支持十個運算數的帶括號的運算式
  3 //多項四則運算式以及分數除法未予考慮余數,整數除法可以實現整除功能
  4 //2016,03,09
  5 
  6 #include<iostream>
  7 #include<fstream>
  8 #include<stdlib.h>
  9 #include<time.h>
 10 using namespace std;
 11 
 12 void main()
 13 {
 14     srand((int)time(NULL));
 15     //定義變量,記錄用戶的功能選擇選項
 16     int minfigure;
 17     int maxfigure;
 18     int count;
 19     int chengchu;
 20     int remainder_chengchu;
 21     int negative_jiajian;
 22     int printstyle;
 23     //功能設置界面
 24     cout << "*******************************************************************" << endl;
 25     cout << "*                         四則運算生成器                          *" << endl;
 26     cout << "*******************************************************************" << endl;
 27     cout << "請按照系統提示設置生成器的功能:" << endl;
 28     cout << "請輸入參與四則運算的數值范圍(格式如:1  100):" ;
 29     cin >> minfigure >> maxfigure;
 30     cout << "請輸入生成四則運算式的數量:";
 31     cin >> count;
 32     cout << "請選擇打印方式(1 屏幕輸出  0 輸出到文檔):";
 33     cin >> printstyle;
 34     cout << "請設置系統的下列參數:" << endl;
 35     cout << "    1 四則運算可否生成乘除法(1 是  0 否):";
 36     cin >> chengchu;
 37     if (1 == chengchu)
 38     {
 39         cout << "    2 除法是否可有余數(1 是  0 否):";
 40         cin >> remainder_chengchu;
 41     }
 42     else
 43     {
 44         cout << "    2 加減法是否可以有負數(1 是  0 否):";
 45         cin >> negative_jiajian;
 46     }
 47     cout << "功能設置完成!" << endl;
 48     cout << "*******************************************************************" << endl;
 49 
 50     int i, j;
 51     int A[100];
 52     int B[100];
 53     int mark[9];
 54     int Operator[10];
 55     char operatorFu[9];
 56     int Operatorfu[9];
 57     //生成用戶指定數量的運算式的因子,為保證算式不重復,讓生成的隨機數都不重復
 58     for (i = 0; i < count; i++)
 59     {
 60         A[i] = minfigure + rand() % maxfigure;
 61         B[i] = minfigure + rand() % maxfigure;
 62         for (j = 0; j < i; j++)
 63         {
 64             if (A[i] == A[j])
 65             {
 66                 A[i] = minfigure + rand() % maxfigure;
 67                 j = 0;
 68             }
 69             if (B[i] == B[j])
 70             {
 71                 B[i] = minfigure + rand() % maxfigure;
 72                 j = 0;
 73             }
 74         }
 75     }
 76     //根據用戶的選擇產生功能分支
 77     if (1 == printstyle)   //運算式輸出到屏幕上
 78     {
 79         if (1 == chengchu)  //是否可以生成除法
 80         {
 81             if (remainder_chengchu)  //除法可否有余數,分數除法談論是否有余數無意義
 82             {
 83                 cout << "*******************************************************************" << endl;
 84                 cout << "生成的四則運算式如下所示:" << endl;
 85                 cout << "*******************************************************************" << endl;
 86                 for (i = 0; i < count; i++)
 87                 {
 88                     if (A[i] > B[i])   //如果A[i]>B[i],則后續程序生成帶括號的多項因子的四則運算
 89                     {
 90                         int m;
 91                         int operator_count = 3 + rand() % 8;   //隨機生成多項因子的個數
 92                         int operatorfu_count = operator_count - 1;  //算符的個數比因子的個數少一
 93                         for (m = 0; m < operator_count; m++)
 94                         {
 95                             Operator[m] = minfigure + rand() % maxfigure;   //生成多項因子
 96                         }
 97                         for (m = 0; m < operatorfu_count; m++)
 98                         {
 99                             Operatorfu[m] = rand() % 4;                  //生成多項式的算符
100                         }
101                         for (m = 1; m < operator_count; m++)
102                         {
103                             if ((Operatorfu[m] / 2)>(Operatorfu[m - 1] / 2))  //乘除用3和4表示,加減用1和2表示,讓其除以二得商0和1,可以區分出乘除為同一優先級,加減比乘除優先級低
104                             {                                                 //若后一個運算符的優先級比前一個運算符的優先級高,則將前一個運算符對應的式子用括號括起來,確保了運算優先級低的加減運算在括號里面
105                                 switch (Operatorfu[m - 1])
106                                 {
107                                 case 0:
108                                     cout << "(" << Operator[m - 1] << " + " << Operator[m] << ")"; break;
109                                 case 1:
110                                     cout << "(" << Operator[m - 1] << " - " << Operator[m] << ")"; break;
111                                 case 2:
112                                     cout << "(" << Operator[m - 1] << " x " << Operator[m] << ")"; break;
113                                 case 3:
114                                     if (0 == Operator[m])
115                                     {
116                                         cout << "(" << Operator[m - 1] << " ÷ " << Operator[m] + 2 << ")";
117                                     }
118                                     break;   //若分子為零時,則讓分子加2,即除以2
119                                 }
120                                 switch (Operatorfu[m])
121                                 {
122                                 case 0:
123                                     cout << " + "; m = m + 1; break;
124                                 case 1:
125                                     cout << " - "; m = m + 1; break;
126                                 case 2:
127                                     cout << " x "; m = m + 1; break;
128                                 case 3:
129                                     cout << " ÷ "; m = m + 1; break;
130                                 }
131                             }
132                             else
133                             {
134                                 switch (Operatorfu[m - 1])
135                                 {
136                                 case 0:
137                                     cout << Operator[m - 1] << " + "; break;
138                                 case 1:
139                                     cout << Operator[m - 1] << " - "; break;
140                                 case 2:
141                                     cout << Operator[m - 1] << " x "; break;
142                                 case 3:
143                                     cout << Operator[m - 1] << " ÷ "; break;
144                                 }
145                             }
146                         }
147                         cout << Operator[m - 1] << " = " << endl;         //輸出最后一個多項式因子
148                     }
149                     else            //如果A[i]<B[i],則產生真分數運算式
150                     {
151                         int copyA = A[i];
152                         int copyB = B[i];
153                         int beichushuA = maxfigure;
154                         int beichushuB = maxfigure;
155                         int firstA = beichushuA% copyA;
156                         int firstB = beichushuB% copyB;
157                         while (firstA != 0)        //求A[i]和最大值的公約數,以便后面化簡
158                         {
159                             int temp = copyA;
160                             copyA = beichushuA%copyA;
161                             beichushuA = temp;
162                             firstA = beichushuA%copyA;
163                         }
164                         while (firstB != 0)
165                         {
166                             int temp = copyB;
167                             copyB = beichushuB%copyB;
168                             beichushuB = temp;
169                             firstB = beichushuB%copyB;
170                         }
171                         int suanfu = rand() % 4;
172                         switch (suanfu)
173                         {
174                         case 0:
175                             cout << A[i] / copyA << "/" << maxfigure / copyA << " + " << B[i] / copyB << "/" << maxfigure / copyB << " = " << endl; break;
176                         case 1:
177                             cout << A[i] / copyA << "/" << maxfigure / copyA << " - " << B[i] / copyB << "/" << maxfigure / copyB << " = " << endl; break;
178                         case 2:
179                             cout << A[i] / copyA << "/" << maxfigure / copyA << " x " << B[i] / copyB << "/" << maxfigure / copyB << " = " << endl; break;
180                         case 3:
181                             cout << A[i] / copyA << "/" << maxfigure / copyA << " ÷ " << B[i] / copyB << "/" << maxfigure / copyB << " = " << endl; break;
182                             //讓A[i]和最大值都除以公約數便可以得到無法再約分的最大公約數
183                         }
184                     }
185                 }
186             }
187             else
188             {
189                 cout << "*******************************************************************" << endl;
190                 cout << "生成的四則運算式如下所示:" << endl;
191                 cout << "*******************************************************************" << endl;
192                 for (i = 0; i < count; i++)
193                 {
194                     if (A[i] > B[i])
195                     {
196                         int m;
197                         int operator_count = 3 + rand() % 8;
198                         int operatorfu_count = operator_count - 1;
199                         for (m = 0; m < operator_count; m++)
200                         {
201                             Operator[m] = minfigure + rand() % maxfigure;
202                         }
203                         for (m = 0; m < operatorfu_count; m++)
204                         {
205                             Operatorfu[m] = rand() % 4;
206                         }
207                         for (m = 1; m < operator_count; m++)
208                         {
209                             if ((Operatorfu[m] / 2)>(Operatorfu[m - 1] / 2))
210                             {
211                                 switch (Operatorfu[m - 1])
212                                 {
213                                 case 0:
214                                     cout << "(" << Operator[m - 1] << " + " << Operator[m] << ")"; break;
215                                 case 1:
216                                     cout << "(" << Operator[m - 1] << " - " << Operator[m] << ")"; break;
217                                 case 2:
218                                     cout << "(" << Operator[m - 1] << " x " << Operator[m] << ")"; break;
219                                 case 3:
220                                     if (0 == Operator[m])
221                                     {
222                                         cout << "(" << Operator[m - 1] << " ÷ " << Operator[m] + 2 << ")";
223                                     }
224                                     break;
225                                 }
226                                 switch (Operatorfu[m])
227                                 {
228                                 case 0:
229                                     cout << " + "; m = m + 1; break;
230                                 case 1:
231                                     cout << " - "; m = m + 1; break;
232                                 case 2:
233                                     cout << " x "; m = m + 1; break;
234                                 case 3:
235                                     cout << " ÷ "; m = m + 1; break;
236                                 }
237                             }
238                             else
239                             {
240                                 switch (Operatorfu[m - 1])
241                                 {
242                                 case 0:
243                                     cout << Operator[m - 1] << " + "; break;
244                                 case 1:
245                                     cout << Operator[m - 1] << " - "; break;
246                                 case 2:
247                                     cout << Operator[m - 1] << " x "; break;
248                                 case 3:
249                                     cout << Operator[m - 1] << " ÷ "; break;
250                                 }
251                             }
252                         }
253                         cout << Operator[m - 1] << " = " << endl;
254                     }
255                     else
256                     {
257                         int copyB = B[i];
258                         int first = B[i] % A[i];
259                         while (first != 0)
260                         {
261                             int temp = A[i];
262                             A[i] = B[i] % A[i];
263                             B[i] = temp;
264                             first = B[i] % A[i];
265                         }
266                         int suanfu = rand() % 4;
267                         switch (suanfu)
268                         {
269                         case 0:
270                             cout << A[i] << " + " << B[i] << "=" << endl; break;
271                         case 1:
272                             cout << A[i] << " - " << B[i] << "=" << endl; break;
273                         case 2:
274                             cout << A[i] << " x " << B[i] << "=" << endl; break;
275                         case 3:
276                             cout << copyB << " ÷ " << A[i] << " = " << endl; break;
277                         }
278                     }
279                 }
280             }
281         }
282         else   //不允許生成乘除法,則只有加減法
283         {
284             if ((minfigure < 0) && (0 == negative_jiajian))  //若加減法不允許出現負數,則應該重新設定數值的范圍,讓最小值大于零,保證生成的隨機數都是大于零的
285             {
286                 cout << "請重新設置數值范圍,最小值應大于零以保證加法無負數!" << endl;
287                 cout << "請輸入參與四則運算的數值范圍(格式如:1  100):";
288                 cin >> minfigure >> maxfigure;
289                 for (i = 0; i < count; i++)     //重新生成的隨機數仍是不重復的
290                 {
291                     A[i] = minfigure + rand() % maxfigure;
292                     B[i] = minfigure + rand() % maxfigure;
293                     for (j = 0; j < i; j++)
294                     {
295                         if (A[i] == A[j])
296                         {
297                             A[i] = minfigure + rand() % maxfigure;
298                             j = 0;
299                         }
300                         if (B[i] == B[j])
301                         {
302                             B[i] = minfigure + rand() % maxfigure;
303                             j = 0;
304                         }
305                     }
306                 }
307             }
308             for (i = 0; i < count; i++)
309             {
310                 if (A[i]>B[i])
311                 {
312                     int suanfu = rand() % 2;
313                     switch (suanfu)
314                     {
315                     case 0:
316                         cout << A[i] << " + " << B[i] << "=" << endl; break;
317                     case 1:
318                         cout << A[i] << " - " << B[i] << "=" << endl; break;
319                     }
320                 }
321                 else
322                 {
323                     int copyA = A[i];
324                     int copyB = B[i];
325                     int beichushuA = maxfigure;
326                     int beichushuB = maxfigure;
327                     int firstA = beichushuA% copyA;
328                     int firstB = beichushuB% copyB;
329                     while (firstA != 0)
330                     {
331                         int temp = copyA;
332                         copyA = beichushuA%copyA;
333                         beichushuA = temp;
334                         firstA = beichushuA%copyA;
335                     }
336                     while (firstB != 0)
337                     {
338                         int temp = copyB;
339                         copyB = beichushuB%copyB;
340                         beichushuB = temp;
341                         firstB = beichushuB%copyB;
342                     }
343                     int suanfu = rand() % 2;
344                     switch (suanfu)
345                     {
346                     case 0:
347                         cout << A[i] / copyA << "/" << maxfigure / copyA << " + " << B[i] / copyB << "/" << maxfigure / copyB << "=" << endl; break;
348                     case 1:
349                         cout << B[i] / copyB << "/" << maxfigure / copyB << " - " << A[i] / copyA << "/" << maxfigure / copyA << "=" << endl; break;
350                     }
351                 }
352             }
353         }
354     }
355     else  //將最后生成的四則運算式存到文件中,內部實現的功能與輸出到屏幕一致,只是輸出不一樣
356     {
357         if (1 == chengchu)
358         {
359             if (remainder_chengchu)
360             {
361                 ofstream fileout;  //定義輸出文件流的對象
362                 fileout.open("biaodashi.txt", ios::out);  //打開文件,該文件為指定路徑,則存放在工程的當前目錄下
363                 fileout << "*******************************************************************" << endl;
364                 fileout << "生成的四則運算式如下所示:" << endl;
365                 fileout << "*******************************************************************" << endl;
366                 for (i = 0; i < count; i++)
367                 {
368                     if (A[i] > B[i])
369                     {
370                         int m;
371                         int operator_count = 3 + rand() % 8;
372                         int operatorfu_count = operator_count - 1;
373                         for (m = 0; m < operator_count; m++)
374                         {
375                             Operator[m] = minfigure + rand() % maxfigure;
376                         }
377                         for (m = 0; m < operatorfu_count; m++)
378                         {
379                             Operatorfu[m] = rand() % 4;
380                         }
381                         for (m = 1; m < operator_count; m++)
382                         {
383                             if ((Operatorfu[m] / 2)>(Operatorfu[m - 1] / 2))
384                             {
385                                 switch (Operatorfu[m - 1])
386                                 {
387                                 case 0:
388                                     fileout << "(" << Operator[m - 1] << " + " << Operator[m] << ")"; break;
389                                 case 1:
390                                     fileout << "(" << Operator[m - 1] << " - " << Operator[m] << ")"; break;
391                                 case 2:
392                                     fileout << "(" << Operator[m - 1] << " x " << Operator[m] << ")"; break;
393                                 case 3:
394                                     if (0 == Operator[m])
395                                     {
396                                         fileout << "(" << Operator[m - 1] << " ÷ " << Operator[m] + 2 << ")";
397                                     }
398                                     break;
399                                 }
400                                 switch (Operatorfu[m])
401                                 {
402                                 case 0:
403                                     fileout << " + "; m = m + 1; break;
404                                 case 1:
405                                     fileout << " - "; m = m + 1; break;
406                                 case 2:
407                                     fileout << " x "; m = m + 1; break;
408                                 case 3:
409                                     fileout << " ÷ "; m = m + 1; break;
410                                 }
411                             }
412                             else
413                             {
414                                 switch (Operatorfu[m - 1])
415                                 {
416                                 case 0:
417                                     fileout << Operator[m - 1] << " + "; break;
418                                 case 1:
419                                     fileout << Operator[m - 1] << " - "; break;
420                                 case 2:
421                                     fileout << Operator[m - 1] << " x "; break;
422                                 case 3:
423                                     fileout << Operator[m - 1] << " ÷ "; break;
424                                 }
425                             }
426                         }
427                         fileout << Operator[m - 1] << " = " << endl;
428                     }
429                     else
430                     {
431                         int copyA = A[i];
432                         int copyB = B[i];
433                         int beichushuA = maxfigure;
434                         int beichushuB = maxfigure;
435                         int firstA = beichushuA% copyA;
436                         int firstB = beichushuB% copyB;
437                         while (firstA != 0)
438                         {
439                             int temp = copyA;
440                             copyA = beichushuA%copyA;
441                             beichushuA = temp;
442                             firstA = beichushuA%copyA;
443                         }
444                         while (firstB != 0)
445                         {
446                             int temp = copyB;
447                             copyB = beichushuB%copyB;
448                             beichushuB = temp;
449                             firstB = beichushuB%copyB;
450                         }
451                         int suanfu = rand() % 4;
452                         switch (suanfu)
453                         {
454                         case 0:
455                             fileout << A[i] / copyA << "/" << maxfigure / copyA << " + " << B[i] / copyB << "/" << maxfigure / copyB << " = " << endl; break;
456                         case 1:
457                             fileout << A[i] / copyA << "/" << maxfigure / copyA << " - " << B[i] / copyB << "/" << maxfigure / copyB << " = " << endl; break;
458                         case 2:
459                             fileout << A[i] / copyA << "/" << maxfigure / copyA << " x " << B[i] / copyB << "/" << maxfigure / copyB << " = " << endl; break;
460                         case 3:
461                             fileout << A[i] / copyA << "/" << maxfigure / copyA << " ÷ " << B[i] / copyB << "/" << maxfigure / copyB << " = " << endl; break;
462                         }
463                     }
464                 }
465                 fileout.close();   //關閉文件,斷開與文件連接
466             }
467             else
468             {
469                 ofstream fileout;
470                 fileout.open("biaodashi.txt", ios::out);
471                 fileout << "*******************************************************************" << endl;
472                 fileout << "生成的四則運算式如下所示:" << endl;
473                 fileout << "*******************************************************************" << endl;
474                 for (i = 0; i < count; i++)
475                 {
476                     if (A[i] > B[i])
477                     {
478                         int m;
479                         int operator_count = 3 + rand() % 8;
480                         int operatorfu_count = operator_count - 1;
481                         for (m = 0; m < operator_count; m++)
482                         {
483                             Operator[m] = minfigure + rand() % maxfigure;
484                         }
485                         for (m = 0; m < operatorfu_count; m++)
486                         {
487                             Operatorfu[m] = rand() % 4;
488                         }
489                         for (m = 1; m < operator_count; m++)
490                         {
491                             if ((Operatorfu[m] / 2)>(Operatorfu[m - 1] / 2))
492                             {
493                                 switch (Operatorfu[m - 1])
494                                 {
495                                 case 0:
496                                     fileout << "(" << Operator[m - 1] << " + " << Operator[m] << ")"; break;
497                                 case 1:
498                                     fileout << "(" << Operator[m - 1] << " - " << Operator[m] << ")"; break;
499                                 case 2:
500                                     fileout << "(" << Operator[m - 1] << " x " << Operator[m] << ")"; break;
501                                 case 3:
502                                     if (0 == Operator[m])
503                                     {
504                                         fileout << "(" << Operator[m - 1] << " ÷ " << Operator[m] + 2 << ")";
505                                     }
506                                     break;
507                                 }
508                                 switch (Operatorfu[m])
509                                 {
510                                 case 0:
511                                     fileout << " + "; m = m + 1; break;
512                                 case 1:
513                                     fileout << " - "; m = m + 1; break;
514                                 case 2:
515                                     fileout << " x "; m = m + 1; break;
516                                 case 3:
517                                     fileout << " ÷ "; m = m + 1; break;
518                                 }
519                             }
520                             else
521                             {
522                                 switch (Operatorfu[m - 1])
523                                 {
524                                 case 0:
525                                     fileout << Operator[m - 1] << " + "; break;
526                                 case 1:
527                                     fileout << Operator[m - 1] << " - "; break;
528                                 case 2:
529                                     fileout << Operator[m - 1] << " x "; break;
530                                 case 3:
531                                     fileout << Operator[m - 1] << " ÷ "; break;
532                                 }
533                             }
534                         }
535                         fileout << Operator[m - 1] << " = " << endl;
536                     }
537                     else
538                     {
539                         int copyB = B[i];
540                         int first = B[i] % A[i];
541                         while (first != 0)
542                         {
543                             int temp = A[i];
544                             A[i] = B[i] % A[i];
545                             B[i] = temp;
546                             first = B[i] % A[i];
547                         }
548                         int suanfu = rand() % 4;
549                         switch (suanfu)
550                         {
551                         case 0:
552                             fileout << A[i] << " + " << B[i] << "=" << endl; break;
553                         case 1:
554                             fileout << A[i] << " - " << B[i] << "=" << endl; break;
555                         case 2:
556                             fileout << A[i] << " x " << B[i] << "=" << endl; break;
557                         case 3:
558                             fileout << copyB << " ÷ " << A[i] << " = " << endl; break;
559                         }
560                     }
561                 }
562                 fileout.close();
563             }
564         }
565         else
566         {
567             if ((minfigure < 0) && (0 == negative_jiajian))
568             {
569                 cout << "請重新設置數值范圍,最小值應大于零以保證加法無負數!" << endl;
570                 cout << "請輸入參與四則運算的數值范圍(格式如:1  100):";
571                 cin >> minfigure >> maxfigure;
572                 for (i = 0; i < count; i++)
573                 {
574                     A[i] = minfigure + rand() % maxfigure;
575                     B[i] = minfigure + rand() % maxfigure;
576                     for (j = 0; j < i; j++)
577                     {
578                         if (A[i] == A[j])
579                         {
580                             A[i] = minfigure + rand() % maxfigure;
581                             j = 0;
582                         }
583                         if (B[i] == B[j])
584                         {
585                             B[i] = minfigure + rand() % maxfigure;
586                             j = 0;
587                         }
588                     }
589                 }
590             }
591             ofstream fileout;
592             fileout.open("biaodashi.txt", ios::out);
593             for (i = 0; i < count; i++)
594             {
595                 if (A[i]>B[i])
596                 {
597                     int suanfu = rand() % 2;
598                     switch (suanfu)
599                     {
600                     case 0:
601                         fileout << A[i] << " + " << B[i] << "=" << endl; break;
602                     case 1:
603                         fileout << A[i] << " - " << B[i] << "=" << endl; break;
604                     }
605                 }
606                 else
607                 {
608                     int copyA = A[i];
609                     int copyB = B[i];
610                     int beichushuA = maxfigure;
611                     int beichushuB = maxfigure;
612                     int firstA = beichushuA% copyA;
613                     int firstB = beichushuB% copyB;
614                     while (firstA != 0)
615                     {
616                         int temp = copyA;
617                         copyA = beichushuA%copyA;
618                         beichushuA = temp;
619                         firstA = beichushuA%copyA;
620                     }
621                     while (firstB != 0)
622                     {
623                         int temp = copyB;
624                         copyB = beichushuB%copyB;
625                         beichushuB = temp;
626                         firstB = beichushuB%copyB;
627                     }
628                     int suanfu = rand() % 2;
629                     switch (suanfu)
630                     {
631                     case 0:
632                         fileout << A[i] / copyA << "/" << maxfigure / copyA << " + " << B[i] / copyB << "/" << maxfigure / copyB << "=" << endl; break;
633                     case 1:
634                         fileout << B[i] / copyB << "/" << maxfigure / copyB << " - " << A[i] / copyA << "/" << maxfigure / copyA << "=" << endl; break;
635                     }
636                 }
637             }
638             fileout.close();
639         }
640     }
641 }

??? 運行結果截圖如下所示:

???

???

???

???

???

??? 項目計劃總結表:

周活動總結表????????????????????? 日期:2016年3月12日
日期\任務聽課編寫程序閱讀課本日總結
周一 3.72114
周二 3.8????
周三 3.9?213
周四 3.102?13
周五 3.11?3?3
周六 3.12?8?8
周日 3.13????
周總計414321

??? 時間記錄日志:???

日期開始時間結束時間中斷時間凈時間活動備注
3.714:0016:00?2聽課,改程序?
?20:0021:00?1看課本?
?21:2022:20?1寫程序?
3.8??????
3.914:3018:000.53寫程序,看課本洗衣服
3.1019:0022:00?3上課,看書?
3.1119:0022:00?3寫程序?
3.128:0012:00?4寫程序?
?13:0017:00?4寫程序?
3.13??????

??? 缺陷記錄日志:

日期編號類型引入階段排除階段修復時間修復缺陷
3.71?編譯編譯5min?
描述:for循環中的循環條件不對
3.8??????
??????
3.92?編碼編碼1min?
描述:if和else不匹配
3.10??????
??????
3.113?編碼編碼2h?
描述:主程序邏輯結構不正確
3.124?編碼編碼3h?
描述:邏輯功能嵌套不完善

?

???

???

轉載于:https://www.cnblogs.com/hulidanxiang/p/5269460.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255796.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255796.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255796.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ABB機器人的 備份與恢復

保存內容 備份功能可保存上下文中的所有系統參數、系統模塊和程序模塊。 備份內容 數據保存于用戶指定的目錄中。 默認路徑可加以設置。 目錄分為四個子目錄&#xff1a;Backinfo、Home、Rapid 和 Syspar。 System.xml 也保存于包含用戶設置的 ../backup &#xff08;根…

flask項目開發中,遇到http 413錯誤

在flask項目中&#xff0c;上傳文件時后臺報http 413 Request Entity Too Large 請求體太大錯誤&#xff01; 解決的2種方法&#xff1a; 1.在flask配置中設置 MAX_CONTENT_LENGTH的值; 如設置為20M ( MAX_CONTENT_LENGTH20*1024*1024) 這時小于20M的文件都可以上傳 相關連接&…

【機器視覺】——畸變與矯正

目錄 一、什么是畸變?畸變的原因是什么? 1、徑向畸變(桶形畸變和枕形畸變)

ApplicationContextAware 接口

一、這個接口有什么用&#xff1f; 當一個類實現了這個接口&#xff08;ApplicationContextAware&#xff09;之后&#xff0c;這個類就可以方便獲得ApplicationContext中的所有bean。換句話說&#xff0c;就是這個類可以直接獲取spring配置文件中&#xff0c;所有有引用到的be…

Java之泛型練習

package cn.itcast.generics;import java.util.Comparator; import java.util.Iterator; import java.util.TreeSet;/** 方法一&#xff1a;實現Comparable接口*/ //class Person implements Comparable<Person> {//實現Comparable接口&#xff0c;使得集合元素具備可比較…

ABB 配置文件

配置文件 配置文件是列出系統參數值的文本文件。 注意&#xff1a; 如果該參數指定默認值&#xff0c;那么就不會被列在 配置文件。 控制器中有六個配置區域&#xff0c;配置文件保存為后綴 .CFG文件。 配置文件默認保存在系統文件夾SYSPAR&#xff0c;例如.. \ MySystem\ …

巨杉db

巨杉數據庫 and mongo db ,分布式數據庫&#xff0c; 轉載于:https://www.cnblogs.com/feiyun8616/p/8178116.html

【深度學習】——物體檢測細節處理(NMS、樣本不均衡、遮擋物體)

目錄 一、候選框大量重疊問題 1、NMS核心思想 2、 步驟&#xff1a; 3、缺陷 4、改進 1&#xff09;soft NMS——衰減的方式來減小預測框的分類得分 2&#xff09;softer nms——增加了位置置信度 二、樣本不平衡問題 1、不平滑的來源&#xff08;3方面&#xff09; 1&a…

忙著,快樂著

無比充實的周末&#xff0c;好久沒有這樣忙過了&#xff0c;周六早上七點多起床去上考研課&#xff0c;上了整整一天&#xff0c;晚上回到寢室用吃飯的時間讓自己放松一下&#xff0c;看了一會兒綜藝節目&#xff0c;吃晚飯就開始寫這次的代碼&#xff0c;寫累了就去洗洗睡了&a…

ABB Fronius TPS 4000/5000 IRC5 接口

在RobotStudio生成機器人系統時&#xff0c;選擇&#xff1a; Power Source option 650-9 Fronius TPS 4000/5000。Fronius的設備類別和設置被激活。此選項支持福尼斯TPS 4000/5000弧焊電機&#xff0c;包括支持三種焊接模式&#xff1a; 1 Job模式 2 修正的Job模式 …

ASP.NET 實現Base64文件流下載PDF

因為業務需要調用接口獲取的是 Base64文件流 需要提供給客戶下載PDF文檔 源碼部分借鑒網上&#xff0c;具體地址忘記了。 //Base64文件流 byte[] buffer Convert.FromBase64String(decodedString); System.IO.Stream iStream new System.IO.MemoryStream(buffer);try{int len…

Viewpager無限循環(首頁與尾頁平滑過渡)

#Viewpager無限循環(首頁與尾頁平滑過渡) ##double kill 在網上找了不少的viewpager無限輪播的例子&#xff0c;大部分都是Interger.MAX_VALUES。 滑到最后一頁的時候setCurrentItem(0),這樣雖然實現了無限輪播&#xff0c;但是當從最后一頁跳轉到第一頁的時候不夠優雅。。通過…

【深度學習】——物體檢測的難點

目錄 一、小物體檢測 1、降采樣率減小 空洞卷積 2、anchor設計 1&#xff09;統計方法 2&#xff09;anchor邊框聚類 3、多尺度訓練&#xff08;multi scale training——MST&#xff09; 4、 特征融合 一、小物體檢測 在分類任務中&#xff0c;一般物體的大小都差不多&a…

ABB 機器人 通信指令(人機對話):

&#xff08;1&#xff09;清屏指令&#xff1a;TPErase &#xff08;2&#xff09;寫屏指令&#xff1a;PWrite String   tring&#xff1a;顯示的字符串。(string)在示教器顯示屏上顯示字符串數據&#xff0c;也可以用“……”形式直接定義字符串&#xff0c;每一個寫屏…

hadoop streaming編程小demo(python版)

大數據團隊搞數據質量評測。自動化質檢和監控平臺是用django&#xff0c;MR也是通過python實現的。(后來發現有orc壓縮問題&#xff0c;python不知道怎么解決&#xff0c;正在改成java版本) 這里展示一個python編寫MR的例子吧。 抄一句話&#xff1a;Hadoop Streaming是Hadoop提…

Asp.net在IE10、IE11下事件丟失經驗總結

asp.net4.0出生得比IE10早&#xff0c;所以asp.net4.0以前版本不認識IE10 的 User-Agent 標頭&#xff0c;導致的后果就是ASP.NET 特定功能失效&#xff0c;例如&#xff1a;頁面報錯__doPostBack找不到&#xff0c;不支援 Cookies 功能等等。這屬于.net的Bug&#xff0c;微軟也…

第6章 循環結構

循環語句: 可以讓一部分代碼,反復執行 1.1 循環語句while while循環: 編寫格式:while(條件){ 循環體 } 條件: 當條件是true,就執行循環體,執行完循環體后 程序再次執行while中的條件,如果條件還是true,繼續執行循環體 直到條件是false的時候,循環就結束 public class WhileDem…

【深度學習】——pytorch搭建模型及相關模型

目錄 1、搭建模型的流程 1&#xff09;步驟 2&#xff09;完整代碼——手寫minist數據集為例&#xff08;這里使用的數據集是自帶的&#xff09; 2、搭建模型的四種方法 1&#xff09;方法一——利用nn.Sequential&#xff08;&#xff09; 2&#xff09;方法二——利用co…

ABB robot 與 Fronius 設備 IO

ABB robot 與 Fronius 設備 IO