ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:202.82KB ,
资源ID:26011233      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26011233.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(课程设计掷骰子游戏设计.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

课程设计掷骰子游戏设计.docx

1、课程设计掷骰子游戏设计华东交通大学基础学院C+课程设计报告题目:掷骰子游戏的分析与设计姓 名: 张 春 梅学 号: 101 班 级:08信息与计算科学(1)班学年学期: 2009 2010 学年 第 一 学期 日期:2009年12月21日一 掷骰子游戏设计需求分析1、掷骰子游戏需求:1)假如有n个学生排成一圈,编号从1到n,每个人有初始积分,不防设为100。2)从1号开始掷骰子,骰子出现后,根据点数减去掷骰人的相应积分, 如 减去 10*(6-点数),然后根据点数多少,就依次向后数掷骰的点数同等数量的人,被数到的最后一个人继续掷骰子,计算积分,依此类推。3)如果某人掷骰后,其积分小于等于0则出

2、列,余下的人继续按照此法进行游戏,直到剩下最后一个人,为胜利者。4)要求打印每次出列的人的编号,掷骰子的次数,当前积分。并打印最后胜利者的相应信息。5)要求用环链表以及类来实现这个程序。6)选做:问掷骰m次后,还剩下几个人积分多少,显示出来。2、游戏实现方式:为了实现游戏的上述功能,在整个程序的设计中构造了一个游戏类(class player)。下面是游戏类(class player)的成员函数实现的功能:1)成员函数Player(char *pName,int id )用于储存参赛者的姓名和他们的编号;2)成员函数Player:Integral(int number)用于计算参赛者的当前积分

3、和掷骰子的次数。3)成员函数Player:Initial( )用于创建参赛者的链表。4)成员函数Player:Game( )用于判断是否要有参赛者出列并记录当前参赛者的信息和掷骰子的次数、点数。5)成员函数Display( )用于打印本次游戏打印每次出列的人的编号,掷骰子的次数和最后胜利者的相应信息。二 类关系图和类主要成员函数和成员变量Player类code;countscorename20numOfPlayerPlayer * head;Player * next;Player ()Integral ()Display ()Player ()Initial ()Game ()code /每

4、位参赛者的编号count /每位参赛者掷骰子的次数score /参赛者的积分name20 /参赛者的姓名numOfPlayer /参加游戏总人数三 模块的设计分析1.游戏类(class Player)的说明1).构造函数Player(char *pName,int id)用于储存参赛者的姓名和他们的编号;Player:Player(char *pName,int id) code=id; score=100; count=0; strcpy(name,pName); 先是从程序中输入参赛者人数,通过DOS屏幕的提示依次输入参赛者的姓名,系统会自动给参赛者编号,而这些信息由构造函数Player储

5、存。2). Player:Integral(int number) 用于计算参赛者的当前积分和掷骰子的次数。Player:Player() Player *t; Player *p=head; for(int i=1;inext; delete t; int Player:Integral(int number) count=count+1; score-=(6-number)*10; if(score=0) return 0; else return 1; 通过构造函数 Integral ()来计算参赛者的当前积分和掷骰子的次数。另外该函数被后面的Game()函数调用,用于判断是否有参赛者出

6、列。3).析构函数Player:Player() 。 因为分配了堆内存,所以当程序结束时要把空间给释放。4). Player:Initial()用于创建参赛者的链表。Player * ps;/创建的结点指针Player * pend;/链尾指针,用于在其后面插入结点Player:Initial() int id; int m; Player * ps; Player * pend; while(1) coutm; numOfPlayer=m; for(id=1;id=m;id+) cout请输入idpName; ps=new Player(pName,id); if(head=NULL) he

7、ad=ps; else pend-next=ps; pend=ps; coutpNameendl已成功加入endlnext=head; ps=new Player(pName,id);/新建一个结点,准备插入链表5). Display( )用于打印本次游戏打印每次出列的人的编号,掷骰子的次数和最后胜利者的相应信息。6).Player:Game( )用于判断是否要有参赛者出列并记录当前参赛者的信息和掷骰子的次数、点数。srand( (unsigned)time( NULL ) ); do int numOfdice;/骰子数 int q; static int k=0; k+; q=rand()

8、; numOfdice=q%6+1;/得到一个1-6的数在函数中求掷骰子的点数时用到了随机函数的模块,下面的文本框为骰子点数功能的实现。而函数中对链表的删除借鉴了书上的Josephus程序设计,另外删除链表条件的判断调用了上面的Player:Integral函数。2.游戏类(class Player)的流程图1)Player:Initial( )流程图如图1:2)析构函数Player:Player( )流程图如图2: 图1 图23)构造函数Player:Integral(int number)流程图如图3: 图34)Player:Display( )流程图如图4: 图45)Player:Gam

9、e( )流程图如图5:6)main( )流程图容易图6: 图5 图6 3. 程序运行结果:输入参赛者人数如图7:图7输入参赛者姓名如图8:图8程序运行过程及最后结果如图9:图9四 存在的问题与不足及总结存在的问题与不足:1、进行游戏时,系统总是显示出“内存不能读”的对话框;2、选做的“问掷骰m次后,还剩下几个人积分多少,显示出来”没有成功,我当时做的时候出现了重新骰子数的情况,而不是打印出刚刚出现的掷骰m次后积分。总结:在本程序是我只创建了一个游戏类。各个功能的实现是通过调用类中的静态函数得已实现的。因为静态函数不仅可以不创建类对象也可以直接使用,并且可以访问类中的保护数据成员,所以基本的功能实现都是以类的静态函数来编写的。程序都是用链表的方式做的,因为链表比起数组可以节省不必要的内存空间分配,可以仅当需要是再分配新的空间。数组的空间分配是有限制的,而链表可以达到无限制的空间分配。五 掷骰子游戏使用说明书(操作手册)用户首先进入软件界面主菜单:1、按照屏幕的提示输入参赛人数;2、同样按照提示输入参赛者的姓名;3、按任意键游戏开始;4、屏幕上将会打印出整个游戏过程中所有参赛者的信息,包括出列者的和最后胜利者的信息;5、本次游戏结束后,如果想继续玩请输入 Y 或 y,输入其他字符将退出游戏。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1