C++课程设计福彩游戏
课程设计之福彩游戏

#include <stdlib.h>#include <time.h>#include <stdio.h>#include <cmath>#include <iomanip.h>#include <iostream.h>#include <string.h>#include <conio.h>int isMatch(int test, int cp_num[] ); //是否数字匹配class CWelfareLot;class CCustomer //定义用户类{private:int nMoney; //用户彩金int nRank; //中奖等级char name[20]; //用户姓名char Yon[5]; //存放用户输入的yes或nopublic:void _show(){cout<<"------------------------------------------\n";cout<<" * 欢迎来到福彩中心*\n";cout<<"------------------------------------------\n";cout<<" * 游戏只是消遣娱乐,请不要沉迷*\n";cout<<"------------------------------------------\n";}int Welfare[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);}void printname(){cout<<name<<endl;}int SetWelfare() //接受福彩投注,成功返回1{int n;cout<<"您现在有100元,请输入所投注数(每注2元):";cin>>n;if(nMoney<(2*n)){cout<<"您目前只剩"<<nMoney<<"元"<<" "<<"请重新投注:";cin>>n;}nMoney-=2*n;int j;for (j=0; j<5; j++) //输入5个所选号码{cout<<"Enter Ball # "<<j+1<<": ";while (!(cin >> Welfare[j])) //在输入的同时对输入的类型及大小做限定{cin.clear();while (!(cin.get() !='\n'))continue;cout <<"对不起输入错误,请输入1~48之间的整数\n";}if ((Welfare[j]<1)){cout << "对不起输入错误,请输入1~48之间的整数\n ";j--;}if ((Welfare[j]>48)){cout <<"对不起输入错误,请输入1~48之间的整数\n";j--;}}return 1;}void Compare(CWelfareLot& ); //比较福彩,赋值中奖等级void show() //根据中奖等级计算奖金,输出结果{switch(nRank){case 1:cout <<"恭喜"<<name<<"! 您获得一等奖!!"<<endl;cout<<"现在你有"<<nMoney<<" 元!";break;case 2:cout <<"恭喜"<<name<<"! 您获得二等奖!!"<<endl;cout<<"现在你有"<<nMoney<<" 元!";break;case 3:cout <<"恭喜"<<name<<"! 您获得三等奖!!"<<endl;cout<<"现在你有"<<nMoney<<" 元!";break;default:cout <<"对不起"<<name<<",您未获奖!"<<endl;cout<<"现在你有"<<nMoney<<" 元!"<<endl;}cout<<"\n*****************************************************************\n ";}void judge() //判断用户彩金数目{if(nMoney<0||nMoney==0){cout<<"对不起,您没钱了!"<<endl;cout<<name<<","<<"您想再次获得100元吗![y or n]"<<endl;cin>>Yon;if(strcmp(Yon,"y")||strcmp(Yon,"Y")){nMoney+=100;cout<<"现在您拥有"<<nMoney<<" !"<<endl;cout<<"请继续!"<<endl;}elsecout<<"谢谢!"<<endl;}}void Player();//判断是否为超级玩家void SuperPlayer();};class CWelfareLot //定义福彩类{private:int LotNum[6]; //大奖号码public:CWelfareLot(){} //构造函数void SetLot(); //开奖过程void PrintLot() //输出大奖号码{cout <<"中奖号码为: "<<LotNum[0]<<" "<<LotNum[1]<<""<<LotNum[2]<<" "<<LotNum[3]<<" "<<LotNum[4]<<" "<< "PB"<<" "<<LotNum[5]<<"\n";cout <<"---------------------------------------------------------------------------\n";}friend class CCustomer; //判断用户是否中奖};void CWelfareLot::SetLot() //改进的开奖过程{int nRnd,nNum;for(int i=0;i<6;i++) //要开出6个数字{nRnd=rand(); //随机取循环次数,数字变换的时间是随机的for(int j=0;j<nRnd;j++){nNum=rand()%48+1; //随机取1到48之间的数字进行变换if(nNum<10)cout<<nNum<<'\b'; /*当取的数字小于1,即一位数,显示后光标左移一位,再继续变换数字将原数字覆盖,出现摇奖效果*/elsecout<<nNum<<'\b'<<'\b'; //当取出的数字为两位数,左移两位}cout<<nNum<<" ";LotNum[i]=nNum; //变换到最后的数字即为大奖数字}}void CCustomer::Compare(CWelfareLot&u){int truematch[6];int total=0;truematch[0]=isMatch(Welfare[0],u.LotNum); //判断玩家输入数字是否与计算机产生的是否匹配truematch[1]=isMatch(Welfare[1],u.LotNum);truematch[2]=isMatch(Welfare[2],u.LotNum);truematch[3]=isMatch(Welfare[3],u.LotNum);truematch[4]=isMatch(Welfare[4],u.LotNum);truematch[5]=isMatch(Welfare[5],u.LotNum);//输出最终结果u.PrintLot(); //输出计算机的号码cout <<name<<" , 您投注的号码为:"<<Welfare[0]<<" "<<Welfare[1]<<""<<Welfare[2]<<" "<<Welfare[3]<<" "<<Welfare[4]<<" "<<"PB"<<""<<Welfare[5]<<"\n";cout <<"---------------------------------------------------------------------------\n";//显示比较结果cout <<name<<" , 您匹配的号码数:"<<truematch[0]<<" "<<truematch[1]<<""<<truematch[2]<<" "<<truematch[3]<<" "<<truematch[4]<<" "<<"PB"<<""<<truematch[5]<<"\n";cout <<"---------------------------------------------------------------------------\n";total=(truematch[0]+truematch[1]+truematch[2]+truematch[3]+truematch[4]+truematch[5]);//将对应数字正确的数目相加cout <<"\nTotal Matches: "<<total<<"\n\n"; //显示有几个数字相等if (total==6) //如果6个数字相等赢得大奖,并其他中奖奖励{nRank=1;nMoney+=50;}elseif(total==5){nRank=2;nMoney+=30;}elseif(total==4){nRank=3;nMoney+=20;}elseif(total==3||truematch[5]==1){nRank=4;nMoney+=15;}elsenRank=0;show();}void CCustomer::Player(){CCustomer user;int n;cout<<"1.普通玩家"<<endl;cout<<"2.超级玩家"<<endl;cout<<"请选择:"<<endl;cin>>n;if(n==1){user.inputname();cin.getline(name,20);cout<<name<<"欢迎您!"<<endl;CWelfareLot u2;char Reply2;int PowerBall,play=1;srand((unsigned)time(NULL));do{cout <<"\n"<<name<<",请输入您投注的1~48球号.\n";cout <<"\n";cout <<name<<",请输入最终的能量球号: ";cin>>PowerBall;while(!(PowerBall<=48&&PowerBall>=1)){cout<<"对不起输入错误,请输入1~48之间的整数!\n";cout<<name<<", 请再次输入您的能量球号: ";cin>>PowerBall;}user.Welfare[5]=PowerBall;user.SetWelfare();cout <<"\n";u2.SetLot();cout<<"\n****************************************************************";cout <<"\nPlay #"<<play;cout<<"\n****************************************************************\n";cout <<"\n";pare(u2);user.judge();cout<<name<<", 您想再玩一次吗? [y or n]"<<endl;cin>> Reply2;play+=1;}while (Reply2=='Y'||Reply2=='y');cout<<"\n感谢您的参与"<<name<<"! :-)"<<endl;exit (0);}else{if(n==2)CCustomer::SuperPlayer();else{cout<<"输入错误,请重新输入"<<endl;CCustomer::Player();}}}void CCustomer::SuperPlayer(){CWelfareLot u2;CCustomer user;char Reply2;int PowerBall,play=1;cout<<"请输入用户名:";user.inputname();cin.getline(name,20);user.printname();char code[25];cout<<"请输入密码:";cout.flush();char ct=getch();int i;for(i=0;ct!=13;i++){if(ct!=8){if(i<20){code[i]=ct;cout<<"*";}elsei--;}else if(i==0)i--;else{cout<<"\b\b";i-=2;}cout.flush();ct=getch();}if((i==3)&&(code[0]=='1')&&(code[1]=='2')&&(code[2]=='3')){cout<<endl<<"密码正确,欢迎您,超级玩家!"<<endl;do{int c;cout<<"您现在有100元,请输入所投注数(每注2元):";cin>>c;if(nMoney<(2*c)){cout<<"您目前只剩"<<nMoney<<"元"<<" "<<"请重新投注:";cin>>c;}nMoney-=2*c;cout <<"\n"<<name<<",请输入您投注的1~48球号.\n";cout <<"\n";cout <<name<<",请输入最终的能量球号: ";cin>>PowerBall;while(!(PowerBall<=48&&PowerBall>=1)){cout<<"对不起输入错误,请输入1~48之间的整数!\n";cout<<name<<", 请再次输入您的能量球号: ";cin>>PowerBall;}user.Welfare[5]=PowerBall;user.SetWelfare();cout <<"\n";u2.SetLot();cout<<"\n****************************************************************";cout <<"\nPlay #"<<play;cout<<"\n****************************************************************\n";cout <<"\n";pare(u2);user.judge();cout<<name<<", 您想再玩一次吗? [y or n]"<<endl;cin>> Reply2;play+=1;}while (Reply2=='Y'||Reply2=='y');cout<<"\n感谢您的参与"<<name<<"! :-)"<<endl;exit (0);}else{cout<<endl<<"1.密码错误,请重新输入"<<endl;cout<<"2.退出"<<endl;char n=cin.get();switch(n){case '1':CCustomer::SuperPlayer();case '2': break;void CCustomer::Player();}}}void main(){CCustomer cc;cc._show();cc.Player();}int isMatch(int test, int cp_num[] ) //数字相等,则返回1 {int match = 0;for (int i=0; i<=5; i++)if (test == cp_num[i]) match = 1;cout <<"\n";return match;}。
C++课程设计实验报告(彩票游戏设计)

