猜数字游戏源代码
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#18.int Guess::Compare(int InputValue)
//比较猜数是否正确
#19. {
#20.
CompareTimes++; //所 猜 次
数加 1
#21.
return
InputValue-Value;
//比较所猜数字和目标数字是否相同,相同
//返回 0
#22. }
#23. int Guess::GetCompareTimes()
#4. private:
#5.int Value; //计算机产生的目标数字
#6.
int CompareTimes; //所猜
次数
#7.
public:
#8.
Guess(); //构造函数
的声明
#9.
int Compare(int
InputValue);
#10.
int GetCompareTimes();
啦!"<<endl
<<" 您 一 共 猜 了 "<<GuessTimes<<" 次
"<<endl;
#23.
brea
k;
#24.
}
#25.
else if(CompareResult>0)
#26.
{
#27. cout<<"\n 对 不 起 , 您 猜 的 数 大
啦!\n";
#28.
}
#29.
else
#30.
#18.
CompareResult=guessobj.Comp
are(InputValue);
//判断游戏者所猜数字是否正确
#19.
if(CompareResult==0) /
/正确
#20.
{
#21. int GuessTimes=
guessobj.GetCompareTimes();
#22.
cout<<"\n 恭 喜 您 , 猜 对
)
#38.
{
#39.
break;
#40.
}
#41.
}
#42. cout<<"********** 感谢您的使用!
**********\n";
#43.
return 0;
#44. }
六、案例总结与提高
1.案例总结 (1)本案例的重点是介绍 Visual C++ 6.0 下创建并运行一个 C++Win32 控制台应用程 序的基本过程。在 Visual C++ 6.0 下创建 并运行一个 C++Win32 控制台应用程序需要 经过创建工程、添加并编辑类文件、添加并 编辑程序源文件、工程编译、连接、执行等 几个步骤。 (2)通过建立 Win32 控制台程序用 Guess 类来实现:初始化所猜的目标数字、比较输 入数字和目标数字以及统计已猜次数。
int CompareTimes
为游戏者已猜次数。
函数成员
Guess()
构造函数,用来产生随机目标数字。
int Compare(int InputValue)
用来判断游戏者所猜数字是否正确,其参
数 InputValue 为游戏者所猜数字。
int GetCompareTimes()
用来获得游戏者已猜次数。
二、案例分析
本案例中设计了一个 Guess 类,实现产生 随机数、进行参加游戏者输入数字与目标数 字的比较、计算猜数次数。主程序中通过类 的实例化实现猜数过程。
三、案例设计
为了实现猜数过程,设计 Guess 类,结构 如图 2-2 所示。
数据成员
int Value
产生的 0 到 99 间的目标数字。
#2. #include "Guess.h"
//将已定义的类文件包含到主程序文件中
#3. using namespace std;
#4. int main()
#5. {
#6.
int InputValue;
#7.cout<<"\n** 欢迎使用本程序**\n";
#8.
for(;;)
#9.
{
#10.
char Select;
//获得已猜次数
#24. {
#25.
return CompareTimes;
#26. }
//
*************************************
//* GuessNumber.cpp 源 文
件
*************************************
#1. #include <iostream>
五、案例实现
猜数字游戏源程序代码如下所示。
*************************************
// * Guess.h
类声明头文
件
*************************************
#1. #include <time.h>
#2. class Guess
#3. {
(4)程序通过无条件双重循环来实现猜 数过程,外层循环用来控制当一次猜数结束 后是否继续进行猜数游戏,只有当用户选择 “n”时才退出循环,游戏结束。内层循环 用来控制一次游戏的猜数过程。当游戏参加 用户猜数错误时继续循环,只有猜数正确时 才退出内层循环。
2.案例提高 本案例的每一次猜数过程没有次数限制, 只有当游戏者猜对数字以后才完成一次猜 数过程。修改案例设置最大猜数限制,当猜 数次数达到最大猜数次数时,提示猜数结 束,游戏失败。
猜数字游戏
本案例知识要点
Visual C++ 6.0 下 创 建 Win32
Console Application 并运行的方法
C++程序中类的定义和实现
C++程序中类文件的引用及类的实
例化
一、案例需求
1.案例描述 由计算机产生 0 到 99 的随机数,游戏参 加者将猜到的数字从键盘输入,计算机对猜 数结果进行判断直到猜出正确结果。 2.案例效果图 猜数字游戏运行效果如图 2-1 所示。 3. 功能要求 (1)所猜 0 到 99 的目标数字由计算随机 产生。 (2)0 到 99 的随机数的产生、所猜数字 和目标数字的比较等过程以类的形式实现。 (3)若游戏参加者所猜数字正确,则提 示所猜总次数;若猜数错误,则提示所猜数 字比目标数字大还是小。
在 Guess 类文件中,定义构造函数 Guess() 来实现对所猜目标数字的初始化。
(3)在主程序中要对定义的 Guess 进行 引用,必须将已经定义的 Guess.h 类文件包 含到主程序文件中。在程序中要对已经定义 的类进行引用,必须将已定义的类实例化为 对象。在类的实例化过程中调用 Guess 类的 构造函数 Guess()实现对所猜目标数字的初 始化。对需要引用的类实例化后,就可以通 过对象引用成员函数。
#11. };
#12. Guess:: Guess ()//构造函数的实
现
#13. {
#14.
CompareTimes=0; //猜数次数
置零
#15.
srand((unsigned)time(NUL
L));
//产生随机
数种子
#16.
Value=rand()%100;
//产生 0~99 的随机数
#17. }
{
#31. cout<<"\n 对 不 起 , 您 猜 的 数 小
啦!\n";
#32.
}
#33.
}
#34.
cout<<"\n 您 还 想 再 玩
吗?('n'=No,Others=Yes)\n";
#35.
cin>>Select;
#36.
cout<<'\n';
#37.
if(Select=='n'||Select=='N'
#11.
Guess
guessobj;
//实例化 Guess 类
#12. cout<<"我已经想好数字啦(0~99),请
猜吧!\n";
#13.
for(;;)
Leabharlann Baidu#14.
{
#15.
int
CompareResult;
#16.
cout<<"\n 我 想 的
是:";
#17.
cin>>InputValue;
//获得游戏者输入的所猜数字