要求
1分别能够实现小学一、二、三、四、五年级的四则运算要求, 逐步实现各个年级的难度
2要求能够通过输入来选择不同年级,每个年级还得区分难,中,易三个等级
3对于三、四、五年级需要支持括号与多个运算符
4程序支持判断对错及累计得分与时间
5一次可以出100道题目,而且不能重复(比如2+3 与 3+2 算重复的)
6充分发挥想象增加满足小学生数学检测需要的功能
————————————————————————————————————————————————————————————————————————————————
个人遇到的问题与总结
1 程序编写上的困难,由于对于语言不是很熟悉,在编写程序上遇到了不小的难度,网上查找了不少的资料和他人的程序。
2 安装git上的困难 一开始是按照发的教程去官网下载,可始终下载不成功,询问老师老师也给的官网地址,最好经由百度了解,git官网下载是较为困难的,最后是通过网上查找,寻找到了镜像地址,才能成功下载。[git下载windows](https://cdn.npm.taobao.org/dist/git-for-windows/v2.23.0-rc2.windows.1/Git-2.23.0.rc2.windows.1-64-bit.exe)
3 在连接本地库和远程库是,git add 命令总是显示不成功,最后经过查找得知,可以直接在文件夹里创建然后在使用git add
——————————————————————————————————————————————————————————————————————————————————
程序运行截图
代码部分
#include<iostream>
#include<stdarg.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#include<fstream>
using namespace std;
int main()
{
ofstream Savefile;
Savefile.open("cpp-home.txt");
cout<<endl;
cout<<"小学四则运算库"<<endl;
cout<<endl;
cout<<endl;
Again:
double Q1=1;
int Q01;
int Q2=1;
int Q3=100;
char Q4='y';
int Q5=1;
char Q6='n';
char Q7='n';
double ans=0;
int right=0;
cout<<" 输入题目数量:";
cin>>Q1;
Q01=floor(Q1);
// cout<<"输入每行打印题目数(1-5):";
// cin>>Q2;
cout<<" 每行间距(正整数):";
cin>>Q5;
cout<<" 请输入算式中数值的最大值:";
cin>>Q3;
while(1)
{
cout<<" 是否为三年级以上学生?是:y;不是:n";
cin>>Q4;
cout<<" 难易程度 难:1;中:2;易:3 ";
cin>>Q7;
cout<<"-------------------------------------------------------------------------"<<endl;
cout<<"开始进行答题:"<<endl;
srand(time(NULL));
if(Q4=='y')
{
while(1)
{
if(Q1<1)
{
cout<<"输入有误,请重新输入题目数量:";
cin>>Q1;
Q01=floor(Q1);
}
else
{
for(int j=0;j<Q01;j++)
{
if(j!=0&&j%Q2==0)
{
for(int i=0;i<Q5;i++)
{
cout<<endl;
}
}
int num1=rand()%Q3;
int num2=rand()%Q3;
int sign=rand()%4;
switch(sign)
{
case 0:
cout<<j+1<<":"<<" "<<num1<<"+"<<num2<<"="<<" ";
cin>>ans;
if(ans==num1+num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
Savefile<<j+1<<":"<<" "<<num1<<"+"<<num2<<"="<<ans<<" ";
Savefile<<"答错了"<<endl;
cout<<"正确答案是:"<<num1+num2<<endl;
Savefile<<"正确答案是:"<<num1+num2<<endl;
}
break;
case 1:
if(Q7=='y')
{
cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<" ";
cin>>ans;
if(ans==num1-num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1-num2<<endl;
Savefile<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<ans<<" ";
Savefile<<"答错了"<<endl;
Savefile<<"正确答案是:"<<num1-num2<<endl;
}
}
else
{
if(num1>num2)
{
cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<" ";
cin>>ans;
if(ans==num1-num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1-num2<<endl;
Savefile<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<" ";
Savefile<<"答错了"<<endl;
Savefile<<"正确答案是:"<<num1-num2<<endl;
}
}
else
{
cout<<j+1<<":"<<" "<<num2<<"-"<<num1<<"="<<" ";
cin>>ans;
if(ans==num2-num1)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num2-num1<<endl;
Savefile<<j+1<<":"<<" "<<num2<<"-"<<num1<<"="<<ans<<" ";
Savefile<<"答错了"<<endl;
Savefile<<"正确答案是:"<<num2-num1<<endl;
}
}
}
break;
case 2:
cout<<j+1<<":"<<" "<<num1<<"*"<<num2<<"="<<" ";
cin>>ans;
if(ans==num1*num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1*num2<<endl;
Savefile<<j+1<<":"<<" "<<num1<<"*"<<num2<<"="<<ans<<" ";
Savefile<<"答错了"<<endl;
Savefile<<"正确答案是:"<<num1*num2<<endl;
}
break;
case 3:
if(num2!=0)
{
cout<<j+1<<":"<<" "<<num1<<"/"<<num2<<"="<<" ";
cin>>ans;
if(ans==num1/num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1/num2<<endl;
Savefile<<j+1<<":"<<" "<<num1<<"/"<<num2<<"="<<ans<<" ";
Savefile<<"答错了"<<endl;
Savefile<<"正确答案是:"<<num1/num2<<endl;
}
}
else
{
j--;
}
break;
}
}
break;
}
}
cout<<"共答对"<<right<<"道题;"<<"答错"<<Q01-right<<"道题。";
break;
}
if(Q4=='n')
{
while(1)
{
if(Q01<1)
{
cout<<"输入有误,请重新输入题目数量:";
cin>>Q1;
Q01=floor(Q1);
}
else
{
for(int j=0;j<Q01;j++)
{
if(j!=0&&j%Q2==0)
{
for(int i=0;i<=Q5;i++)
{
cout<<endl;
}
}
int num1=rand()%Q3;
int num2=rand()%Q3;
int sign=rand()%2;
switch(sign)
{
case 0:
cout<<j+1<<":"<<" "<<num1<<"+"<<num2<<"="<<" ";
cin>>ans;
if(ans==num1+num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1+num2<<endl;
Savefile<<j+1<<":"<<" "<<num1<<"+"<<num2<<"="<<ans<<" ";
Savefile<<"答错了"<<endl;
Savefile<<"正确答案是:"<<num1+num2<<endl;
}
break;
case 1:
if(Q7=='y')
{
cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<" ";
cin>>ans;
if(ans==num1-num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1-num2<<endl;
Savefile<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<ans<<" ";
Savefile<<"答错了"<<endl;
Savefile<<"正确答案是:"<<num1-num2<<endl;
}
break;
}
else
{
if(num1>num2)
{
cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<" ";
cin>>ans;
if(ans==num1-num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1-num2<<endl;
Savefile<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<ans<<" ";
Savefile<<"答错了"<<endl;
Savefile<<"正确答案是:"<<num1-num2<<endl;
}
break;
}
else
{
cout<<j+1<<":"<<" "<<num2<<"-"<<num1<<"="<<" ";
cin>>ans;
if(ans==num2-num1)
{
cout<<"正确";
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num2-num1<<endl;
Savefile<<j+1<<":"<<" "<<num2<<"-"<<num1<<"="<<ans<<" ";
Savefile<<"答错了"<<endl;
Savefile<<"正确答案是:"<<num2-num1<<endl;
}
break;
}
}
break;
}
}
}
break;
}
cout<<"共答对"<<right<<"道题;"<<"答错"<<Q01-right<<"道题。"<<endl;
break;
}
else
{
cout<<"输入有误,请按要求输入!"<<endl;
}
}
cout<<endl;
while(1)
{
cout<<"是否继续?(y:继续;n:退出)";
cin>>Q6;
if(Q6=='y')
{
goto Again;
}
if(Q6=='n')
{
goto Exit;
}
else
{
cout<<"输入有误,请重新输入:";
}
}
Savefile.close();
Exit:
// SaveFile.close();
return 0;
}