#include
#include
#pragma comment(lib, "winmm.lib")
#include
#include
using namespace std;
//#include"class.h" //预编译用户的头文件
//#include"class2.h" //由于不好分文件上传,这几行只好注释掉了
//#include"function.h" //读者可以自己动手分成几个文件
int KY1=1,KY2=1; //判断程序入口,避免goto语句
class Timu //#include"class.h"
{
public:
int c;
Timu(); //构造函数
Timu(Timu &p); //拷贝构造函数
~Timu(){} //析构函数
void Chuti(char n);
void Jia();
void Jian();
void Hunhe();
void Cheng();
private:
int a,b; //记录题目
int d,e; //用于混合运算
};
Timu::Timu() //构造函数 //#include"class2.h"
{
a=b=c=d=e=0;
}
Timu::Timu(Timu &p) //拷贝构造函数
{
a=p.a;
b=p.b;
c=p.c;
d=p.d;
e=p.e;
}
void Timu::Chuti(char n) //根据用户输入进行出题
{
switch(n)
{
case 49:Jia();break;
case 50:Jian();break;
case 51:Hunhe();break;
case 52:Cheng();break;
}
}
void Timu::Jia()
{
a=rand()%50; //产生两个50以内的随机数
b=rand()%50;
c=a+b;
}
void Timu::Jian()
{
int swp;
a=rand()%50; //产生两个50以内的随机数 //会出现连续0答案//
b=rand()%50;
if(a
c=a-b;
}
void Timu::Hunhe()
{
int swp;
e=rand()%4; //0(++)1(+-)2(-+)3(--)
a=rand()%50;
b=rand()%50;
if(e>=2&&a
if(e==0){d=rand()%50;c=a+b+d;cout<
if(e==1){a+b>50?d=rand()%50:d=rand()%(a+b);c=a+b-d;cout<
if(e==2){d=rand()%50;c=a-b+d;cout<
if(e==3){d=rand()%(a-b);c=a-b-d;cout<
}
void Timu::Cheng()
{
a=rand()%10; //产生两个10以内的随机数
b=rand()%10;
c=a*b;
}
void main()
{
Timu Mytimu;
int point[4]={0,5,7,10}; //成绩选项
char ch1;
int i,j; //用于循环
int grade=0; //记录成绩
int start,end,time; //计时
int answer; //记录答案
void Welcome();
void End(int grade,int time);
void Exit();
char Intro();
char Help();
void Clear();
void Right(int n);
void Wrong(int n);
while(KY1!=0) //是否进入主程序
{
KY1=0;
KY2=1;
mciSendString(("play .\\music.mp3"),0,0,NULL); //音乐自选,可以注释掉
do
{
system("cls");
Welcome();
cin>>ch1;
Clear();
while(ch1<49||ch1>54) //限制输入
{
cout<<"输入错误,请重新输入"<
Clear();
cin>>ch1;
}
if(ch1==53)
ch1=Intro();
if(ch1==54)
ch1=Help();
}
while(ch1==53);
while(KY2!=0) //是否开始答题
{
KY2=0;
start=GetTickCount();
for(i=1;i<=10;i++) //主循环
{
Mytimu.Chuti(ch1);
for(j=3;j>=1;j--)
{
while(!(cin>>answer))
{
Clear();
cout<<"请输入数字"<
cin>>answer;
}
if(answer==Mytimu.c) //判断结果并作出回应
{
Right(j);grade+=point[j];;break;
}
else
{
Wrong(j);
if(j==1)
cout<<"正确的结果是"<
}
}
}
end=GetTickCount();
time=(end-start)/1000;
End(grade,time);
grade=0;
}
}
Exit();
}
//#include"function.h"
void Welcome() //主界面
{
cout<<"\t\t////////////////////WELCOME////////////////////\n";
cout<<"\t\t// //\n";
cout<<"\t\t// 欢迎来到我猜!我猜!我猜猜猜! //\n";
cout<<"\t\t// //\n";
cout<<"\t\t// 本软件适合小学一至二年级 //\n";
cout<<"\t\t// //\n";
cout<<"\t\t// //\n";
cout<<"\t\t// 作者一 作者二 //\n";
cout<<"||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n"<
cout<<"\t////////////////请输入并选择//////////////////////\n";
cout<<"\t// //\n";
cout<<"\t// 1.加法 2.减法 3.加减混合 4.乘法 //\n";
cout<<"\t// //\n";
cout<<"\t// 5.使用说明 6.九九表 //\n";
cout<<"\t//////////////////////////////////////////////////"<
}
void End(int grade,int time) //结果界面
{
extern KY1;
char ch;
cout<<"///////////////////////////////////////END/////////////////////\n";
cout<<"\t\t// //\n";
cout<<"\t\t// 成绩:"<
cout<<"\t\t// //\n";
cout<<"\t\t// 用时:"<
cout<<"\t\t// //\n";
cout<<"\t\t// 继续练习请输入 r //\n";
cout<<"\t\t// 退出请输入任意值 //\n";
cout<<"\t\t///////////////////////////////////////////////"<
cin>>ch;
if(ch==82||ch==114)
KY1=1;
}
void Exit() //结束界面
{
cout<<"\t\t////////////////////EXIT///////////////////////\n";
cout<<"\t\t// //\n";
cout<<"\t\t// 谢谢使用! //\n";
cout<<"\t\t// //\n";
cout<<"\t\t// 请按任意键退出 //\n";
cout<<"\t\t// //\n";
cout<<"\t\t//保留所有权利 //\n";
cout<<"\t\t// 作者一 作者二 //\n";
cout<<"\t\t///////////////////////////////////////////////////////////////\n";
system("pause");
}
char Intro() //使用说明
{
extern KY2;
char ch;
cout<<" 欢迎来到 我猜!我猜!我猜猜!\n";
cout<<"该软件用于小学一二年级学生的算术练习";
cout<<"计分方式:\n";
cout<<"1、一共有十道题目\n";
cout<<"2、第一次回答正确得10分\n";
cout<<"3、第二次回答正确得7分\n";
cout<<"4、第三次回答正确得5分\n";
cout<<"5、三次均未答对不得分\n";
cout<<"输入选项前的编号进入对应练习\n";
cout<<"若要中途退出,请输入'q'或直接关闭\n";
cout<<"输入任意值返回首页\n";
cout<<"退出请输入'q'\n";
cin>>ch;
if(ch==81||ch==113) //对选择进行回应
{KY2=0;return 0;}
else
return 53;
}
char Help() //帮助手册,目前只有九九表
{
extern KY2;
char ch;
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
cout<<"\t"<
cout<
}
cout<<"输入任意值返回首页\n";
cout<<"退出请输入'q'\n";
cin>>ch;
if(ch==81||ch==113) //判断选择
{KY2=0;return 0;}
else
return 53;
}
void Clear() //clear
{
cin.clear(); // 重置 cin 输入状态
cin.sync(); // 清除 cin 缓冲区未读取信息
}
void Right(int n) //答对出现的提示
{
int i;
srand(time(0));
i=rand()%3;
if(n==3)
{
switch(i)
{
case 0:cout<<"Perfect!\n";break;
case 1:cout<<"Bingo!\n";break;
case 2:cout<<"Gaoging\n";break;
}
}
if(n==2)
cout<<"Correct!\n";
if(n==1)
cout<<"Come on!\n";
}
void Wrong(int n) //答错出现的提示
{
extern c;
int i;
srand(time(0));
i=rand()%3;
if(n==3)
{
switch(i)
{
case 0:cout<<"No, the answer is …\n";break;
case 1:cout<<"Error! Try again. please!\n";break;
case 2:cout<<"No! a second time. please!\n";break;
}
}
if(n==2)
cout<<"Mistaken! a last time. please!\n";
if(n==1)
cout<<"回答错误,后面加油!\n";
}
¥29.8
¥9.9
¥59.8