四則運算改進版
編譯環境: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 }
-----------------------------------------------------本次實驗報告到此結束,謝謝老師審閱-------------------------------------------------------------------