C++课程设计--福彩游戏设计报告523.pdf
《C++课程设计--福彩游戏设计报告523.pdf》由会员分享,可在线阅读,更多相关《C++课程设计--福彩游戏设计报告523.pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 C+课程设计-福彩游戏设计报告 南京理工大学 VC课程设计报告 课 程:VC+课程设计 选题名称:福彩游戏 一、程序设计要求(1)定义一个福彩类,封装计算机开出的大奖号码及开奖过程函数和输出大奖号码的函数。(2)定义一个用户类,封装用户输入的数字和用户所拥有的彩金。初始化彩金为 100 元。每次下注 2 元,可以多次下注,具体赢得大奖或二等、三等奖的奖金由自己设置,累加到用户的彩金中;二等奖或三等奖的规则也由自己设置。其中,用户的输入的数字与福彩号码的比较函数定义为福彩类的友元函数。(3)程序只要不选择退出且彩金允许就可以反复下注。二、程序设计思想(1)类的封装 改程序的数据结构比较简单,主
2、要数据就是彩金和大奖号码,因此,只要将与这两个数字相关的操作封装起来即可。class CCustomer /定义用户类 private:int nMoney;/用户彩金 int nRank;/中奖的等级 int Welfare6;/福彩投注号码 public:CCustomer();/构造函数 int SetWelfare();/接收福彩投注,成功返回 1 void Compare(CWelfareLot&);/比较福彩,赋值中奖等级 void Show();/根据中奖等级计算奖金,输出结果;class CWelfareLot /定义福彩类 private:int LotNum6;/大奖号码
3、public:CWelfareLot();/构造函数 void SetLot();/开奖过程 void PointLot();/输出大奖号码 friend void CCustomer:Compare(CWelfareLot&);(2)开奖过程的编写 原程序的开奖过程比较简单,只是输出随机数结果,没有一般摇奖的效果,可以将程序加以改进,使随机数不断变换显示,最后停在大奖号码上,这样效果更加逼真。void CWelfareLot:SetLot()int nRnd,nNum;for(int i=0;i6;i+)/要开出 6 个数字 nRnd=rand();/随机取循环次数,数字变换的时间长度是随机
4、的 for(int j=0;jnRnd;j+)nNum=rand()%21;/随机取 020 之间的数字进行变化 if(nNum10)coutnNumb;/*当取的数字小于 10,即一位数,显示后光标左移一位,再继续变换的数字将原数字覆盖,出现摇奖效果*/else coutnNumbb;/当取的数字是两位数,左移两位 coutnNum“”;LotNumi=nNum;/变换到最后的数字即为大将数字 (3)程序的进一步改进 原程序要求玩家提供计算机随机数的种子,但如果种子固定,那么产生的随机数也固定,大奖的号码每次都相同,达不到原游戏的目的。我们还是用当前的时间作为随机数种子去顺序产生随机值,使得
5、大奖号码都是随机的。如果大奖号码纯粹是随机数,那么玩家获得大奖几乎是不可能的,所有的玩家玩家都希望在游戏中找到乐趣,所以可以将游戏稍稍改进一下,用指定的用户名和密码进入,首先预定好大奖号码,开奖的操作照常进行,只不过停止变换后显示的数字是我们预定的,这样就可以使您成为虚拟世界的百万富翁!三、关键源代码注解 定义用户类:class person /用户类 private:char code20;/用户输入的数字 int money;/用户拥有的彩金 friend class Game;/将输入数字作为福彩类的友元函数;定义福彩类私有成员:class Game /福彩类 private:int p
6、lay;/记录游戏者当前所在的局数 int ball;/记录游戏者总共玩的局数 int score;/记录游戏者赢的局数 char name20;/储存游戏者的姓名 char Reply2;/储存游戏者输入的字符 y 或 n int seed;/储存游戏者输入的幸运数字 int PowerBall;/储存游戏者输入的 PowerBall 数字 int total;/记录游戏者得的总分数 int level;/储存游戏者所选的数字范围 int rule;/储存游戏者所选的游戏规则 int truematch6;/记录每个数字得的分数 int num 5;/记录游戏者输入的 whiteballl
7、数字 int cp_num6;/储存电脑所产生的随机数 int bet;/赌注 int x;/记录游戏等级 char Reply3;定义福彩类公有成员并构造相应函数:public:Game()/构造函数初始化赌资,游戏者当前所在的局数,游戏者总共玩的局数,游戏者赢的局数 player.money=100;play=1;ball=0;score=0;void gameboy1()/初始化姓名 coutendl;cout请输入您的姓名:1 to 20 characters:;cin.getline(name,20);coutendl;void set()/设置密码 cout您是否要设置密码y or
8、 n:reply5;if(reply5=y|reply5=Y)char ch;int i=0;cout请设置高级玩家密码:;cout.flush();/清输出缓冲区 ch=getch();while(ch!=#)/当输入#字符时循环结束 player.codei+=ch;cout*;cout.flush();ch=getch();player.codei=0;couttt 密码载入中,请稍候.endl;wait(2000);/真实性处理 system(cls);/执行系统命令,清屏 else strcpy(player.code,1111);coutendl;void menu()/选择游戏规
9、则 cout#游戏规则#endl;cout1 大奖:当输入的 6 个数字全部匹配时游戏者赢!若赢您可获得所下赌注三倍的奖金,若输您将失去同样多的金额!endl;cout*;cout2二等奖:当输入的 6 个数字中至少有 4 个匹配时游戏者赢!若赢您可获得所下赌注两倍的奖金,若输您将失去同样多的金额!endl;cout*;cout3 三等奖:当输入的 6 个数字中至少有 2 个匹配时游戏者赢!若赢您可获得与您所下赌注相等的奖金,若输您将失去同样多的金额!endl;coutendl;coutnamex;/输入所选的游戏规则 while(x!=1&x!=2&x!=3)/判断输入的数字是否合乎要求 c
10、out 请重新选择!1 or 2 or 3x;/重新输入数字 switch(x)/根据输入的数字来确定游戏规则 case 1:rule=6;break;case 2:rule=4;break;case 3:rule=2;cout数据载入中,请稍侯endl;wait(2000);/真实性处理 system(cls);/执行系统命令,清屏 void _level()/选择游戏的难易程度 cout#游戏难易程度说明#endl;coute:简单,在 1-20 中选择号码!endl;couth:困难,在 1-40 中选择号码!(若赢奖金在原基础上增加一倍哦!)endl;coutendl;coutname
11、Reply3;while(Reply3!=e&Reply3!=h)/判断输入的字符是否合乎要求 cout 请重新输入!e or hReply3;/重新输入字符 switch(Reply3)/根据输入的字符初始化数字范围确定游戏难易 case e:level=20;break;case h:level=40;int getgamenbr()/根据时间初始化随机数种子并产生随机数 int ran;srand(unsigned)time(NULL);ran=rand()%level+1;/在已确定的范围内产生随机数 return(ran);void wait(int milli)/延时函数,产生多个
12、种子 clock_t start;start=clock();while(clock()-start)milli);void _show()/设置游戏提示信息 cout -n;cout *欢迎来到福彩中心!祝您好运!*n;cout -n;coutendl;cout#游戏说明#n;cout1.本游戏设置了普通玩家与高级玩家,高级玩家可设定大奖号码;endl;cout2.高级玩家密码可先设定,不设则采用默认密码(1111).endl;void BET()/设置赌注 coutn;cout您拥有金钱:¥player.moneyendl;coutbet;if(bet0)bet=bet*(-1);syst
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 福彩 游戏 设计 报告 523
限制150内