源代碼地址:https://git.coding.net/c_xx/02.gitgit
題目描述:app
需求分析:函數
功能設計:學習
代碼說明:測試
爲了實現需求,共設計了4個功能函數,分別是:編碼
char Operator() //隨機選取運算符
int maxNumber(int k, int l) //展轉相除法求最大公約數函數
void integer() //整數運算
void fraction() //真分數運算
char Operator() //隨機選取運算符 { char op; srand(time(0)); int i=rand()%4+1; switch(i) { case 1: return '+'; case 2: return '-'; case 3: return '*'; case 4: return '/'; } }
int maxNumber(int k, int l) //展轉相除法求最大公約數函數 { while(k%l!=0){ int t=k%l; k=l; l=t; } return l; }
void integer() //整數運算 { int g; int x,y; char op; srand(time(0)); x=rand()%100+1; y=rand()%100+1; op=Operator(); cout<<x<<op<<y<<"="<<endl; cout<<"請輸入運算結果:"; if(op=='+') //整數「+」運算 { cin>>g; if(g==x+y) { cout<<"恭喜你答對了!"<<endl<<endl; correct++; } else { cout<<"很遺憾你答錯了,正確答案是:"<<x+y<<endl<<endl; mistake++; } } else if(op=='-') //整數「-」運算 { cin>>g; if(g==x-y) { cout<<"恭喜你答對了!"<<endl<<endl; correct++; } else { cout<<"很遺憾你答錯了,正確答案是:"<<x-y<<endl<<endl; mistake++; } } else if(op=='*') //整數「*」運算 { cin>>g; if(g==x*y) { cout<<"恭喜你答對了!"<<endl<<endl; correct++; } else { cout<<"很遺憾你答錯了,正確答案是:"<<x*y<<endl<<endl; mistake++; } } else if(op=='/') //整數「/」運算 { cin>>result; element=x; denominator=y; maxNum=maxNumber(element,denominator); element=element/maxNum; denominator=denominator/maxNum; if(denominator!=1) { sprintf_s(answer, "%d/%d",element ,denominator); if (strcmp(answer, result) == 0) { cout<<"恭喜你答對了!"<<endl<<endl; correct++; } else { cout<<"很遺憾你答錯了,正確答案是:"<<answer<<endl<<endl; mistake++; } } else { sprintf_s(answer, "%d",element); if (strcmp(answer, result) == 0) { cout<<"恭喜你答對了!"<<endl<<endl; correct++; } else { cout<<"很遺憾你答錯了,正確答案是:"<<answer<<endl<<endl; mistake++; } } } }
void fraction() //真分數運算 { srand(time(NULL)); memset(result,0, sizeof(result)); memset(answer,0, sizeof(answer)); int a,b,c,d; a=rand()%100+1; b=rand()%100+1; c=rand()%100+1; d=rand()%100+1; char op; while(a<=b||c<=d) { a=rand()%100+1; b=rand()%100+1; c=rand()%100+1; d=rand()%100+1; } op=Operator(); cout<<"("<<b<<"/"<<a<<")"<<op<<"("<<d<<"/"<<c<<")"<<"="<<endl; cout<<"請輸入運算結果:"; cin>>result; if(op=='+') //分數「+」運算 { element=(b*c)+(a*d); denominator=a*c; maxNum=maxNumber(element,denominator); element=element/maxNum; denominator=denominator/maxNum; if(denominator!=1) { sprintf_s(answer, "%d/%d",element ,denominator); if (strcmp(answer, result) == 0) { cout<<"恭喜你答對了!"<<endl<<endl; correct++; } else { cout<<"很遺憾你答錯了,正確答案是:"<<answer<<endl<<endl; mistake++; } } else { sprintf_s(answer, "%d",element); if (strcmp(answer, result) == 0) { cout<<"恭喜你答對了!"<<endl<<endl; correct++; } else { cout<<"很遺憾你答錯了,正確答案是:"<<answer<<endl<<endl; mistake++; } } } else if(op=='-') //分數「-」運算 { element=(b*c)-(a*d); denominator=a*c; maxNum=maxNumber(element,denominator); element=element/maxNum; denominator=denominator/maxNum; if(denominator!=1) { sprintf_s(answer, "%d/%d",element ,denominator); if (strcmp(answer, result) == 0) { cout<<"恭喜你答對了!"<<endl<<endl; correct++; } else { cout<<"很遺憾你答錯了,正確答案是:"<<answer<<endl<<endl; mistake++; } } else { sprintf_s(answer, "%d",element); if (strcmp(answer, result) == 0) { cout<<"恭喜你答對了!"<<endl<<endl; correct++; } else { cout<<"很遺憾你答錯了,正確答案是:"<<answer<<endl<<endl; mistake++; } } } else if(op=='*') //分數「*」運算 { element=b*d; denominator=a*c; maxNum=maxNumber(element,denominator); element=element/maxNum; denominator=denominator/maxNum; if(denominator!=1) { sprintf_s(answer, "%d/%d",element ,denominator); if (strcmp(answer, result) == 0) { cout<<"恭喜你答對了!"<<endl<<endl; correct++; } else { cout<<"很遺憾你答錯了,正確答案是:"<<answer<<endl<<endl; mistake++; } } else { sprintf_s(answer, "%d",element); if (strcmp(answer, result) == 0) { cout<<"恭喜你答對了!"<<endl<<endl; correct++; } else { cout<<"很遺憾你答錯了,正確答案是:"<<answer<<endl<<endl; mistake++; } } } else if(op=='/') //分數「/」運算 { element=b*c; denominator=a*d; maxNum=maxNumber(element,denominator); element=element/maxNum; denominator=denominator/maxNum; if(denominator!=1) { sprintf_s(answer, "%d/%d",element ,denominator); if (strcmp(answer, result) == 0) { cout<<"恭喜你答對了!"<<endl<<endl; correct++; } else { cout<<"很遺憾你答錯了,正確答案是:"<<answer<<endl<<endl; mistake++; } } else { sprintf_s(answer, "%d",element); if (strcmp(answer, result) == 0) { cout<<"恭喜你答對了!"<<endl<<endl; correct++; } else { cout<<"很遺憾你答錯了,正確答案是:"<<answer<<endl<<endl; mistake++; } } } }
測試運行:spa
PSP展現:.net