C++课程设计实验报告彩票游戏设计.docx
- 文档编号:4418116
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:18
- 大小:856.73KB
C++课程设计实验报告彩票游戏设计.docx
《C++课程设计实验报告彩票游戏设计.docx》由会员分享,可在线阅读,更多相关《C++课程设计实验报告彩票游戏设计.docx(18页珍藏版)》请在冰豆网上搜索。
C++课程设计实验报告彩票游戏设计
1题目内容及设计要求
彩票游戏
模拟体彩和福彩的投彩的开奖过程。
(1)进一步完善福彩部分,无论是开奖还是下注,福彩的6个号码都不能重复,请在程序中进行设置。
(1)福彩的中奖号码与其数字的顺序无关,重新设置中奖等级。
(3)进一步完善体彩部分,体彩的中奖等级分为特等奖(数字完全吻合),一等奖(6个连续数字吻合),二等奖(5个连续数字吻合),三等级(4个连续数字吻合),安慰奖(2个连续数字吻合)。
2总体设计
2.1总体功能框图
图1Ccustomer类图
图2CsportLot类图
图3CwelfareLot类图
2.2类的设计说明
#include
//#include
#include
#include
usingnamespacestd;
intdf=0;
classCSportLot;
classCWelfareLot;
classCCustomer
{
private:
intpSport[100][7];
intpWelfare[100][6];
public:
voidSetSport(intp[100][7])
{};
voidSetwelfare(intp[100][6])
{};
voidCompare(CSportLot&);
voidCompare(CWelfareLot&);
};
classCSportLot
{
private:
intLotNum[7];
public:
CSportLot(){}
voidSetLot();
voidPrintLot();
friendvoidCCustomer:
:
Compare(CSportLot&);
};
classCWelfareLot
{
private:
intLotNum[6];
public:
CWelfareLot(){}
voidSetLot();
voidPrintLot();
friendvoidCCustomer:
:
Compare(CWelfareLot&);
};
intmain(void)
{
//srand(time(NULL));
stringstrChoice;
do
{}while(strChoice!
="3");
cout<<"\n\n\t\t谢谢使用,下次再见!
\n";
return0;
}
2.3主要算法流程图
3程序清单及注释
#include
//#include
#include
#include
usingnamespacestd;
intdf=0;
classCSportLot;
classCWelfareLot;
classCCustomer
{
private:
intpSport[100][7];
intpWelfare[100][6];
public:
voidSetSport(intp[100][7])
{
for(intb=0;b for(inti=0;i<7;i++) pSport[b][i]=p[b][i]; } voidSetwelfare(intp[100][6]) {for(intb=0;b for(inti=0;i<6;i++) pWelfare[b][i]=p[b][i]; } voidCompare(CSportLot&); voidCompare(CWelfareLot&); }; classCSportLot { private: intLotNum[7]; public: CSportLot(){} voidSetLot(); voidPrintLot(); friendvoidCCustomer: : Compare(CSportLot&); }; classCWelfareLot { private: intLotNum[6]; public: CWelfareLot(){} voidSetLot(); voidPrintLot(); friendvoidCCustomer: : Compare(CWelfareLot&); }; voidCCustomer: : Compare(CSportLot&sportlot) { intt1=0,t2=0; for(intp=0;p { for(inti=0;i<7;i++) { for(intj=0;j<7;j++) { if(pSport[i][p]==sportlot.LotNum[j]) { for(intk=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])) { if(t1>t2) t2=t1; t1=0; break; } } } } } } if(t2==7) cout<<"\t恭喜您,您中的是特等奖,该请客了! \n\n\n"; elseif(t2==6) cout<<"\t恭喜您,您中的是一等奖,该请客了! \n\n\n"; elseif(t2==5) cout<<"\t恭喜您,您中的是二等奖,该请客了! \n\n\n"; elseif(t2==4) cout<<"\t恭喜您,您中的是三等奖,该请客了! \n\n\n"; elseif(t2==2) cout<<"\t恭喜您,您中的是安慰奖,该请客了! \n\n\n"; else cout<<"\t很遗憾,这次您没有中奖,继续努力哦! \n\n\n"; } } voidCCustomer: : Compare(CWelfareLot&welfarelot) { intt=0; for(intb=0;b { for(inti=0;i<6;i++) if(welfarelot.LotNum[i]==pWelfare[b][i]) t++; if((6-t)==6) cout<<"\t很遗憾,这次您没有中奖,请以后继续努力! \n\n\n"; else cout<<"\t恭喜您,您中的奖是"<<(6-t)<<"等奖,该请客了! \n\n\n"; } } voidCSportLot: : SetLot(void) { intnRnd,nNum; for(intj=0;j<7;j++) { nRnd=rand(); for(intk=0;k { nNum=rand()%10; cout< } cout< LotNum[j]=nNum; } } voidCSportLot: : PrintLot() { for(inti=0;i<7;i++) cout< cout< } voidCWelfareLot: : SetLot() { intnRnd,nNum; for(inti=0;i<6;i++) { sta: nRnd=rand(); for(intj=0;j { nNum=rand()%21; if(nNum<10) cout< else cout< } for(intk=0;k if(nNum==LotNum[k]) gotosta; cout< LotNum[i]=nNum; } } voidCWelfareLot: : PrintLot() { for(inti=0;i<6;i++) cout< cout< } voidSportLottery() { cout<<"\n\t\t体育彩票,机会多多! \n\n"; cout<<"\t请输入7位(0-9)数字: "< intusersport[7];intged[100][7];intx; while (1) { for(inti=0;i<7;i++)//输入下注的号码 {cout<<"第"< "; cin>>usersport[i]; if(usersport[i]>=10||usersport[i]<0) { cout<<"输入的数字应在0-9之间,请重新输入! \n"; i--; } } for(inti=0;i<7;i++) ged[df][i]=usersport[i]; df++; cout<<"是否继续输入(1或0): "; cin>>x; if(x==0)break; } CCustomercustomer; CSportLotsport; customer.SetSport(ged); cout<<"\t现在开始开奖,按任意键开始\n"; cin.get(); cout<<"\n\t\t激动人心的一刻,体育彩票开奖! \n\n"; sport.SetLot(); cout< cout<<"\t大奖号码为: \n"; sport.PrintLot(); customer.Compare(sport); } voidWelfareLottery() { cout<<"\n\t\t福利彩票,惊喜无限! \n\n"; cout<<"\t请输入6位(0-20)数字: \n"; intuserwelfare[6];intged[100][6];intx; while (1) { cout< for(inti=0;i<6;i++) { cout< cout<<"第"< "; cin>>userwelfare[i]; for(intj=0;j if(userwelfare[i]>20||userwelfare[i]<0||userwelfare[i]==userwelfare[j]) { cout<<"输入的数字应该在0-20之间不重复的数,请重新输入! \n"; i--; } } for(inti=0;i<6;i++) ged[df][i]=userwelfare[i]; df++; cout<<"是否继续输入(1或0): "< cin>>x; if(x==0)break; } CCustomercustomer; CWelfareLotwelfare; customer.Setwelfare(ged); cout<<"\t现在开始开奖,按任意键开始\n"; cin.get(); cout<<"\n\t\t激动人心的一刻,福利彩票开奖! \n\n"; welfare.SetLot(); cout< cout<<"\t大奖号码为: \n"; welfare.PrintLot(); customer.Compare(welfare); } intmain(void) { //srand(time(NULL)); stringstrChoice; do { cout<<"\t\t*****************************************"< cout<<"\t\t*\t欢迎进入彩票游戏,祝您好运! \t*"< cout<<"\t\t*****************************************"< cout<<"\n\n\n"< cout<<"\t\t\t\t1.体育彩票\n"; cout<<"\t\t\t\t2.福利彩票\n"; cout<<"\t\t\t\t3.退出\n"; cout<<"\n\n\t\t\t请选择下注福彩还是体彩: "; cin>>strChoice; if(strChoice=="1") SportLottery(); elseif(strChoice=="2") WelfareLottery(); elseif(strChoice=="3") cout<<"\t\t输入错误,请重新选择: \n"; }while(strChoice! ="3"); cout<<"\n\n\t\t谢谢使用,下次再见! \n"; return0; } 4运行结果与分析 程序运行时,首先出现菜单界面。 如图1所示。 图1程序运行主界面 选择1,进入体育彩票下注界面。 如图2所示 图2进入体育彩票下注界面 用户依次输入想要选择的7位体彩号码。 如图3,图4所示 图3当输入的号码不符合要求时,会提示重新输入 图4输入了正确的7位体彩号码(按1继续输入数据,按0结束输入) 按任意键开始体彩开奖,并显示用户输入号码的中奖类别。 如图5所示 图5显示用户的体彩中奖类型 选择2,进入福利彩票下注界面。 如图6所示 图6进入福利彩票下注界面 用户依次输入想要选择的6位福彩号码。 如图7所示 图7当输入的号码不符合要求时,会提示重新输入(按1继续输入数据,按0结束输入) 按任意键开始福彩开奖,并显示用户输入号码的中奖类别。 如图8所示 图8显示用户的福彩中奖类型 选择3,进入退出界面。 如图9所示 图9退出本程序 5总结 对于本次课程设计的过程中出现的问题,我觉得最最困难的是关于体彩开奖过程中关于连续数字个数的判断和计数,这需要借助三个循环和两次判断来从中奖号码和用户购买号码中比较得出记录相同号码的个数,从而判断出用户在这次开奖中是否中奖,以及中了几等奖! 在老师的指导下,我发现了自己的程序还存在着许多不足,比如无法实现用户多组数据的输入,和中奖号码进行比较得出中奖信息等等,按照老师的要求,我思考了许久终于想出了解决的办法,从中我获得了许多…… 从这次课程设计中,我发现自己还存在很多不足,对已学知识掌握地还不是很好。 在编程思想方面个人显得比较死板,没有创新的思想,还不能积极变通,以上这些都需要我在日后的实践中注意和改进。 6参考文献 [1]李爱华,程磊著.面向对象程序设计(C++语言).北京: 清华大学出版社,2010 [2]刘振安,刘燕君著.C++程序设计课程设计.北京: 机械工业出版社,2004 [3]谭浩强著.C++程序设计实践指导.北京: 清华大学出版社,2005
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 实验 报告 彩票 游戏 设计