1、19天津理工中环信息学院天津理工大学中环信息学院课程设计报告 面向对象程序设计题目名称:彩票游戏专业班级:动漫专业学生姓名:学生学号:指导教师:成 绩 :学 期 :目 录1、课程设计的目的、课程设计题目、题目要求31.1课程设计的目的31.2课程设计的题目31.3题目要求31.4 UML活动图42课程设计的实验报告内容:53课程设计的源程序:54运行结果105课程设计总结166参考书目181课程设计的目的、课程设计题目、题目要求1.1课程设计的目的:通过以前的学习以及查看相关资料,按着题目要求编写程序,进一步加强对编程的训练,使得自己掌握一些将书本知识转化为实际应用当中.在整个程序中,大部分是
2、我们目前所学知识,通过一些相关书籍去查找相应的库函数,难关是对彩票游戏算法的设计,相关的循环需要很好的定位,对函数的流程需要准确的把握,相关的随机数据需参考相关的书籍。1.2课程设计的题目: 彩票游戏模拟体彩和福彩的投彩及开奖过程。1.3题目要求:(1) 对于福彩类部分,无论是开奖还是下注,福彩的6个号码都不能重复,请在程序中进行设置。(2) 福彩的中奖号码与其数字的顺序无关。(3) 体彩的中奖等级分成特等奖(数字全部吻合),一等奖(6个连续的数字吻合),二等奖(5个连续的数字吻合),三等奖(4个连续的数字吻合),安慰奖(2个连续的数字吻合)。(4) 在用户类中有资金成员,可以一次下很多注(受
3、资金限制),每注2元,同时设定博彩的奖励规则,将中奖的奖金加入资金账户,具体的各个等级的奖金金额自定。(5) 高级玩家可以查看计算机产生的随机数(需输入密码),然后据此下注,只赢不输)。1.4课程设计大体思路 制图人:黄永生,郑丹体彩和福彩类似,在这不绘制了。ureureurefalse 彩票游戏说明设定账户设定循环标志进行下注生成6个随机数询问是否是高级玩家是输入密码ture检查密码不是获取游戏者输入的号码显示随机数进行号码比较,并判断中奖情况对获奖情况分析,得出奖项询问是否在玩一局获取游戏者输入字符继续结束2课程设计的实验报告内容: 整个程序有七个模块,每个模块具有不同的功能,完全对应题目
4、要求,界面用的是普通界面。运行过程中达到程序的完整性。 彩票函数分为体彩(int ticai)和福彩(bool fucai),也是游戏过程中的重要函数,完成对用户输入的数据进行分析,并对主函数返回相应的值,为主函数判断奖项做铺垫,具体运用到数组和循环,难关是算法的是设计,运行过程中函数完成了对数据分析和返回值传递。 玩家的身份判断(int gaojiwanjia()),运用的是验证函数,运行过程中为主函数传递了玩家的相关信息。 图形函数和文字函数是简单的输出函数(void printline(),void printword()),为用户提供了游戏相关的信息。 游戏运行函数是游戏过程中的主体函
5、数(int caipiaoyanzheng()),要注意对输入流的控制,如果控制不好就会对彩票函数造成影响,得到错误的结果,使用rand()和srand(seed)得到机器产生的伪随机数,并和用户输入的数据进行比较,得出相应的奖金额。 主题函数主要是对其他函数的调用,游戏循环部分要注意对循环点的设置。 程序完全达到要求,并在此基础上有些创新,应用的语句很多,都是学过的,在这不详述了。3课程设计的源程序:/*在程序的编写中主要用到的是大一上半学期的知识,所学知识大部分用到,主要难关是算法,其中产生随机数据使用rand()和srand(seed)是在C+参考书中找到的,程序中夹杂着不同的循环需要仔
6、细定位,算法需要深刻理解*/#include /使用cin,cout和endl#include /用string类定义字符串变量#include /使用rand()和srand(seed)#include /使用其中的函数time()获取系统时间,作为srand(seed)中的seed#define mimatrue 9 /定义宏名:密码正确#define mimafalse 8 /定义宏名:密码错误#define nomima 7 /定义宏名:没有密码using namespace std;bool fucai(int num,int choice) /福彩函数 for(int i=0;i0
7、;i-)for(j=0;j7-i;j+)for(k=j;ki+j;k+)if(numk!=choicek)break;if(k=i+j)return i;return 0;void printline() /图像输入函数cout * endl;void printword() /彩票说明函数 cout_1对于福彩类部分,无论是开奖还是下注,福彩的6个号码都不能重复。_n_2福彩的中奖号码与其数字的顺序无关。_n_3体彩的中奖等级分成特等奖(数字全部吻合,五百万元),一等奖(五个连续的数字-吻合,二百万元),二等奖(四个连续的数字吻合,一百万元),三等奖(三个连续的数_字吻合,一千元),四等奖(
8、二个连续的数字吻合,50元)。其它等级奖项无奖_n_4在用户类中有资金成员,可以一次下很多注(受资金限制),每注2元。_n_5高级玩家可以查看计算机产生的随机数(需输入密码),然后据此下注,只赢不输。 _程序运行的过程中会有提示,请玩家自己按照提示进行游戏。_endl;int gaojiwanjia() /高级玩家验证函数int m;char b;cout _ 如果你是高级玩家,请输入你的密码。输入密码,请输入Y或y,不输入密码,请输入其他字符。 _ b;if(b=Y|b=y) coutm;if(m=123456)return mimatrue;else return mimafalse;el
9、se return nomima;int caipiaoyanzheng() /彩票验证函数int level; int randNum6;int choice6;srand(unsigned)time(NULL); /产生随机数据randNum0=rand()%9+1;randNum1=rand()%9+1; randNum2=rand()%9+1; randNum3=rand()%9+1; randNum4=rand()%9+1; randNum5=rand()%9+1;int result=gaojiwanjia(); if (result=mimatrue) for(int i=0;i
10、6;i+) coutrandNumi; /高级玩家密码结果分析elseif (result=mimafalse) coutendl;else if(result=nomima) coutendl;cout_ _ 请输入你的幸运号码 _ _endl;while(getchar()!=10); /对输出流的清空,对getchar()不造成影响for(int i=0;i6;i+)choicei=(getchar()-48);for(i=0;i6;i+)coutchoicei;if(fucai(randNum,choice)cout_体彩:你中奖了_endl;else cout_体彩:祝您好运_end
11、l;cout_福彩:您中了6-(level=ticai(randNum,choice)等奖!_endl;return level;void main() /主函数进行彩票开奖char c; /循环答案bool flag; /用于事件控制循环flag=true;while (flag)coutnow the game begin!endl;printline();cout 彩票游戏endl;printline();printword(); printline();cout 祝你好运endl;printline();cout 制作人:黄永生,郑丹endl;cout请输入你的初始金额:sum;if(
12、sum=2)sum=sum-2; /下注else coutsumendl;break;int jiangxiang=caipiaoyanzheng(); /奖金的注入if(jiangxiang=0 )sum=sum;else if(jiangxiang=1 )sum=sum;else if(jiangxiang=2 )sum=sum+50;else if(jiangxiang=3 )sum=sum+1000;else if(jiangxiang=4)sum=sum+1000000;else if(jiangxiang=5)sum=sum+2000000;else if(jiangxiang=6
13、)sum=sum+5000000;cout你的余额为:sumendl; /输出余额cout是否继续进行彩票游戏,是输入Y或y,否输入其他字符c;if(!(c=y|c=Y)flag=false;4运行结果:4. 1功能:游戏提示4. 2,功能:用户输入金额4.3功能:高级玩家密码录入4.4功能:普通玩家的幸运号码录入4.6功能:高级玩家幸运号码录入4.7功能:彩票游戏循环5. 课程设计总结心得体会1.经过上一个学期对C程序设计的学习,我们学习了理论知识,了解了C+语言程序设计的思想,这些知识都为我们的下一步学习打下了坚实的基础。通过课程设计,一方面是为了检查我们一个学期来我们学习的成果,另一方面
14、也是为了让我们进一步的掌握和运用它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。2.在彩票游戏的编写过程中也体会到了做事情一定要细心、认真。更加知道了要把握好基础知识。还有体会到了成功的感觉!3.通过本项课程设计也培养了我独立思考、综合运用所学有关相应知识的能力,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!5.在这次课程设计中也知道了自己的动手能力不强有待进一部的提高!在设计过程中不能够把书本上的知识与实践相结合,这也就增加了设计不好该程序的想法!在设计过程中的一次次设计错误增加了我放弃的想法!不过经过我和搭档的努力终于完成了课程设计!完成该程序
15、后想起自己以前的每一次对自己失去信心,就觉得并不是在知识掌握上打败了,而是自己对自己缺乏信心!只要自己对自己不失去信心相信就可以完成那些以前认为完成不了的事情!也让我懂得了要想成功首先就必须有很强的自信心!懂得了自己以后要在做任何事情时都要自信!当自己都不相信自己能够成功时还可能会获得成功吗?6.我在C+语言程序设计的过程中也知道了自己在以前的学习中有很大的不足导致在设计过程中出现了很多的问题,有些地方看不懂也不知道怎么去设计,但是在设计过程中也学习了很多,掌握了自己以前没有学好的知识,虽然一时可以掌握完以前没有学好的知识,不过也给自己敲响了警钟,在学习中不可以伏于表面,要想学好每一门课程都要
16、踏踏实实,做什么都不是给别人看的!要更好的掌握该门知识,提高自己的自身的修养,提高自己的能力!为以后的工作打下良好的知识基础和技能基础! 郑丹学习了C+语言让我懂得了很多做事情的道理。比如说通过编程我知道无论干什么事都要严谨,千万马虎不得。C+语言程序设计要求结构紧凑,概念准确。如在程序中有一点小小错误,都会致使整个程序无法运行,直到你修改准确无误。可等到做完事就没有修改的机会了。通过这次课程设计,使我学到了很多东西。这不仅提高了我对C语言知识的进一步了解,实际经验。因此,在做的过程当中遇到了很多困难,当然也增强了自己动手动脑编写程序的能力,课程设计的要求严谨,不允许出现任何错误,使程序可以顺
17、利的编完。第一次针对做具体情况的c+程序设计,缺乏也学到了很多的知识。感触颇多:1、对c+知识有了更进一步的认识,对以c+的开发过程有了一定的了解。2、在向老师的请教和与同学的共同研讨中,我体会到团队协作的重要。3、学习一门知识一定要深入,不能浅尝辄止。4、兴趣决定一切。想做好一件事情,首先要热爱它编程也不例外。在做c+程序设计时,我们也遇到了许多困难,曾一度对自己能否成功产生了怀疑,甚至失去了信心但正是基于对计算科学的热爱,最终使我坚持了下来。努力将所遇到的问题一一解决,在解决问题的那一瞬间,我的心中油然而生一种成功感,这种成功感是在平时生活、学习中无法体会的。通过对C+语言程序设计的学习,使我学到了数据类型的表达、顺序结构程序设计、选择程序设计,循环程序设计等。在掌握基本算法的基础上,逐步提高了阅读程序的能和自己周全的思维方式。以及编写程序的能力,为将来自学一些其他的计算机语言及编制大型程序打下良好基础。而且,现在也可以编写一些简单的程序,大有收获。 黄永生6参考书目:1 谭浩强,C+程序设计,北京,清华大学出版社,2004.62 C+语言程序设计借于图书馆,蒋爱军编著,北京:人民邮电出版社,2008.719