1、#include #include #include #include #include #include #include #include #includewindows.h#pragma comment(lib, winmm.lib)int isMatch(int test, int cp_num );/是否数字匹配void Center_Text(char ShellText80) /将文本居中显示int length;int center;length= strlen(ShellText);center = (80 - length)/2;for(;center!=0;center-
2、)_cputs( );_cputs(ShellText);coutendl;void wait(int milli)clock_t start;start=clock();while(clock()-start)milli);void menu()/菜单 MessageBox(NULL,欢迎进入福彩游戏,欢迎,0);coutnnnn;Center_Text(警告);coutendlendl;Center_Text(本计算机程序受版权法和国际条约保护); coutendl; Center_Text(如未经授权而私自复制、传输、修改本程序(或其中任何部分)); coutendl;Center_Te
3、xt(将受到严厉刑事及民事制裁,并在法律许可范围内受到最大可能起诉);coutendl;cout Yogurt endl;cout 版权全部 endl;cout 10月 endl; coutendl;cout 3;wait(1000);cout.flush();cout0;i-)couti;wait(1000);cout.flush();coutb;wait(1000);cout.flush();system(cls);coutnnnn;Center_Text(健康游戏忠言);coutendl;coutendl;Center_Text(抵制不良游戏,拒绝盗版游戏);coutendl;Cente
4、r_Text(注意自我保护,谨防受骗受骗);coutendl;Center_Text(适度游戏益脑,沉迷游戏伤身);coutendl;Center_Text(合理安排时间,享受健康生活);coutendl;coutnn; for(int j=0;j5;j+)for(i=0;i39;i+)switch(j)case 0:cout*;break;case 1: coutb.bb;break;case 2: cout.;break;case 3:coutb/bb;break;case 4: cout/;break;wait(25);cout.flush();system(cls);coutnnn;C
5、enter_Text(课程题目: 福彩游戏);coutendl;Center_Text(学号姓名: 陆雅婷);Center_Text(指导老师: 张宏);coutendl;Center_Text(难度等级: A);coutnnn;cout.flush();system(pause);system(cls);class CWelfareLot;class CCustomer /定义用户类private:int nMoney; /用户彩金int nRank;/中奖等级 char name20;/用户姓名char Yon5; /存放用户输入yes或nopublic:int Welfare6;/福彩投
6、注号码CCustomer(int m1=0,int m2=100)/结构函数,并将中奖等级初始化为0,彩金初始化为100元nRank=m1;nMoney=m2;void inputname()/输入玩家姓名cout请键入用户名1 to 20 characters:;cin.getline(name,20);char* printname()return name;int SetWelfare()/接收福彩投注,成功返回1int n;coutn;if(nMoney(2*n)cout您现在只剩nMoney元 n;nMoney-=2*n;int j;for (j=0; j5; j+)/输入5个所选号
7、码coutEnter Ball # j+1 Welfarej)/在输入同时对输入类型及大小做限定cin.clear();while (!(cin.get() !=n)continue;cout 对不起输入错误,请输入148之间整数n;if (Welfarej1)cout 48)cout 对不起输入错误,请输入148之间整数n;j-;return 1;void Compare(CWelfareLot& );/比较福彩,赋值中奖等级 void show()/依据中奖等级计算奖金,输出结果switch(nRank)case 1:cout 恭喜name! 您取得一等奖!endl;MessageBox(
8、NULL,恭喜您取得一等奖!,恭喜中奖,0);cout现在你有 nMoney 元!;break;case 2:cout 恭喜 name! 您取得二等奖!endl;MessageBox(NULL,恭喜您取得二等奖!,恭喜中奖,0);cout现在你有 nMoney 元!;break;case 3:cout 恭喜 name! 您取得三等奖!endl;MessageBox(NULL,恭喜您取得三等奖!,恭喜中奖,0);cout现在你有 nMoney 元!;break;case 4:cout 恭喜 name! 您取得四等奖!endl;MessageBox(NULL,恭喜您取得四等奖!,恭喜中奖,0);c
9、out现在你有 nMoney 元!;break;case 5:cout 恭喜 name! 您取得五等奖!endl;MessageBox(NULL,恭喜您取得五等奖!,恭喜中奖,0);cout现在你有nMoney元!;break;case 6:cout 恭喜 name! 您取得六等奖!endl;MessageBox(NULL,恭喜您取得六等奖!,恭喜中奖,0);cout现在你有 nMoney 元!;break;default:cout 对不起 name,您未获奖!endl;MessageBox(NULL,对不起,您未中奖!,提醒,0);cout现在你有 nMoney 元!endl;coutn*n
10、;void judge()/判定用户彩金数目 if(nMoney0|nMoney=0)cout对不起,您没钱了!endl; coutname,您想再次取得100元吗!y or nYon;if(strcmp(Yon,y)|strcmp(Yon,Y)nMoney+=100;cout现在您拥有nMoney !endl;cout请继续!endl;elsecout谢谢!endl;void Player();/判定是否为超级玩家void SuperPlayer();class CWelfareLot/定义福彩类private: int LotNum6;/大奖号码public:CWelfareLot()/结
11、构函数void SetLot();/开奖过程void PrintLot()/输出大奖号码cout 中奖号码为: LotNum0 LotNum1 LotNum2 LotNum3 LotNum4 PB LotNum5n;cout -n;friend class CCustomer;/判定用户是否中奖;void CWelfareLot:SetLot()/改善开奖过程int nRnd,nNum;for(int i=0;i6;i+)/要开出6个数字nRnd=rand();/随机取循环次数,数字变换时间是随机for(int j=0;jnRnd;j+)nNum=rand()%48+1;/随机取1到48之间数
12、字进行变换if(nNum10)coutnNumb;/*当取数字小于1,即一位数,显示后光标左移一位,再继续变换数字将原数字覆盖,出现摇奖效果*/elsecoutnNumbb;/当取出数字为两位数,左移两位coutnNum ;LotNumi=nNum;/变换到最终数字即为大奖数字void CCustomer:Compare(CWelfareLot&u)int truematch6;int total=0; truematch0=isMatch(Welfare0,u.LotNum); /判定玩家输入数字是否和计算机产生是否匹配 truematch1=isMatch(Welfare1,u.LotNu
13、m); truematch2=isMatch(Welfare2,u.LotNum); truematch3=isMatch(Welfare3,u.LotNum); truematch4=isMatch(Welfare4,u.LotNum); truematch5=isMatch(Welfare5,u.LotNum);/输出最终止果u.PrintLot();/输出计算机号码 cout name , 您投注号码为:Welfare0Welfare1Welfare2Welfare3Welfare4PBWelfare5n;cout -n;/显示比较结果cout name , 您匹配号码数:truemat
14、ch0truematch1truematch2truematch3truematch4PBtruematch5n; cout -n;total=(truematch0+truematch1+truematch2+truematch3+truematch4+truematch5);/将对应数字正确数目相加cout nTotal Matches: totalnn;/显示有多个数字相等if (total=6) /假如6个数字相等赢得大奖,并其它中奖奖励nRank=1;nMoney+=50;elseif(total=5)nRank=2;nMoney+=30;elseif(total=4)nRank=3
15、;nMoney+=20;elseif(total=3|truematch5=1)nRank=4;nMoney+=15;elseif(total=2|truematch5=1)nRank=5;nMoney+=10;elseif(total=2)nRank=6;nMoney+=5;elsenRank=0;show();void CCustomer:Player()CCustomer user;int n;cout1.一般玩家endl;cout2.超级玩家endl;cout请选择:n;if(n=1)user.inputname();cin.getline(name,20);coutname欢迎您!e
16、ndl; CWelfareLot u2; char Reply2; int PowerBall,play=1; srand(unsigned)time(NULL); docout nname,请输入您投注148球号.n; cout n; cout namePowerBall;while(!(PowerBall=1)cout对不起输入错误,请输入148之间整数!n;coutnamePowerBall;user.Welfare5=PowerBall; user.SetWelfare(); cout n; u2.SetLot(); coutn*; cout nPlay #play; coutn*n;
17、 cout n; user.Compare(u2); user.judge(); coutname, 您想再玩一次吗? y or n Reply2; play+=1;while (Reply2=Y|Reply2=y); coutn感谢您参与 name! :-)endl;exit (0);elseif(n=2)CCustomer:SuperPlayer();elsecout输入错误,请重新输入endl; MessageBox(NULL,输入错误,请重新输入,提醒,0); CCustomer:Player();void CCustomer:SuperPlayer()CWelfareLot u2;C
18、Customer user;char Reply2;int PowerBall,play=1;cout请输入用户名:;user.inputname();cin.getline(name,20);user.printname();char code25;cout请输入密码:;cout.flush();char ct=getch();int i;for(i=0;ct!=13;i+)if(ct!=8)if(i20)codei=ct;cout*;elsei-;else if(i=0)i-;elsecoutbb;i-=2;cout.flush();ct=getch();if(i=3)&(code0=1)
19、&(code1=2)&(code2=3)coutendl密码正确,欢迎您,超级玩家!endl;MessageBox(NULL,密码正确,欢迎您,超级玩家!,超级玩家,0);dosystem(cls);int c;coutc;if(nMoney(2*c)cout您现在只剩nMoney元 c;nMoney-=2*c;cout nname,请输入您投注148球号.n; cout n; cout namePowerBall; while(!(PowerBall=1)cout对不起输入错误,请输入148之间整数!n; coutnamePowerBall;Welfare5=PowerBall;cout n
20、; int j;for (j=0; j5; j+)/输入5个所选号码coutEnter Ball # j+1 Welfarej)/在输入同时对输入类型及大小做限定cin.clear(); while (!(cin.get() !=n)continue;cout 对不起输入错误,请输入148之间整数n;if (Welfarej1)cout 48)cout 对不起输入错误,请输入148之间整数n; j-;cout您投注号码为:Welfare0 Welfare1 Welfare2 Welfare3 Welfare4 Welfare5endl;cout大奖号码为: endl;int nRnd,nNum
21、;for(int i=0;i6;i+)/要开出6个数字nRnd=rand();/随机取循环次数,数字变换时间是随机for(int j=0;jnRnd;j+)nNum=rand()%48+1;/随机取1到48之间数字进行变换if(nNum10)coutnNumb;/*当取数字小于1,即一位数,显示后光标左移一位,再继续变换数字将原数字覆盖,出现摇奖效果*/elsecoutnNumbb;/当取出数字为两位数,左移两位if(j=nRnd-1)coutWelfarei ;int money=50+nMoney;cout恭喜您中了一等奖! 奖金50元!endl;MessageBox(NULL,恭喜您中一
22、等奖!,恭喜中奖,0);cout现在您拥有money元;cout您想再玩一次吗?Y/N Reply2; play+=1;while (Reply2=Y|Reply2=y);coutn感谢您参与 name! :-)endl;elsecoutendl1.密码错误,请重新输入endl;cout2.退出endl;char n=cin.get();switch(n)case 1:CCustomer:SuperPlayer();break;case 2:void CCustomer:Player();void main()menu();CCustomer cc;cc.Player();exit (0);int isMatch(int test, int cp_num )/数字相等,则返回1int match = 0; for (int i=0; i=5; i+)if (test = cp_numi) match = 1;cout n;return match;