{
if(pSport[i][p]==sportlot.LotNum[j])
{
for(int k=j,l=i;;k++,l++)
{
if(pSport[p][l]==sportlot.LotNum[k])
{
t1++;
if(((k==6)||(l==6))||(pSport[p][l+1]!=sportlot.LotNum[k+1]))
CWelfareLot welfare;
customer.Setwelfare(ged);
cout<<"\t现在开始开奖,按任意键开始\n";
cin.get();
cout<<"\n\t\t激动人心的一刻,福利彩票开奖!\n\n";
welfare.SetLot();
cout<<endl;
cout<<"\t大奖号码为:\n";
}
}
void CSportLot::SetLot(void)
{
int nRnd,nNum;
for(int j=0;j<7;j++)
{
nRnd=rand();
for(int k=0;k<nRnd;k++)
{
nNum=rand()%10;
cout<<nNum<<'\b';
}
cout <<nNum;
LotNum[j]=nNum;
void PrintLot();
福彩课程设计

福彩课程设计一、教学目标本课程旨在让学生了解福彩的基本概念、种类及其运作方式,培养学生对于社会公益事业的认知和参与意识,提高学生分析问题和解决问题的能力。
1.掌握福彩的基本概念和种类;2.了解福彩的运作方式和公益事业的联系;3.理解福彩在促进社会和谐稳定中的作用。
4.能够分析福彩的相关数据和信息;5.能够就福彩相关话题进行交流和讨论;6.能够运用福彩知识解决实际问题。
情感态度价值观目标:1.培养学生的社会责任感和参与公益事业的意识;2.引导学生正确对待福彩,倡导健康、理性的参与方式;3.提升学生对于社会和谐稳定的关注和认识。
二、教学内容本课程的教学内容主要包括福彩的基本概念、种类及其运作方式,福彩与公益事业的关系,以及福彩在社会和谐稳定中的作用。
具体安排如下:1.第一章:福彩的基本概念和种类;2.第二章:福彩的运作方式和公益事业;3.第三章:福彩与社会主义和谐稳定的关系;4.第四章:福彩案例分析与实践。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。
1.讲授法:通过讲解福彩的基本概念、种类、运作方式等,使学生掌握相关知识;2.讨论法:学生就福彩相关话题进行讨论,提高学生的思考和分析能力;3.案例分析法:分析福彩的实际案例,使学生能够将理论知识应用于实际问题;4.实验法:学生参与福彩的模拟实验,增强学生的实践操作能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:《福彩知识与实践》;2.参考书:福彩相关的学术论文和书籍;3.多媒体资料:福彩相关的视频、图片等;4.实验设备:福彩模拟实验所需的设备。
通过以上教学资源的使用,我们将帮助学生更好地理解和掌握福彩知识,提高学生的实践操作能力。
五、教学评估本课程的评估方式将包括平时表现、作业、考试等方面,以全面、客观、公正地评价学生的学习成果。
c课程设计福彩

c 课程设计福彩一、教学目标本章节的教学目标分为三个维度:知识目标、技能目标和情感态度价值观目标。
1.知识目标:通过本章节的学习,学生需要掌握福彩的基本概念、类型和运作方式,了解我国福彩的历史和发展趋势,以及福彩对于社会和经济的影响。
2.技能目标:学生能够运用所学知识分析福彩市场的现状和问题,提高对于福彩数据的收集、处理和分析能力,培养独立思考和创新解决问题的能力。
3.情感态度价值观目标:培养学生热爱祖国、关注民生的情怀,增强社会责任感,树立正确的金钱观和价值观,提高福彩的道德素养。
二、教学内容本章节的教学内容以我国福彩为主题,主要包括以下部分:1.福彩的基本概念:福彩的定义、特点和分类。
2.福彩的运作方式:福彩的发行、销售、开奖和奖池管理。
3.我国福彩的历史和发展趋势:福彩在我国的起源、发展阶段、现状和未来趋势。
4.福彩对社会和经济的影响:福彩公益金的用途、福彩对于社会福利和经济发展的贡献。
5.福彩市场的分析和评价:福彩市场的规模、竞争格局、问题和对策。
三、教学方法为了提高教学效果,本章节将采用多种教学方法:1.讲授法:教师通过讲解福彩的基本概念、运作方式、历史和发展趋势,使学生掌握福彩的相关知识。
2.案例分析法:教师选取具有代表性的福彩案例,引导学生分析福彩市场的现状和问题,培养学生的分析能力。
3.讨论法:教师学生就福彩的道德素养和社会责任展开讨论,提高学生的情感态度价值观。
4.实验法:教师指导学生进行福彩模拟实验,锻炼学生对于福彩数据的收集、处理和分析能力。
四、教学资源为了支持本章节的教学,我们将准备以下教学资源:1.教材:福彩相关的教材和辅导资料,为学生提供系统的学习参考。
2.参考书:介绍福彩知识的相关书籍,拓展学生的知识视野。
3.多媒体资料:福彩相关的视频、图片等多媒体资料,丰富教学手段,提高学生的学习兴趣。
4.实验设备:福彩模拟实验所需的设备,如计算机、统计软件等。
5.网络资源:利用互联网查阅福彩相关的新闻、报道和论文,了解福彩行业的最新动态。
彩票优选c语言课程设计

彩票优选c语言课程设计一、课程目标知识目标:1. 理解彩票优选的基本原理,掌握彩票号码生成的算法逻辑。
2. 学会运用C语言进行结构体和数组的应用,实现彩票号码的随机生成和优选。
3. 了解并掌握C语言中文件操作的基础知识,实现彩票数据的存储和读取。
技能目标:1. 培养学生运用C语言解决实际问题的编程能力,提高代码编写技巧。
2. 培养学生运用算法思维,优化彩票号码生成策略,提升解决问题的能力。
3. 培养学生团队合作和沟通能力,共同完成课程设计任务。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习热情,形成主动学习的良好习惯。
2. 培养学生面对问题积极思考、勇于尝试的精神,提高克服困难的自信心。
3. 增强学生的法律意识和道德观念,了解并遵循我国关于彩票的相关法律法规。
课程性质:本课程设计属于实践性课程,以培养学生的编程能力和实际应用能力为主要目标。
学生特点:学生具备C语言基础知识,具备一定的编程能力,但实际应用和解决问题的能力有待提高。
教学要求:注重理论与实践相结合,强调学生的动手实践,鼓励学生积极参与讨论,培养学生的创新思维和团队协作能力。
在教学过程中,将目标分解为具体的学习成果,以便于后续的教学设计和评估。
二、教学内容1. C语言基础知识回顾:数据类型、运算符、控制结构等,为后续课程设计打下基础。
相关教材章节:第一章至第三章。
2. 结构体和数组的应用:讲解如何使用结构体存储彩票数据,运用数组实现彩票号码的随机生成。
相关教材章节:第六章、第七章。
3. 函数的定义和调用:介绍如何编写函数实现彩票优选算法,提高代码的模块化。
相关教材章节:第四章。
4. 文件操作:讲解如何将生成的彩票数据存储到文件中,以及从文件中读取数据。
相关教材章节:第十章。
5. 彩票优选算法:介绍常见的彩票优选策略,引导学生优化算法。
相关教材章节:算法部分。
6. 课程设计实践:指导学生运用所学知识,分组完成彩票优选课程设计。
相关教材章节:实践部分。
福彩游戏

数学与计算机学院课程设计说明书课程名称: 面向对象程序设计-课程设计课程代码: 8404101题目: 福彩游戏年级/专业/班: 2008级学生姓名:学号:开始时间:2009 年12 月3日完成时间:2009 年12月 31 日课程设计成绩:指导教师签名:年月日目录1 引言(小三黑体) (1)1.1问题的提出 (1)1.2国内外研究的现状 (1)1.5任务与分析 (1)2 程序的主要功能 (2)2.1输出输入功能 (2)2.2选择功能 (2)2.3投注功能 (2)2.4开奖功能 (2)2.5判断功能 (2)2.6循环功能 ............................................................................................................ 错误!未定义书签。
3 程序运行平台 (2)4 总体设计 (3)5 程序类的说明 (4)6模块分析 (5)6.1输出输入模块 (4)6.2选择模块 (5)6.3投注模块 (5)6.4开奖模块 (6)6.5判断模块 (8)6.6循环模块 ........................................................................................................... 错误!未定义书签。
7 系统测试 (9)8 结论 (12)致谢 (13)参考文献 (14)摘要随着计算机的普及,人们的物质生活和精神生活都发生了巨大的改变。
特别表现在精神生活方面,人们更注重精神方面的娱乐,进而就有很多游戏应运而生。
就像现实生活中的福彩游戏,它简单易懂,而且还有可能中个大奖之类的,使得很多人参加到其中,综合分析了市场方面的种种因素,让人觉得利用C++编程实现类似于福彩的小游戏是可能的,该小游戏要求游戏玩家输入其姓名及其幸运数字,然后选择游戏规则及难易程度,然后再投注所要购买的号码,对所选号码进行投注,及其产生中奖号码,让所选号码与中奖号码比较,判断游戏玩家是否中奖,中奖的奖项,及其中奖金额等等。
c语言课程设计模拟彩票

c语言课程设计模拟一、教学目标本课程的教学目标是使学生掌握C语言的基本语法,能够运用C语言进行简单的程序设计,并通过模拟项目,让学生了解编程在实际生活中的应用。
1.掌握C语言的基本语法和数据类型。
2.掌握函数的定义和调用。
3.了解面向过程的编程思想。
4.能够使用C语言编写简单的程序。
5.能够运用面向过程的编程思想解决实际问题。
情感态度价值观目标:1.培养学生对编程的兴趣和热情。
2.培养学生解决问题的能力和创新精神。
二、教学内容教学内容以《C语言程序设计》教材为基础,结合模拟项目,进行有序的教学安排。
1.引言:介绍C语言的发展历程和应用领域,激发学生的学习兴趣。
2.C语言基础:讲解C语言的基本语法、数据类型和运算符。
3.控制结构:讲解条件语句和循环语句的使用。
4.函数:讲解函数的定义、声明和调用,以及常用库函数的使用。
5.数组和字符串:讲解一维、多维数组的操作,以及字符串的基本操作。
6.指针:讲解指针的概念和运用。
7.结构体和文件:讲解结构体的定义和运用,以及文件的基本操作。
8.模拟项目:通过项目实践,让学生运用所学知识解决实际问题。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:讲解C语言的基本语法和概念,让学生掌握基础知识。
2.案例分析法:通过分析实际案例,让学生了解编程在实际生活中的应用。
3.实验法:让学生动手编写程序,培养学生的实际编程能力。
四、教学资源1.教材:《C语言程序设计》。
2.参考书:提供相关的编程参考书籍,方便学生课后自主学习。
3.多媒体资料:制作课件和教学视频,丰富教学手段。
4.实验设备:提供计算机实验室,让学生进行上机实践。
五、教学评估教学评估分为三个部分:平时表现、作业和考试。
1.平时表现:包括课堂参与度、提问回答、小组合作等,占总评的30%。
2.作业:包括课后练习和编程项目,占总评的40%。
3.考试:包括期中考试和期末考试,占总评的30%。
最新c 彩票游戏课程设计

彩票游戏课程设计摘要当今我国社会正处迅速和谐发展的时代,人民生活水平不断提高。
在不断进步的社会文明的支撑下,彩票产业在我国已经迅速地发展壮大,并与其他产业扭合,为体育、社会福利等事业的发展做出了不可忽视的贡献。
1986年12月,国务院第128次常务会议讨论并通过了民政部“关于开展社会福利有奖募捐活动的请示”,1987年7月,新中国第一枚福利彩票在天津市造币厂印制通过验收。
此后的二十多年里,彩票已经逐渐为广大民众所熟悉,一支多元化、多层次、忠实理性的彩民队伍在人民大众中形成并不断壮大。
与此同时,随着科学技术的不断发展和进步,计算机软件的应用深入到各个领域、各个行业。
在此背景下,一款用于彩票的娱乐游戏软件为彩民们所需要。
本文主要介绍了一个“彩票游戏”的设计思路与开发过程。
追求从“自顶向下、逐步求精、模块化设计和结构化编程”的原则出发,使用C++程序设计语言在VC++ 6.0环境下编写。
关键词:彩票游戏;C++程序设计语言;中奖信息管理;目录分工情况 (2)摘要 (3)1 绪论 (1)1.1 彩票行业的研究现状 (1)1.2 彩票行业的发展趋势 (1)1.3 本课题的研究目的及意义 (2)2 系统分析与设计 (3)2.1 系统分析 (3)2.2 设计思想 (3)2.3 系统流程图 (4)3 设计介绍 (5)3.1 个人模块介绍 (5)3.2 个人模块流程图 (6)3.3 个人模块代码 (6)4 系统调试 (9)4.1 软件调试 (9)结论 (12)参考文献 (12)附录 (13)1 绪论随着中国改革开放的逐步深入,彩票逐渐成为股价以社会公益事业为目的筹集资金的形式。
中国彩票已经走过来20余年的历史,福利彩票和体育彩票已经成为中国最重要的两大彩票。
经过二十年的艰苦努力,中国彩票已开始走向成熟,彩票的品种不断增加、技术不断革新、销售网点逐步专业、彩民群体日趋成熟。
1.1 彩票行业的研究现状从我国恢复发行彩票以来,已经经历了26年,在短短的26年间,从1987年当年全年仅仅1740万元的销售额,到最近2012年财政部公布的全年福利彩票和体育彩票合计共有2615亿元的规模,合计年复合增长率达到了47%,其发展速度和规模可谓巨大。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include <stdlib.h>#include <time.h>#include <stdio.h>#include <cmath>#include <iomanip.h>#include <iostream.h>#include <string.h>#include <conio.h>#include"windows.h"#pragma comment(lib, "winmm.lib")int isMatch(int test, int cp_num[] ); //是否数字匹配void Center_Text(char ShellText[80]){ //将文本居中显示int length;int center;length= strlen(ShellText);center = (80 - length)/2;for(;center!=0;center--){_cputs(" ");}_cputs(ShellText);cout<<endl;}void wait(int milli){clock_t start;start=clock();while((clock()-start)<milli);}void menu() //菜单{MessageBox(NULL,"欢迎进入福彩游戏","欢迎",0);cout<<"\n\n\n\n";Center_Text("警告");cout<<endl<<endl;Center_Text("本计算机程序受版权法和国际条约保护");cout<<endl;Center_Text("如未经授权而擅自复制、传播、修改本程序(或者其中任何部分)");cout<<endl;Center_Text("将受到严厉的刑事及民事制裁,并在法律允许的范围内受到最大可能的起诉");cout<<endl;cout<<"Yogurt "<<endl;cout<<"版权所有"<<endl;cout<<"2012年10月"<<endl;cout<<endl;cout<<" 3";wait(1000);cout.flush();cout<<"\b\b \b";int i;for(i=2;i>0;i--){cout<<i;wait(1000);cout.flush();cout<<'\b';}wait(1000);cout.flush();system("cls");cout<<"\n\n\n\n";Center_Text("健康游戏忠告");cout<<endl;cout<<endl;Center_Text("抵制不良游戏,拒绝盗版游戏");cout<<endl;Center_Text("注意自我保护,谨防受骗上当");cout<<endl;Center_Text("适度游戏益脑,沉迷游戏伤身");cout<<endl;Center_Text("合理安排时间,享受健康生活");cout<<endl;cout<<"\n\n";for(int j=0;j<5;j++){for(i=0;i<39;i++){switch(j){case 0:cout<<"**";break;case 1:cout<<"\b.\b\b";break;case 2:cout<<"..";break;case 3:cout<<"\b/\b\b";break;case 4:cout<<"//";break;}wait(25);cout.flush();}}system("cls");cout<<"\n\n\n";Center_Text("课程题目: 福彩游戏");cout<<endl;Center_Text("学号姓名: 1106840203 陆雅婷");Center_Text("指导老师: 张宏");cout<<endl;Center_Text("难度等级: A");cout<<"\n\n\n";cout.flush();system("pause");system("cls");}class CWelfareLot;class CCustomer //定义用户类{private:int nMoney; //用户彩金int nRank; //中奖等级char name[20]; //用户姓名char Yon[5]; //存放用户输入的yes或nopublic:int Welfare[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() //接受福彩投注,成功返回1{int n;cout<<"您现在有100元,请输入所投注数(每注2元):";cin>>n;if(nMoney<(2*n)){cout<<"您目前只剩"<<nMoney<<"元"<<" "<<"请重新投注:";cin>>n;}nMoney-=2*n;int j;for (j=0; j<5; j++) //输入5个所选号码{cout<<"Enter Ball # "<<j+1<<": ";while (!(cin >> Welfare[j])) //在输入的同时对输入的类型及大小做限定{cin.clear();while (!(cin.get() !='\n'))continue;cout <<"对不起输入错误,请输入1~48之间的整数\n";}if ((Welfare[j]<1)){cout << "对不起输入错误,请输入1~48之间的整数\n ";j--;}if ((Welfare[j]>48)){cout <<"对不起输入错误,请输入1~48之间的整数\n";j--;}}return 1;}void Compare(CWelfareLot& ); //比较福彩,赋值中奖等级void show() //根据中奖等级计算奖金,输出结果{switch(nRank){case 1:cout <<"恭喜"<<name<<"! 您获得一等奖!!"<<endl;MessageBox(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);cout<<"现在你有"<<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;}cout<<"\n*****************************************************************\n ";}void judge() //判断用户彩金数目{if(nMoney<0||nMoney==0){cout<<"对不起,您没钱了!"<<endl;cout<<name<<","<<"您想再次获得100元吗![y or n]"<<endl;cin>>Yon;if(strcmp(Yon,"y")||strcmp(Yon,"Y")){nMoney+=100;cout<<"现在您拥有"<<nMoney<<" !"<<endl;cout<<"请继续!"<<endl;}elsecout<<"谢谢!"<<endl;}}void Player();//判断是否为超级玩家void SuperPlayer();};class CWelfareLot //定义福彩类{private:int LotNum[6]; //大奖号码public:CWelfareLot(){} //构造函数void SetLot(); //开奖过程void PrintLot() //输出大奖号码{cout <<"中奖号码为: "<<LotNum[0]<<" "<<LotNum[1]<<" "<<LotNum[2]<<" "<<LotNum[3]<<" "<<LotNum[4]<<" "<< "PB"<<" "<<LotNum[5]<<"\n";cout <<"---------------------------------------------------------------------------\n";}friend class CCustomer; //判断用户是否中奖};void CWelfareLot::SetLot() //改进的开奖过程{int nRnd,nNum;for(int i=0;i<6;i++) //要开出6个数字{nRnd=rand(); //随机取循环次数,数字变换的时间是随机的for(int j=0;j<nRnd;j++){nNum=rand()%48+1; //随机取1到48之间的数字进行变换if(nNum<10)cout<<nNum<<'\b'; /*当取的数字小于1,即一位数,显示后光标左移一位,再继续变换数字将原数字覆盖,出现摇奖效果*/elsecout<<nNum<<'\b'<<'\b'; //当取出的数字为两位数,左移两位}cout<<nNum<<" ";LotNum[i]=nNum; //变换到最后的数字即为大奖数字}}void CCustomer::Compare(CWelfareLot&u){int truematch[6];int total=0;truematch[0]=isMatch(Welfare[0],u.LotNum); //判断玩家输入数字是否与计算机产生的是否匹配truematch[1]=isMatch(Welfare[1],u.LotNum);truematch[2]=isMatch(Welfare[2],u.LotNum);truematch[3]=isMatch(Welfare[3],u.LotNum);truematch[4]=isMatch(Welfare[4],u.LotNum);truematch[5]=isMatch(Welfare[5],u.LotNum);//输出最终结果u.PrintLot(); //输出计算机的号码cout <<name<<" , 您投注的号码为:"<<Welfare[0]<<" "<<Welfare[1]<<""<<Welfare[2]<<" "<<Welfare[3]<<" "<<Welfare[4]<<" "<<"PB"<<""<<Welfare[5]<<"\n";cout <<"---------------------------------------------------------------------------\n";//显示比较结果cout <<name<<" , 您匹配的号码数:"<<truematch[0]<<" "<<truematch[1]<<""<<truematch[2]<<" "<<truematch[3]<<" "<<truematch[4]<<" "<<"PB"<<""<<truematch[5]<<"\n";cout <<"---------------------------------------------------------------------------\n";total=(truematch[0]+truematch[1]+truematch[2]+truematch[3]+truematch[4]+truematch[5] );//将对应数字正确的数目相加cout <<"\nTotal Matches: "<<total<<"\n\n"; //显示有几个数字相等if (total==6) //如果6个数字相等赢得大奖,并其他中奖奖励{nRank=1;nMoney+=50;}elseif(total==5){nRank=2;nMoney+=30;}elseif(total==4){nRank=3;nMoney+=20;}elseif(total==3||truematch[5]==1){nRank=4;nMoney+=15;}elseif(total==2||truematch[5]==1){nRank=5;nMoney+=10;}elseif(total==2){nRank=6;nMoney+=5;}elsenRank=0;show();}void CCustomer::Player(){CCustomer user;int n;cout<<"1.普通玩家"<<endl;cout<<"2.超级玩家"<<endl;cout<<"请选择:"<<endl;cin>>n;if(n==1){user.inputname();cin.getline(name,20);cout<<name<<"欢迎您!"<<endl;CWelfareLot u2;char Reply2;int PowerBall,play=1;srand((unsigned)time(NULL));do{cout <<"\n"<<name<<",请输入您投注的1~48球号.\n";cout <<"\n";cout <<name<<",请输入最终的能量球号: ";cin>>PowerBall;while(!(PowerBall<=48&&PowerBall>=1)){cout<<"对不起输入错误,请输入1~48之间的整数!\n";cout<<name<<", 请再次输入您的能量球号: ";cin>>PowerBall;}user.Welfare[5]=PowerBall;user.SetWelfare();cout <<"\n";u2.SetLot();cout<<"\n****************************************************************";cout <<"\nPlay #"<<play;cout<<"\n****************************************************************\n";cout <<"\n";pare(u2);user.judge();cout<<name<<", 您想再玩一次吗? [y or n]"<<endl;cin>> Reply2;play+=1;}while (Reply2=='Y'||Reply2=='y');cout<<"\n感谢您的参与"<<name<<"! :-)"<<endl;exit (0);}else{if(n==2)CCustomer::SuperPlayer();else{cout<<"输入错误,请重新输入"<<endl;MessageBox(NULL,"输入错误,请重新输入","提示",0);CCustomer::Player();}}}void CCustomer::SuperPlayer(){CWelfareLot u2;CCustomer user;char Reply2;int PowerBall,play=1;cout<<"请输入用户名:";user.inputname();cin.getline(name,20);user.printname();char code[25];cout<<"请输入密码:";cout.flush();char ct=getch();int i;for(i=0;ct!=13;i++){if(ct!=8){if(i<20){code[i]=ct;cout<<"*";}elsei--;}else if(i==0)i--;else{cout<<"\b\b";i-=2;}cout.flush();ct=getch();}if((i==3)&&(code[0]=='1')&&(code[1]=='2')&&(code[2]=='3')){cout<<endl<<"密码正确,欢迎您,超级玩家!"<<endl;MessageBox(NULL,"密码正确,欢迎您,超级玩家!","超级玩家",0);do{system("cls");int c;cout<<"您现在有100元,请输入所投注数(每注2元):";cin>>c;if(nMoney<(2*c)){cout<<"您目前只剩"<<nMoney<<"元"<<" "<<"请重新投注:";cin>>c;}nMoney-=2*c;cout <<"\n"<<name<<",请输入您投注的1~48球号.\n";cout <<"\n";cout <<name<<",请输入最终的能量球号: ";cin>>PowerBall;while(!(PowerBall<=48&&PowerBall>=1)){cout<<"对不起输入错误,请输入1~48之间的整数!\n";cout<<name<<", 请再次输入您的能量球号: ";cin>>PowerBall;}Welfare[5]=PowerBall;cout <<"\n";int j;for (j=0; j<5; j++) //输入5个所选号码{cout<<"Enter Ball # "<<j+1<<": ";while (!(cin >> Welfare[j])) //在输入的同时对输入的类型及大小做限定{cin.clear();while (!(cin.get() !='\n'))continue;cout <<"对不起输入错误,请输入1~48之间的整数\n";}if ((Welfare[j]<1)){cout << "对不起输入错误,请输入1~48之间的整数\n ";j--;}if ((Welfare[j]>48)){cout <<"对不起输入错误,请输入1~48之间的整数\n";j--;}}cout<<"您投注的号码为:"<<Welfare[0]<<" "<<Welfare[1]<<" "<<Welfare[2]<<" "<<Welfare[3]<<" "<<Welfare[4]<<" "<<Welfare[5]<<endl;cout<<"大奖号码为:"<<endl;int nRnd,nNum;for(int i=0;i<6;i++) //要开出6个数字{nRnd=rand(); //随机取循环次数,数字变换的时间是随机的for(int j=0;j<nRnd;j++){nNum=rand()%48+1; //随机取1到48之间的数字进行变换if(nNum<10)cout<<nNum<<'\b'; /*当取的数字小于1,即一位数,显示后光标左移一位,再继续变换数字将原数字覆盖,出现摇奖效果*/elsecout<<nNum<<'\b'<<'\b'; //当取出的数字为两位数,左移两位if(j==nRnd-1)cout<<Welfare[i]<<" ";}}int money=50+nMoney;cout<<"恭喜您中了一等奖!"<<" "<<"奖金50元!"<<endl;MessageBox(NULL,"恭喜您中一等奖!","恭喜中奖",0);cout<<"现在您拥有"<<money<<"元";cout<<"您想再玩一次吗?[Y/N]"<<endl;cin>> Reply2;play+=1;}while (Reply2=='Y'||Reply2=='y');cout<<"\n感谢您的参与"<<name<<"! :-)"<<endl;}else{cout<<endl<<"1.密码错误,请重新输入"<<endl;cout<<"2.退出"<<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[] ) //数字相等,则返回1{int match = 0;for (int i=0; i<=5; i++)if (test == cp_num[i]) match = 1;cout <<"\n";return match;}。