猜数字游戏源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
猜数字游戏
本案例知识要点
●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类,结构如图2-2所示。
●数据成员
int Value
产生的0到99间的目标数字。
int CompareTimes
为游戏者已猜次数。
●函数成员
Guess()
构造函数,用来产生随机目标数字。
int Compare(int InputValue)
用来判断游戏者所猜数字是否正确,其参数InputValue为游戏者所猜数字。
int GetCompareTimes()
用来获得游戏者已猜次数。
五、案例实现
猜数字游戏源程序代码如下所示。
************************************* // * Guess.h 类声明头文件
************************************* #1. #include
#2. class Guess
#3. {
#4. private:
#5.int Value; //计算机产生的目标数字
#6. int CompareTimes; //所猜次数#7. public:
#8. Guess(); //构造函数的声明#9. int Compare(int InputValue); #10. int GetCompareTimes();
#11. };
#12. Guess:: Guess ()//构造函数的实现#13. {
#14. CompareTimes=0; //猜数次数置零#15. srand((unsigned)time(NULL)); //产生随机数种子#16. Value=rand()%100;
//产生0~99的随机数#17. }
#18.int Guess::Compare(int InputValue)
//比较猜数是否正确
#19. {
#20. CompareTimes++; //所猜次数加1 #21. return InputValue-Value;
//比较所猜数字和目标数字是否相同,相同//返回0
#22. }
#23. int Guess::GetCompareTimes()
//获得已猜次数
#24. {
#25. return CompareTimes;
#26. }
//
************************************* //* GuessNumber.cpp 源文件
************************************* #1. #include
#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;
#11. Guess guessobj;
//实例化Guess类#12. cout<<"我已经想好数字啦(0~99),请猜吧!\n";
#13. for(;;)
#14. {
#15. int CompareResult; #16. cout<<"\n我想的是:";
#17. cin>>InputValue;
//获得游戏者输入的所猜数字
#18. CompareResult=pare (InputValue);
//判断游戏者所猜数字是否正确
#19. if(CompareResult==0) //正确#20. {
#21. int GuessTimes=
guessobj.GetCompareTimes(); #22. cout<<"\n恭喜您,猜对啦!"< #23. break; #24. } #25. else if(CompareResult>0) #26. { #27. cout<<"\n对不起,您猜的数大啦!\n"; #28. } #29. else #30. {