#include
#include
#include
#include
using namespace std;
int s3,s4;
char selec;
int time1,time2;
class YouXi
{
public:
void score(int score1,int right); //声明战况子函数
void welcome(); //声明主菜单界面
void number(); //声明数字练习函数
void time(); //声明倒计时函数
void sellet(); //声明字母选择菜单界面函数
void letter(int x); //声明随机生成字母函数
void all();
void end();
private:
};
int main()
{
time1=::time(NULL); //记录用户开始时的时间
system("cls");
YouXi Game;
Game.welcome(); //调用主菜单
return 0;
}
void YouXi::welcome() //定义主菜单函数
{
for(int i=0;i<3;i++)
{
system("cls"); //执行DOS下的清屏命令
cout<<"\n\n\n\n\n\n\n\n\n\n\t\t\tloading";
for(int j=0;j<10;j++)
{
Sleep(80);
cout<<".";
}
}
do
{
system("cls");
cout<<"\n\n\n\n"<
cout<<"\n\t\t\t********************************"<
cout<<"\n\t\t\t* 欢迎挑战 *"<
cout<<"\n\t\t\t********************************"<
cout<<"\n\t\t\t* *"<
cout<<"\n\t\t\t* 1.数字记忆 *"<
cout<<"\n\t\t\t* 2.字母记忆 *"<
cout<<"\n\t\t\t* 3.键盘记忆 *"<
cout<<"\n\t\t\t* 4.退出 *"<
cout<<"\n\t\t\t* *"<
cout<<"\n\t\t\t********************************"<
cout<<"\n\t\t\t请选择:";
int i;
cin>>i;
switch(i)
{
case 1:
time();
number();
break;
case 2:
sellet(); //调用字母选择大小写菜单
break;
case 3:
time();
all(); //全键盘练习
break;
case 4:
end();
break;
default:
cout<<"您的输入有误!按任意键继续......";
getchar();
getchar();
}
}while(1);
}
void YouXi::time() //定义倒计时子函数
{
system("cls");
cout<<"\n\n\n\n\n\t\t\t\tloading...\n\n\n\n\n"<
for(int i=0;i<80;i++)
{
cout<<">";
Sleep(20);
}
}
void YouXi::number(){
int s1=0,s2=1,input,eng; //定义局部变量s1,s2用于随机函数的个数,eng,input随时产生数字与用户入.
do
{
system("cls");
srand((unsigned)::time(NULL)); //以当前时间作为随机种子
eng=((s1=s1*10+1)+rand()%((s2=s2*10)-s1)); //随机产生一个数
s4++; //统计总个数
cout<<"\n\n\n\n\t\t ***************游戏中***************"<
cout<<"\n\n\n\t\t\t请记住此数字:"<
Sleep(500);
system("cls");
cout<<"\n\n\n\n\t\t ***************游戏中***************"<
cout<<"\n\n\n\t\t\t请输入刚才的数字:";
cin>>input;
if(input==eng) //判断数字是否相等
{
s3++; //统计总正确数
system("cls");
cout<<"\n\n\n\n\t\t ***************游戏中***************"<
cout<<"\n\n\n"<
cout<<"\t\t\t恭喜您!进入下一关!"<
Sleep(600);
system("cls");
continue;
}
else
{
do
{
system("cls");
cout<<"\n\n\n\n\t\t ***************游戏中***************"<
cout<<"\n\n\t\t\t输错了,是否继续?(y/n):";
cin>>selec;
if(selec=='y'||selec=='Y')
{
s1=s1/10; //恢复错误时的数字个数(例如:随机产生一个五位数,我们输入的与计算机产生的数值不匹配,所以要重新输入5位数与计算机随机产生的数值匹配的关卡,至到输入正确为止)
s2=s2/10; //恢复错误时的数字个数(例如:随机产生一个五位数,我们输入的与计算机产生的数值不匹配,所以要重新输入5位数与计算机随机产生的数值匹配的关卡,至到输入正确为止)
break;
}
else if(selec=='n'||selec=='N')
score(s4,s3); //调用战况子函数
}while(1);
}
}while(1);
}
void YouXi::sellet(){
do
{
system("cls");
cout<<"\n\n\n\n\t\t\t********************"<
cout<<"\n\t\t\t* *"<
cout<<"\n\t\t\t* 1.大写字母 *"<
cout<<"\n\t\t\t* 2.小写字母 *"<
cout<<"\n\t\t\t* 3.返回 *"<
cout<<"\n\t\t\t* *"<
cout<<"\n\t\t\t********************"<
cout<<"\n\t\t\t请选择:";
int i;
cin>>i;
switch(i)
{
case 1:
time(); //调用倒计时子函数
letter(1); //调用字母练习子函数(并告诉函数是大写字母)
break;
case 2:
time(); //调用倒计时子函数
letter(2); //调用字母练习子函数(并告诉函数是小写字母)
break;
case 3:
welcome(); //调用欢迎界面
default:
cout<<"您的输入有误!按任意键继续...";
getchar();
getchar();
}
}while(1);
}
void YouXi::letter(int x){
int n=1; //初始化循环变量值
//int c;
char eng[100],input[100]; //用于存放产生的字符串与用户输入的字符串
srand((unsigned)::time(NULL)); //以当前时间为种子
do
{
system("cls");
cout<<"\n\n\n\n\t\t ***************游戏中***************"<
cout<<"\n\n\n\t\t\t请记住这个字母:";
if(x==1)
for(int i=0;i
{
eng[i]=65+rand()%(90-65); //随机产生一个大写字母
cout<
}
else
for(int i=0;i
{
eng[i]=97+rand()%(122-97); //随机产生一个小写字母
cout<
}
eng[n]='\0'; //给数组加一个结束标志
s4++; //统计字母总个数
Sleep(1000);
system("cls");
cout<<"\n\n\n\n\t\t ***************游戏中***************"<
cout<<"\n\n\n\t\t\t请输入刚才的字母:";
cin>>input;
if(strcmp(eng,input)==0) //比较两个字符串是否相同
{
s3++; //记录正确个数
n++;
system("cls");
cout<<"\n\n\n\n\t\t ***************游戏中***************"<
cout<<"\n\n\n\t\t\t恭喜您!进入下一关!"<
Sleep(600);
system("cls");
continue;
}
else
{
do
{
system("cls");
cout<<"\n\n\n\n\t\t ***************游戏中***************"<
cout<<"\n\n\n\t\t\t输错了!是否继续?(y/n):";
cin>>selec;
if(selec=='y'||selec=='Y')
break;
else if(selec=='N'||selec=='n')
score(s4,s3); //调用战况子函数
}while(1);
}
}while(1);
}
void YouXi::all(){
int n=1;
do
{
char input[100],eng[100]; //存放全键盘随时产生字符串与用户输入字符串
system("cls");
cout<<"\n\n\n\n\t\t ***************游戏中***************"<
cout<<"\n\n\n\t\t\t请记住这个字符串:";
for(int i=0;i
{
eng[i]=33+rand()%(125-33); //随机产生全键盘字符
cout<
}
eng[n]='\0';
s4++; //记录总个数
Sleep(1000);
system("cls");
cout<<"\n\n\n\n\t\t ***************游戏中***************"<
cout<<"\n\n\n\t\t\t请输入刚才的字符串:";
cin>>input;
Sleep(1000);
if(strcmp(eng,input)==0) //判断字符串是否相同
{
s3++;
n++;
system("cls");
cout<<"\n\n\n\n\t\t ***************游戏中***************"<
cout<<"\n\n\n\t\t\t恭喜您!进入下一关!"<
Sleep(600);
system("cls");
continue;
}
else
{
do
{
system("cls");
cout<<"\n\n\n\n\t\t ***************游戏中***************"<
cout<<"\n\n\n\t\t\t输错了!是否继续?(y/n)";
cin>>selec;
if(selec=='Y'||selec=='y')
break;
else if(selec=='N'||selec=='n')
score(s4,s3); //调用战况子函数
}while(1);
}
}while(1);
}
void YouXi::score(int score1,int right){
time2=::time(NULL); //记录用户结束时时间
do
{
system("cls");
cout<<"\n\n\n\n"<
cout<<"\n\t\t\t***************************"<
cout<<"\n\t\t\t* ******战况****** *"<
cout<<"\n\t\t\t* *"<
cout<<"\n\t\t\t* 总数:"<
cout<<"\n\t\t\t* 正确:"<
cout<<"\n\t\t\t* 错误:"<
printf("\n\t\t\t* 正确率:%3.0f *",(double)right/score1*100);
// cout<<"\n\t\t\t* 正确率:"<<(double)right/score1*100<<" *"<
cout<<"\n\n\t\t\t* 运行时间:"<
cout<<"\n\t\t\t* *"<
cout<<"\n\t\t\t***************************"<
cout<<"\n\t\t\t确定退出游戏?(y/n):";
cin>>selec;
if(selec=='y'||selec=='Y')
end();
else if(selec=='n'||selec=='N')
main();
}while(1);
}
void YouXi::end(){
system("cls");
cout<<"\n\n\n\n"<
cout<<"\n\t\t\t********************"<
cout<<"\n\t\t\t* *"<
cout<<"\n\t\t\t* 感谢您的使用! *"<
cout<<"\n\t\t\t* Goodbye! *"<
cout<<"\n\t\t\t* *"<
cout<<"\n\t\t\t********************\n\n\n\n\n\n\n\t\t\t"<
exit(0);
}
本文来源:https://www.2haoxitong.net/k/doc/0f958e858762caaedd33d425.html
文档为doc格式