求C语言大神帮小弟写写这个小程序,,万分感谢 20
猜数字游戏:计算机随机生成没有重复的n个数,用户从键盘输入猜测的数。每猜一次,电脑给出提示信息。如果用户输入的数跟计算机生成的数,数值和位置都完全相等,则胜出。基本功能要...
猜数字游戏:
计算机随机生成没有重复的n个数,用户从键盘输入猜测的数。每猜一次,电脑给出提示信息。如果用户输入的数跟计算机生成的数,数值和位置都完全相等,则胜出。
基本功能要求:
1. 随机生成没有重复的4个数。(每个数字在0-9范围内)。
2. 用户从键盘输入4个不重复的数,程序能对用户输入的数与随机生成的数进行匹配,并给出提示信息:“有 x个数数值和位置都相同!有 y个数数值相同,但位置不同。”
3. 控制用户的尝试次数为10次。
4. 计算、输出并保存用户的得分,计分规则:总分是100分,每失败一次扣10分。
5. 有操作菜单,能根据不同选择运行不同功能:1:开始游戏!2:查看上次成绩!3:输出帮助信息!0:退出程序!
扩展功能要求:
1. 对用户输入的数字进行检查,如果用户输入重复的数,给出提示,要求重新输入。
2. 能对游戏进行设置:在操作菜单中增加相应的选项:“4:系统设置”。
(1) 修改要猜的数字的个数n,根据修改后的n值,计算机可随机生成n个数,用户进行n个数的猜测游戏。
(2) 修改可以尝试的次数。
3. 若游戏胜出且成绩在前五名,可输入并记录对应的用户姓名,并添加到积分榜中。操作菜单中相应选项改为“2:积分榜!”,用于把积分榜中保存的前五名成绩及用户姓名显示出来。
4. 能对积分榜的成绩进行排序和输出。 展开
计算机随机生成没有重复的n个数,用户从键盘输入猜测的数。每猜一次,电脑给出提示信息。如果用户输入的数跟计算机生成的数,数值和位置都完全相等,则胜出。
基本功能要求:
1. 随机生成没有重复的4个数。(每个数字在0-9范围内)。
2. 用户从键盘输入4个不重复的数,程序能对用户输入的数与随机生成的数进行匹配,并给出提示信息:“有 x个数数值和位置都相同!有 y个数数值相同,但位置不同。”
3. 控制用户的尝试次数为10次。
4. 计算、输出并保存用户的得分,计分规则:总分是100分,每失败一次扣10分。
5. 有操作菜单,能根据不同选择运行不同功能:1:开始游戏!2:查看上次成绩!3:输出帮助信息!0:退出程序!
扩展功能要求:
1. 对用户输入的数字进行检查,如果用户输入重复的数,给出提示,要求重新输入。
2. 能对游戏进行设置:在操作菜单中增加相应的选项:“4:系统设置”。
(1) 修改要猜的数字的个数n,根据修改后的n值,计算机可随机生成n个数,用户进行n个数的猜测游戏。
(2) 修改可以尝试的次数。
3. 若游戏胜出且成绩在前五名,可输入并记录对应的用户姓名,并添加到积分榜中。操作菜单中相应选项改为“2:积分榜!”,用于把积分榜中保存的前五名成绩及用户姓名显示出来。
4. 能对积分榜的成绩进行排序和输出。 展开
2个回答
展开全部
#include<iostream.h>
#include<time.h>
#include<stdlib.h>
class math
{
private:
int a[4]; //把 char 改为 int
public:
void sss();
void fff();
void shuming();
};
void math::shuming()
{
cout<<" 说明:系统随机产生4个数字,你可以进行猜测,一共有10次机会,每次猜完都有提示"<<endl<<endl;
}
void math::sss()
{
char a;
int t = 1;
cout<<"1:开始猜数"<<endl;
cout<<"2:看猜数规则说明"<<endl;
cout<<"3:退出"<<endl;
cin>>a;
switch(a)
{
case '1': fff();break;
case '2': shuming();break;
case '3': exit(1);break;
default: cout<<"按键无效!"<<endl;break;
}
sss();
}
void math::fff()
{
srand(time(0));
int x = 0, y = 0, n = 10;
int i = 0, m = 0;
int suiji[4];
do
{
for(y = 0; y < 4; y++)
{
suiji[y]=rand()%(10);
}
}while((suiji[0] == suiji[1] || suiji[0] == suiji[2] || suiji[0] == suiji[3] || suiji[1] == suiji[2] || suiji[1] == suiji[3] || suiji[2] == suiji[3])); //这儿也改了
loop:
i = 0; m = 0; //这儿是加的
if(n>0)
{
cout<<"开始输入4个数字:";
for(x = 0; x < 4; x++)
{
cin>>a[x];
}
for(x = 0; x < 4; x++)
{
for(y = 0; y < 4; y++)
{
if(suiji[y] == a[x])
++m;
}
if(a[x]==suiji[x])
++i;
}
if(i==x) //这个if语句也换了一下 {
cout<<"你猜对了,谢谢你的参与"<<endl;
exit(0);
}
cout<<"请你继续猜测,其中有"<<m<<"个数在所猜的4个数中"<<endl;
cout<<"其中有"<<i<<"个数的顺序正确"<<endl;
}
n--;
cout<<"你还有"<<n<<"次机会"<<endl;
if(n<=0)
{
cout<<"很遗憾,你没有机会了"<<endl;
cout<<"正确的答案是:";
for(y=0;y<4;y++)
{
cout<<suiji[y];
}
cout<<endl;
exit(0);
}
else goto loop;
}
void main()
{
math x;
x.sss();
}
以前在同学那弄的 自己没试过 也和你的不太符合 你自己加点吧
#include<time.h>
#include<stdlib.h>
class math
{
private:
int a[4]; //把 char 改为 int
public:
void sss();
void fff();
void shuming();
};
void math::shuming()
{
cout<<" 说明:系统随机产生4个数字,你可以进行猜测,一共有10次机会,每次猜完都有提示"<<endl<<endl;
}
void math::sss()
{
char a;
int t = 1;
cout<<"1:开始猜数"<<endl;
cout<<"2:看猜数规则说明"<<endl;
cout<<"3:退出"<<endl;
cin>>a;
switch(a)
{
case '1': fff();break;
case '2': shuming();break;
case '3': exit(1);break;
default: cout<<"按键无效!"<<endl;break;
}
sss();
}
void math::fff()
{
srand(time(0));
int x = 0, y = 0, n = 10;
int i = 0, m = 0;
int suiji[4];
do
{
for(y = 0; y < 4; y++)
{
suiji[y]=rand()%(10);
}
}while((suiji[0] == suiji[1] || suiji[0] == suiji[2] || suiji[0] == suiji[3] || suiji[1] == suiji[2] || suiji[1] == suiji[3] || suiji[2] == suiji[3])); //这儿也改了
loop:
i = 0; m = 0; //这儿是加的
if(n>0)
{
cout<<"开始输入4个数字:";
for(x = 0; x < 4; x++)
{
cin>>a[x];
}
for(x = 0; x < 4; x++)
{
for(y = 0; y < 4; y++)
{
if(suiji[y] == a[x])
++m;
}
if(a[x]==suiji[x])
++i;
}
if(i==x) //这个if语句也换了一下 {
cout<<"你猜对了,谢谢你的参与"<<endl;
exit(0);
}
cout<<"请你继续猜测,其中有"<<m<<"个数在所猜的4个数中"<<endl;
cout<<"其中有"<<i<<"个数的顺序正确"<<endl;
}
n--;
cout<<"你还有"<<n<<"次机会"<<endl;
if(n<=0)
{
cout<<"很遗憾,你没有机会了"<<endl;
cout<<"正确的答案是:";
for(y=0;y<4;y++)
{
cout<<suiji[y];
}
cout<<endl;
exit(0);
}
else goto loop;
}
void main()
{
math x;
x.sss();
}
以前在同学那弄的 自己没试过 也和你的不太符合 你自己加点吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询