C++记忆训练小游戏程序源代码

发布时间:2020-02-12 18:30:46   来源:文档文库   
字号:

#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.数字记忆 *"<换行,\t水平制表(跳到下一个Tab位置)

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

《C++记忆训练小游戏程序源代码.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式