猜数字游戏实验报告
经销商培训-题临安邸古诗
编号:
16
河北工业大学计算机软件技术基础(VC)2013年课程设计报告
学院 机械学院 班级
姓名 学号 成绩____
一、题目:
猜数字游戏
二、设计思路
1、总体设计
1)分析程序的功能
由计算机产
生一个随机数,然后用户开始猜数字,根据提示猜出正确的数字(开始时输入要猜
的数字的位数,这样计
算机可以根据输入的位数随机分配一个符合要求的数据,计算机输出guess
后便可以输入数字进行猜
测,要求数字间用空格或者回车符来分隔,计算机会根据输入信息给出相
应的提示信息:A表示数字和位
置均正确的个数,B表示数字正确但位置不正确的个数,这样便可
以根据提示信息进行下次猜测,直到猜
对为止。这时会根据输入的次数给出相应评价。)
2)系统总体结构:
有计算机产生一个随机数,玩家开始猜测。根据提示信( -A-B
)猜测数字,直至
猜对,计算机会
根据输入的次数给出相应评价
,或者玩家想结束。
2、各功能模块的设计:说明各功能模块的实现方法
1)
用srand(
(unsigned)time(NULL))函数,计算机生成一个满足条件的随机数;
2)玩家输入自己猜的数字,并根据提示不断改正;
3)用两个for和if函数的嵌套得到A、B的值
4)计算机给出最后的评价,或玩家想结束,计算机给出答案
3、设计中的主要困难及解决方案
设计中用到的rand函数在最初使用的时候总是取得相同
的随机数序列,经过
查阅资料得知,在使用rand函数之前必须先用srand函数设置随机数种子,
最后
在程序中利用time函数返回时钟周期数作为种子的编号。
4、你所设计的程序最终完成的功能
1)说明你编制的程序能完成的功能
根据提示,猜数字
第1页共9 页
编号:
16
2)准备的测试数据及运行结果
1.进入界面:
2.如果想了解规则,可根据提示进入规则界面:
第2页共9 页
编号:
16
3.输入想要猜测的位数,如:2位
4.当你猜对数字时,系统会根据你猜的次数给予相应的评价:
第3页共9 页
编号:
16
5.如果你输入超过了10次,系统会提示你是否还要继续:
第4页共9 页
编号:
16
如果要继续:
如果想结束:
三、程序清单
第5页共9 页
编号:
16
1)main函数
void main()
{
int
a[6],b[6],i,j,k,n1,n2,n3,N,x,y,z,system;
cout<< ------------------------------------------
-------------------------------
cout<<
**** ^_^ 你好,欢迎来到猜数字游戏 ^_^
*****
cout<< -----------------------
-------------------------------------------------<
br> cout<< ****
如果想了解游戏规则请按1,直接进入请按0
*****
cout<<
--------------------------------------------------
----------------------
cin>>y;
if(y)
{
cout<<
*-*-*-*-*-*-*-*-*-* 游戏规则
*-*-*-*-*-*-*-*-*-*-*
cout<< |
您要输入n位数字,且各个位数都不相同.如: 若电脑数字
|
cout<< *
是1234,而你输入的是1439,则会显示2A1B,其中2表示有两个
*
cout<< | 数字位置和大小都相等,1表示有一个数字位置相同而大小不相等
|
cout<< *---------------------------
------------------------------------------*
cout<< | 欢迎进入游戏
|
cout<<
*-*-*-*-*-*-*-*-*-*-*-*-
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
}
cout<<请输入你想猜的数字的位数(2位-5位)
cin>>N;
for(x=1;x!=10;)
{
srand((unsigned int(time(NULL))));
int
r1,r2,r3,r4,r5;
r1=rand()%10;
r2=rand()%10;
r3=rand()%10;
r4=rand()%10;
r5=rand()%10;
system=r1*10000+r2*1000+r3*100+r4*10+r5;
int TS = system;
i=0;
while(0 < TS
)
{
第6页共9 页
编号:
16
b[i++] = TS%10;
TS = 10;
}
for(i=0; i
x++;
}
for(k=1;k<100;k++) 计算用户游戏时所猜的总的次数
{
cout<<请输入位各个位数不同的整数
for(i=0;i
for(i=0,n1=0,n2=0;i
n1++;
for(j=0;j
n2++;
n3=n2-n1;
if(n3>0||n3==0)
cout<<
else
cout<<
if(n1==N)
break;
if(k>9)
{
cout<<您现在已经猜了次,请问您还要继续吗?是1,否0
cin>>z;
if(z==0)
break;
}
}
输出结果
if(z==0)
{
cout<<你选择了结束游戏,答案是
for(i=0;i
else
第7页共9 页
编号:
16
{
cout<<
cout<<您一共猜了次
cout<<
cout<<系统给您的评价是:
根据所猜次数对用户作出相应评价
if(k<4)
cout<<神一般的猜测!
if(k>3&&k<11)
cout<<你真是太厉害了!
if(k>10&&k<21)
cout<<还不错,继续努力!
if(k>20)
cout<<你太逊了,猜了这么多次!
}
}
2)
rand
函数
srand((unsigned
int(time(NULL))));
int r1,r2,r3,r4,r5;
r1=rand()%10;
r2=rand()%10;
r3=rand()%10;
r4=rand()%10;
r5=rand()%10;
四、对该设计题目有何更完善的方案
1、对自己完成程序进行自我评价。
我的程序较好的完成了任务中规定的设计内容,并完成了创新要求的设计,运
行正确。
2、对课题提出更完善的方案
实现更多位数数字的猜测
五、收获及心得体会
第8页共9 页
编号:
16
日期: 2013年6月26日
第9页共9 页