程式要求:兩個運算子,100以內的數字,不需要寫答案。
需要檢查答案是否正確,並且保證答案在0-100之間。
本次作業由2252312和2252413共同完成
由2252312釋出部落格園
執行環境:Windows10教育版
開發環境:devc++
語言:C++
處理器:11th Gen Intel(R) Core(TM) i7-11700@2.5GHz 2.50GHz
以下是原始碼
點選檢視程式碼
#include <iomanip>
#include<iostream>
#include<cstdlib>
#include<ctime>
#include<fstream>
using namespace std;
int main()
{
clock_t T1,T2;
int S,N=-1,Answer=1,Answer_right=0;
double accuracy=0;
for(T2 = clock();Answer<=300;){
srand(time(NULL));
int a,b;
a= rand() %100;
b= rand() %100;
int e= rand() % 3+ 1;
if(e==1){
S=a+b;
if(S<=100){
cout<<"第"<<Answer<<"題:" ;
cout<<a<<"+"<<b<<"=";
cin>>N;
Answer++;
}
}
else if(e==2){ //減法
S=a-b;
if(S<=100&&S>=0){
cout<<"第"<<Answer<<"題:" ;
cout<<a<<"-"<<b<<"=";
cin>>N;
Answer++;
}
}
else if(e==3){ //乘法
S=a*b;
if(S<=100&&S>=0){
cout<<"第"<<Answer<<"題:" ;
cout<<a<<"*"<<b<<"=";
cin>>N;
Answer++;
}
}
else if(e==4){ //除法
if(b!=0&&a%b==0){
S=a/b;
if(S<=100&&S>=0){
cout<<"第"<<Answer<<"題:" ;
cout<<a<<"/"<<b<<"=";
cin>>N;
Answer++;
}
}
}
if(N==S){
cout<<"再獎勵你一題!"<<endl;
system("pause");
Answer_right++;
N=-1;
}
else if(N!=-1){
cout<<"這都能算錯?菜!你就多練!"<<endl;
ofstream ofs;
ofs.open("file.txt", ios::app);
if(e==1){
ofs<<a<<"+"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
}
else if(e==2){
ofs<<a<<"-"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
}
else if(e==3){
ofs<<a<<"*"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
}
else if(e==4){
ofs<<a<<"/"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
}
ofs.close();
system("pause");
N=-1;
}
if((Answer-1)%10==0)
system("cls");
}
T2 = clock();
int time=(int)(T2-T2)/CLOCKS_PER_SEC;
Answer=Answer-1;
accuracy=(double)Answer_right/(double)Answer;
cout<<"恭喜做完本輪300試題,您本次的正確率為:"<<fixed<<setprecision(2)<<accuracy*100<<"%"<<endl;
return 0;
}
遇到的問題以及解決方案:
透過記事本批次修改定義不明確的定義時,將大量資料修改,使得程式碼不能夠正常使用。
解決方案:使用事先存檔的程式碼進行讀檔,再逐行程式碼進行修改。
程式碼編譯過於繁亂,除了編譯者以外的人看不懂。
點選檢視程式碼
if(N==S){
cout<<"再獎勵你一題!"<<endl;
system("pause");
Answer_right++;
N=-1;}
else if(N!=-1){ cout<<"這都能算錯?菜!你就多練!"<<endl;
ofstream ofs;
ofs.open("file.txt", ios::app);
if(e==1){ ofs<<a<<"+"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
}
else if(e==2){ofs<<a<<"-"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
}
else if(e==3){ofs<<a<<"*"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;}
else if(e==4){
ofs<<a<<"/"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
}
ofs.close();
system("pause");
N=-1;}
點選檢視程式碼
else if(N!=-1){
cout<<"這都能算錯?菜!你就多練!"<<endl;
ofstream ofs;
ofs.open("file.txt", ios::app);
if(e==1){
ofs<<a<<"+"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
}
else if(e==2){
ofs<<a<<"-"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
}
else if(e==3){
ofs<<a<<"*"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
}
else if(e==4){
ofs<<a<<"/"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
}
ofs.close();
system("pause");
N=-1;
}
執行截圖:
心得與體會:
經過本次結對程式設計實驗,我們對結對程式設計有了更深刻的體會。一是感覺結對程式設計效率比較高,在程式設計的過程中雙方就能實時交流,能及時提出建議或是改正錯誤,並且由於隨時準備交流,所以專注度高。二是結對程式設計能實現相對更完整的程式,兩個人的頭腦風暴更能夠讓程式完整的呈現。三是結對程式設計有助於雙方能力的提升,每個人的程式碼風格不同,透過與不同人的程式碼交流,會發現自己的程式碼有許多不足的地方,也會幫助他人進行c++的反思。總的來說,本次結對程式設計實驗收穫頗豐!