四則運算改進版+心得體會+總結

蘇亦晨發表於2015-04-02

四則運算改進版

編譯環境:Visual C++ 6.0(完整綠色版)

開發人員:Ives

開發時間:2015-04-02

實現功能:

    1.基本的加減乘除

    2.每次出20道題目,會顯示答對的數目和得分

    3.能出於分數相關的運算

      4.能過輸入真分數

    5.回答錯題目會顯示正確的答案

    6.答對題目的提示和打錯題目提示都不相同,不會產生時間疲勞

缺點:

    1.輸入分數有時候會出錯

    2.輸入其他字元也會出現錯誤

    3.不能選擇計算的最大數值

    4.不能使用者選擇做什麼運算

           ......

個人體會:

    1.能力還是不足,一些思路還是想不到

    2.要多參考其它同學的程式碼,多多少少都能學到一些東西

    3.寫程式碼一定要規範,不然他人看不懂你的程式碼

總結:

    一定要多動腦子去思考,應該怎麼設計,為什麼要這樣設計,一定要有一個清晰的思路再去寫程式碼。因為編寫程式碼其實是很簡單的一個工作,如果你有了一個清晰的思路。其實在寫程式的時候,測試也很重要的,在編碼的同時一起測試,除錯,到了完成整個程式的時候才不會出現一大堆BUG,這個花的時間去除錯會更多,拖延了程式的完成時間。

下面這個圖說明的是,理解問題的要求應該是第一位,再然後是設計資料結構和演算法,因為這兩步做好了,那麼程式也差不多完成一半了,所以以後開發程式的時候,一定要弄清楚這個程式的架構,你要怎麼樣去設計它,,它用到的演算法,用到的資料結構,一旦這些都清晰了,那麼編碼是在容易不過的事情了。

   加油。

 

 

下圖是執行的結果截圖(共3張):

 

 

