1. 程式人生 > >四則運算升級版

四則運算升級版

  關於四則運算的問題,我的第一條部落格已經有所解決;而現在,我要解決在我這個介面內,可以做到即時答題,並且可以即時得出對錯。

並將錯誤的題目記錄下來,我通過寫檔案的方法儲存了錯題。

  線上答題的解決方法:當隨機產生了一個題目之後,便設定輸入變數值,從而達到線上答題的效果,與此同時,若答錯了,則將此題目寫入檔案中。

具體程式碼如下:

 1 #include<iostream>
 2 #include<fstream>
 3 #include<time.h>
 4 #include<stdlib.h> //呼叫隨機函式;
5 using namespace std; 6 int main() 7 { 8 srand((unsigned)time(NULL));//使隨機產生的題目不重複; 9 int x,y,n;//x,y為隨機數,n為題目數量; 10 int ch; 11 cout<<"輸入要做的題目數量:"; 12 cin>>n; 13 float a,b; 14 ofstream ofile; //定義輸出檔案。 15 ofile.open("E:\\資訊作業\\軟體工程概論\\錯題本.txt
"); //作為輸出檔案開啟。 16 ofile<<"錯題:"<<endl; //標題寫入檔案。 17 for(int i=1;i<=n;i++) 18 { 19 x=rand()%100;y=rand()%100; 20 ch=rand()%4; 21 switch(ch) 22 { 23 case 0:cout<<x<<"+"<<y<<"="<<" ";b=x+y;cin>>a; 24 if
(a==b) 25 cout<<""<<endl; 26 else 27 { 28 cout<<"×"<<endl; 29 ofile<<x<<"+"<<y<<"="<<" "<<a<<endl; 30 } 31 break; 32 case 1:cout<<x<<"-"<<y<<"="<<" ";b=x-y;cin>>a; 33 if(a==b) 34 cout<<""<<endl; 35 else 36 { 37 cout<<"×"<<endl; 38 ofile<<x<<"-"<<y<<"="<<" "<<a<<endl; 39 } 40 break; 41 case 2:cout<<x<<"*"<<y<<"="<<" ";b=x*y;cin>>a; 42 if(a==b) 43 cout<<""<<endl; 44 else 45 { 46 cout<<"×"<<endl; 47 ofile<<x<<"*"<<y<<"="<<" "<<a<<endl; 48 } 49 break; 50 case 3: 51 while(y==0) 52 { 53 y=rand()%100; 54 } 55 cout<<x<<"/"<<y<<"="<<" ";b=(float)x/y;cin>>a; 56 if(a==b) 57 cout<<""<<endl; 58 else 59 { 60 cout<<"×"<<endl; 61 ofile<<x<<"/"<<y<<"="<<" "<<a<<endl; 62 } 63 } 64 //if(i%10==0) 65 //cout<<endl; 66 } 67 ofile.close(); 68 system("pause"); 69 return 0; 70 }

測試結果如圖: