彩票游戏《面向对象程序设计》Word文档下载推荐.docx
《彩票游戏《面向对象程序设计》Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《彩票游戏《面向对象程序设计》Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
通过以前的学习以及查看相关资料,按着题目要求编写程序,进一步加强对编程的训练,使得自己掌握一些将书本知识转化为实际应用当中.在整个程序中,大部分是我们目前所学知识,通过一些相关书籍去查找相应的库函数,难关是对彩票游戏算法的设计,相关的循环需要很好的定位,对函数的流程需要准确的把握,相关的随机数据需参考相关的书籍。
1.2课程设计的题目:
模拟体彩和福彩的投彩及开奖过程。
1.3题目要求:
(1)对于福彩类部分,无论是开奖还是下注,福彩的6个号码都不能重复,请在程序中进行设置。
(2)福彩的中奖号码与其数字的顺序无关。
(3)体彩的中奖等级分成特等奖(数字全部吻合),一等奖(6个连续的数字吻合),二等奖(5个连续的数字吻合),三等奖(4个连续的数字吻合),安慰奖(2个连续的数字吻合)。
(4)在用户类中有资金成员,可以一次下很多注(受资金限制),每注2元,同时设定博彩的奖励规则,将中奖的奖金加入资金账户,具体的各个等级的奖金金额自定。
(5)高级玩家可以查看计算机产生的随机数(需输入密码),然后据此下注,只赢不输)。
1.4课程设计大体思路
制图人:
黄永生,郑丹
体彩和福彩类似,在这不
绘制了。
ure
false
是
ture
不是
继续
结束
整个程序有七个模块,每个模块具有不同的功能,完全对应题目要求,界面用的是普通界面。
运行过程中达到程序的完整性。
彩票函数分为体彩(intticai)和福彩(boolfucai),也是游戏过程中的重要函数,完成对用户输入的数据进行分析,并对主函数返回相应的值,为主函数判断奖项做铺垫,具体运用到数组和循环,难关是算法的是设计,运行过程中函数完成了对数据分析和返回值传递。
玩家的身份判断(intgaojiwanjia()),运用的是验证函数,运行过程中为主函数传递了玩家的相关信息。
图形函数和文字函数是简单的输出函数(voidprintline(),voidprintword()),为用户提供了游戏相关的信息。
游戏运行函数是游戏过程中的主体函数(intcaipiaoyanzheng()),要注意对输入流的控制,如果控制不好就会对彩票函数造成影响,得到错误的结果,使用rand()和srand(seed)得到机器产生的伪随机数,并和用户输入的数据进行比较,得出相应的奖金额。
主题函数主要是对其他函数的调用,游戏循环部分要注意对循环点的设置。
程序完全达到要求,并在此基础上有些创新,应用的语句很多,都是学过的,在这不详述了。
3课程设计的源程序:
/*在程序的编写中主要用到的是大一上半学期的知识,所学知识大部分用到,主要难关是算法,
其中产生随机数据使用rand()和srand(seed)是在C++参考书中找到的,
程序中夹杂着不同的循环需要仔细定位,算法需要深刻理解
*/
#include<
iostream>
//使用cin,cout和endl
string>
//用string类定义字符串变量
cstdlib>
//使用rand()和srand(seed)
ctime>
//使用其中的函数time()获取系统时间,作为srand(seed)中的seed
#definemimatrue9//定义宏名:
密码正确
#definemimafalse8//定义宏名:
密码错误
#definenomima7//定义宏名:
没有密码
usingnamespacestd;
boolfucai(intnum[],intchoice[])//福彩函数
{
for(inti=0;
i<
6;
i++)
if(num[i]!
=choice[i])returnfalse;
returntrue;
}
intticai(intnum[],intchoice[])//体彩函数
intlevel=0;
inti,j,k;
for(i=6;
i>
0;
i--)
{
for(j=0;
j<
7-i;
j++)
{
for(k=j;
k<
i+j;
k++)
{
if(num[k]!
=choice[k])break;
}
if(k==i+j)returni;
}
}
return0;
voidprintline()//图像输入函数
{
cout<
<
"
******************************************************************"
endl;
voidprintword()//彩票说明函数
^_^[1]对于福彩类部分,无论是开奖还是下注,福彩的6个号码都不能重复。
^_^\n"
<
^_^[2]福彩的中奖号码与其数字的顺序无关。
^_^[3]体彩的中奖等级分成特等奖(数字全部吻合,五百万元),一等奖(五个连续的数字"
^-^吻合,二百万元),二等奖(四个连续的数字吻合,一百万元),三等奖(三个连续的数^_^"
字吻合,一千元),四等奖(二个连续的数字吻合,50元)。
其它等级奖项无奖^_^\n"
^_^[4]在用户类中有资金成员,可以一次下很多注(受资金限制),每注2元。
^_^[5]高级玩家可以查看计算机产生的随机数(需输入密码),然后据此下注,只赢不输。
<
^_^程序运行的过程中会有提示,请玩家自己按照提示进行游戏。
^_^"
intgaojiwanjia()//高级玩家验证函数
intm;
charb;
^_^如果你是高级玩家,请输入你的密码。
输入密码,请输入[Y]或[y],不输入密码,请输入其他字符。
^_^"
cin>
>
b;
if(b=='
Y'
||b=='
y'
)
cout<
输入密码"
;
cin>
m;
if(m==123456)
returnmimatrue;
elsereturnmimafalse;
elsereturnnomima;
intcaipiaoyanzheng()//彩票验证函数
intlevel;
intrandNum[6];
intchoice[6];
srand((unsigned)time(NULL));
//产生随机数据
randNum[0]=rand()%9+1;
randNum[1]=rand()%9+1;
randNum[2]=rand()%9+1;
randNum[3]=rand()%9+1;
randNum[4]=rand()%9+1;
randNum[5]=rand()%9+1;
intresult=gaojiwanjia();
if(result==mimatrue)for(inti=0;
i++)cout<
randNum[i];
//高级玩家密码结果分析
else
if(result==mimafalse)cout<
elseif(result==nomima)cout<
^_^^_^请输入你的幸运号码^_^^_^"
while(getchar()!
=10);
//对输出流的清空,对getchar()不造成影响
choice[i]=(getchar()-48);
for(i=0;
i++)cout<
choice[i];
if(fucai(randNum,choice))cout<
^_^体彩:
你中奖了^_^"
elsecout<
祝您好运^_^"
^_^福彩:
您中了"
6-(level=ticai(randNum,choice))<
等奖!
returnlevel;
voidmain()//主函数进行彩票开奖
charc;
//循环答案
boolflag;
//用于事件控制循环
flag=true;
while(flag)
nowthegamebegin!
!
printline();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~彩票游戏~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
printword();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~祝你好运~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
制作人:
黄永生,郑丹"
请输入你的初始金额:
intsum;
//帐户初额
sum;
if(sum>
=2)
sum=sum-2;
//下注
else
cout<
sum<
break;
intjiangxiang=caipiaoyanzheng();
//奖金的注入
if(jiangxiang==0)
sum=sum;
elseif(jiangxiang==1)
elseif(jiangxiang==2)
sum=sum+50;
elseif(jiangxiang==3)
sum=sum+1000;
elseif(jiangxiang==4)
sum=sum+1000000;
elseif(jiangxiang==5)
sum=sum+2000000;
elseif(jiangxiang==6)
sum=sum+5000000;
你的余额为:
//输出余额
是否继续进行彩票游戏,是输入[Y]或[y],否输入其他字符"
//彩票循环提示
c;
if(!
(c=='
||c=='
))flag=false;
4运行结果:
4.1功能:
游戏提示
4.2,功能:
用户输入金额
4.3功能:
高级玩家密码录入
4.4功能:
普通玩家的幸运号码录入
4.6功能:
高级玩家幸运号码录入
4.7功能:
彩票游戏循环
5.课程设计总结
心得体会
1.经过上一个学期对《C程序设计》的学习,我们学习了理论知识,了解了C++语言程序设计的思想,这些知识都为我们的下一步学习打下了坚实的基础。
通过课程设计,一方面是为了检查我们一个学期来我们学习的成果,另一方面也是为了让我们进一步的掌握和运用它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。
2.
在彩票游戏的编写过程中也体会到了做事情一定要细心、认真。
更加知道了要把握好基础知识。
还有体会到了成功的感觉!
3.
通过本项课程设计也培养了我独立思考、综合运用所学有关相应知识的能力,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!
5.
在这次课程设计中也知道了自己的动手能力不强有待进一部的提高!
在设计过程中不能够把书本上的知识与实践相结合,这也就增加了设计不好该程序的想法!
在设计过程中的一次次设计错误增加了我放弃的想法!
不过经过我和搭档的努力终于完成了课程设计!
完成该程序后想起自己以前的每一次对自己失去信心,就觉得并不是在知识掌握上打败了,而是自己对自己缺乏信心!
只要自己对自己不失去信心相信就可以完成那些以前认为完成不了的事情!
也让我懂得了要想成功首先就必须有很强的自信心!
懂得了自己以后要在做任何事情时都要自信!
当自己都不相信自己能够成功时还可能会获得成功吗?
6.
我在C++语言程序设计的过程中也知道了自己在以前的学习中有很大的不足导致在设计过程中出现了很多的问题,有些地方看不懂也不知道怎么去设计,但是在设计过程中也学习了很多,掌握了自己以前没有学好的知识,虽然一时可以掌握完以前没有学好的知识,不过也给自己敲响了警钟,在学习中不可以伏于表面,要想学好每一门课程都要踏踏实实,做什么都不是给别人看的!
要更好的掌握该门知识,提高自己的自身的修养,提高自己的能力!
为以后的工作打下良好的知识基础和技能基础!
郑丹
学习了C++语言让我懂得了很多做事情的道理。
比如说通过编程我知道无论干什么事都要严谨,千万马虎不得。
C++语言程序设计要求结构紧凑,概念准确。
如在程序中有一点小小错误,都会致使整个程序无法运行,直到你修改准确无误。
可等到做完事就没有修改的机会了。
通过这次课程设计,使我学到了很多东西。
这不仅提高了我对C++语言知识的进一步了解,实际经验。
因此,在做的过程当中遇到了很多困难,当然也增强了自己动手动脑编写程序的能力,课程设计的要求严谨,不允许出现任何错误,使程序可以顺利的编完。
第一次针对做具体情况的c++程序设计,缺乏也学到了很多的知识。
感触颇多:
1、对c++知识有了更进一步的认识,对以c++的开发过程有了一定的了解。
2、在向老师的请教和与同学的共同研讨中,我体会到团队协作的重要。
3、学习一门知识一定要深入,不能浅尝辄止。
4、兴趣决定一切。
想做好一件事情,首先要热爱它编程也不例外。
在做c++程序设计时,我们也遇到了许多困难,曾一度对自己能否成功产生了怀疑,甚至失去了信心但正是基于对计算科学的热爱,最终使我坚持了下来。
努力将所遇到的问题一一解决,在解决问题的那一瞬间,我的心中油然而生一种成功感,这种成功感是在平时生活、学习中无法体会的。
通过对C++语言程序设计的学习,使我学到了数据类型的表达、顺序结构程序设计、选择程序设计,循环程序设计等。
在掌握基本算法的基础上,逐步提高了阅读程序的能和自己周全的思维方式。
以及编写程序的能力,为将来自学一些其他的计算机语言及编制大型程序打下良好基础。
而且,现在也可以编写一些简单的程序,大有收获。
黄永生
6参考书目:
[1]谭浩强,《C++程序设计》,北京,清华大学出版社,2004.6
[2]《C++语言程序设计》借于图书馆,蒋爱军编著,—北京:
人民邮电出版社,2008.7