下面是原始碼:

 

  1 #include<stdio.h>
  2 #include<stdlib.h>
  3 #include<time.h>    
  4 int amount = 0;
  5 void inface()
  6 {
  7      printf("\t\t--------------------------------------\n");
  8     printf("\t\t-                                    -\n");
  9     printf("\t\t-                                    -\n");
 10     printf("\t\t-            四則運算系統            -\n");
 11     printf("\t\t-                                    -\n");
 12     printf("\t\t-                                    -\n");
 13     printf("\t\t-                       Ives 14.3.26 -\n");
 14     printf("\t\t--------------------------------------\n");
 15 
 16 }
 17 int Random(int n,int m)//隨機生成n~m的整數
 18 {
 19     int op;
 20     srand(time(NULL));
 21     op = rand()%m+n;
 22     return op;
 23 }
 24 
 25 int Rigth()
 26 {
 27     int n;
 28     n = Random(1,4);
 29     switch(n){
 30         case 1:
 31             printf("恭喜你,你答對了!\n");
 32             break;
 33         case 2:
 34             printf("你真棒,你答對了!\n");
 35             break;
 36         case 3:
 37             printf("你真聰明,你答對了!\n");
 38             break;
 39         case 4:
 40             printf("。。。。。。。答對了!\n");
 41             break;
 42         default:
 43             break;
 44     }
 45     amount++;
 46     return amount;
 47 }
 48 
 49 void Wrong()
 50 {
 51     int n;
 52     n = Random(1,4);
 53     switch(n){
 54         case 1:
 55             printf("回答錯誤!\n");
 56             break;
 57         case 2:
 58             printf("錯了,再接再厲\n");
 59             break;
 60         case 3:
 61             printf("沒關係,這次錯了,下次加油!\n");
 62             break;
 63         case 4:
 64             printf("回答錯了,揉揉眼睛繼續努力!\n");
 65             break;
 66     }
 67 }
 68 
 69 void operation()
 70 {
 71     int a;
 72     int b;
 73     int c;
 74     int d;
 75     int fz;
 76     int fm;
 77     int ou;
 78     int answer;
 79     int answer1;
 80     int ture=0;
 81 
 82     ou=Random(1,8);
 83     a = Random(1,10);
 84     b = Random(2,11);
 85     c = Random(2,9);
 86     d = Random(1,10);
 87     
 88     switch(ou){
 89         case 1:
 90             printf("%d+%d=",a,b);
 91             scanf("%d",&answer);
 92             if(answer == a+b)
 93                 Rigth();
 94             else
 95             {
 96                 Wrong();
 97                 printf("正確的答案是:%d\n",a+b);
 98             }
 99             break;
100         case 2:
101             printf("%d-%d=",a,b);
102             scanf("%d",&answer);
103             if(answer == a-b)
104                 Rigth();
105             else
106             {
107                 Wrong();
108                 printf("正確的答案是:%d\n",a-b);
109             }
110             break;
111         case 3:
112             printf("%d*%d=",a,b);
113             scanf("%d",&answer);
114             if(answer == a*b)
115                 Rigth();
116             else
117             {
118                 Wrong();
119                 printf("正確的答案是:%d\n",a*b);
120             }
121             break;
122         case 4:
123             printf("%d/%d=",a,b);
124             if(a>b && a%b == 0)
125             {
126                 scanf("%d",&answer);
127                 if((float)answer == a/b)
128                     Rigth();
129                 else
130                 {
131                     Wrong();
132                     printf("正確的答案是:%d\n",a/b);
133                 }
134             }
135             else{
136                 scanf("%d/%d",&answer,&answer1);
137                 if(answer == a && answer1 == b)
138                     Rigth();
139                 else
140                 {
141                     Wrong();
142                     printf("正確的答案是:%d\n",a/b);
143                 }
144             }
145             break;
146         case 5:
147                 printf("%d/%d + %d/%d = ",a,b,c,d);
148                 scanf("%d/%d",&answer,&answer1);
149                 fz = (a*d)+(c*b);
150                 fm = b*d;
151                 if(answer/answer1 == fz/fm)
152                     Rigth();
153                 else
154                 {
155                     Wrong();
156                     printf("正確的答案是:%d\n",fz/fm);
157                 }
158                 break;
159         case 6:
160                 printf("%d/%d - %d/%d = ",a,b,c,d);
161                 scanf("%d/%d",&answer,&answer1);
162                 fz = (a*d)-(c*b);
163                 fm = b*d;
164                 if(answer/answer1 == fz/fm)
165                     Rigth();
166                 else
167                 {
168                     Wrong();
169                     printf("正確的答案是:%d\n",fz/fm);
170                 }
171                 break;
172         case 7:
173                 printf("%d/%d + %d/%d = ",a,b,c,d);
174                 scanf("%d/%d",&answer,&answer1);
175                 fz = a*c;
176                 fm = b*d;
177                 if(answer/answer1 == fz/fm)
178                     Rigth();
179                 else
180                 {
181                     Wrong();
182                     printf("正確的答案是:%d\n",fz/fm);
183                 }
184                 break;
185         case 8:
186                 printf("%d/%d + %d/%d = ",a,b,c,d);
187                 scanf("%d/%d",&answer,&answer1);
188                 fz = a*d;
189                 fm = b*c;
190                 if(answer/answer1 == fz/fm)
191                     Rigth();
192                 else
193                 {
194                     Wrong();
195                     printf("正確的答案是:%d\n",fz/fm);
196                 }
197                 break;
198             default:
199                 printf("系統出錯了!\n");
200                 printf("%d",ou);
201                 break;
202     }
203 }
204 
205 int main()
206 {
207     int n=1;
208     inface();
209     printf("本系統一共有20道題,請認真答題!");
210     while(n<=20){
211         printf("\n第%d道題:  ",n);
212         operation();
213         n++;
214     }
215     printf("你答對了%d道題,得分是:%d\n",amount,amount*5);
216     
217     return 0;
218 
219 }

 

 

-----------------------------------------------------本次實驗報告到此結束,謝謝老師審閱-------------------------------------------------------------------

相關文章