程序要求:两个运算符,100以内的数字,不需要写答案。
需要检查答案是否正确,并且保证答案在0-100之间。
本次作业由2252312和2252413共同完成
由2252312发布博客园
运行环境:Windows10教育版
开发环境:devc++
语言:C++
处理器:11th Gen Intel(R) Core(TM) [email protected] 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++的反思。总的来说,本次结对编程实验收获颇丰!