- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
掷骰子游戏设计需求分析
目录
一、掷骰子游戏设计需求分析…………………………1
二、类关系图和类成员函数……………………………3
三、模块的设计分析……………………………………4
四、存在的问题与不足及总结…………………………7
五、使用说明(操作手册)……………………………8
六、程序源代码…………………………………………9
一 掷骰子游戏设计需求分析
一、掷骰子游戏需求:
1、假如有n个学生排成一圈,编号从1到n,每个人有初始积分,不防设为100。
2、从1号开始掷骰子,骰子出现后,根据点数减去掷骰人的相应积分, 如 减去 10*(6-点数),然后根据点数多少,就依次向后数掷骰的点数同等数量的人,被数到的最后一个人继续掷骰子,计算积分,依此类推。
3、如果某人掷骰后,其积分小于等于0则出列,余下的人继续按照此法进行游戏,直到剩下最后一个人,为胜利者。
4、要求打印每次出列的人的编号,掷骰子的次数,当前积分。并打印最后胜利者的相应信息。
5、要求用环链表以及类来实现这个程序。
6、选做:问掷骰m次后,还剩下几个人积分多少,显示出来。
二、游戏实现方式:
为了实现游戏的上述功能,在整个程序的设计中构造了一个游戏类(class player)。下面是游戏类(class player)的成员函数实现的功能:
1、成员函数Player(char *pName,int id )用于储存参赛者的姓名和他们的编号;
2、成员函数Player::Integral(int number)用于计算参赛者的当前积分和掷骰子的次数。
3、成员函数Player::Initial( )用于创建参赛者的链表。
4、成员函数Player::Game( )用于判断是否要有参赛者出列并记录当前参赛者的信息和掷骰子的次数、点数。
5、成员函数Display( )用于打印本次游戏打印每次出列的人的编号,掷骰子的次数和最后胜利者的相应信息。
二 类关系图和类主要成员函数和成员变量
code //每位参赛者的编号
count //每位参赛者掷骰子的次数
score //参赛者的积分
name[20] //参赛者的姓名
numOfPlayer //参加游戏总人数
三 模块的设计分析
1.游戏类(class Player)的说明
1).构造函数Player(char *pName,int id)用于储存参赛者的姓名和他们的编号;
先是从程序中输入参赛者人数,通过DOS屏幕的提示依次输入参赛者的姓名,系统会自动给参赛者编号,而这些信息由构造函数Player储存。
2). Player::Integral(int number) 用于计算参赛者的当前积分和掷骰子的次数。
通过构造函数 Integral ()来计算参赛者的当前积分和掷骰子的次数。另外该函数被后面的Game()函数调用,用于判断是否有参赛者出列。
3).析构函数Player::~Player() 。
因为分配了堆内存,所以当程序结束时要把空间给释放。
4). Player::Initial()用于创建参赛者的链表。
Player * ps;//创建的结点指针
Player * pend;//链尾指针,用于在其后面插入结点
ps=new Player(pName,id);//新建一个结点,准备插入链表
5). Display( )用于打印本次游戏打印每次出列的人的编号,掷骰子的次数和最后胜利者的相应信息。
6).Player::Game( )用于判断是否要有参赛者出列并记录当前参赛者的信息和掷骰子的次数、点数。
在函数中求掷骰子的点数时用到了随机函数的模块,下面的文本框为骰子点数功能的实现。
而函数中对链表的删除借鉴了书上的Josephus程序设计,另外删除链表条件的判断调用了上面的Player::Integral函数。
四 存在的问题与不足及总结
存在的问题与不足:
1、进行游戏时,系统总是显示出“内存不能读”的对话框;
2、选做的“问掷骰m次后,还剩下几个人积分多少,显示出来”没有成功,我当时做的时候出现了重新骰子数的情况,而不是打印出刚刚出现的掷骰m次后积分。
总结:
在本程序是我只创建了一个游戏类。
各个功能的实现是通过调用类中的静态函数得已实现的。因为静态函数不仅可以不创建类对象也可以直接使用,并且可以访问类中的保护数据成员,所以基本的功能实现都是以类的静态函数来编写的。
程序都是用链表的方式做的,因为链表比起数组可以节省不必要的内存空间分配,可以仅当需要是再分配新的空间。数组的空间分配是有限制的,而链表可以达到无限制的空间分配。
五 掷骰子游戏使用说明书(操作手册)
用户首先进入软件界面主菜单:
按照屏幕的提示输入参赛人数;
同样
您可能关注的文档
最近下载
- 可靠性工程管理方案(3篇).docx VIP
- 工程质量控制作业标准WHS设置汇总报审.doc VIP
- SIEMENS西门子SITRANS LU180超声波物位计操作手册.pdf
- 2024福建统招专升本《英语》知识考点汇总.pdf VIP
- 卫生药学副高职称个人总结(8篇).docx VIP
- 美国CTPAT反恐安全控制程序 .pdf VIP
- 《吴川音字典》首发.PDF VIP
- 2024-2025学年南山区四年级数学(上)期末试题(含答案)(1) (1).pdf VIP
- 特发性震颤基层诊疗指南(2021).pptx VIP
- 贵州乌江水电开发有限责任公司校园招聘模拟试题附带答案详解一套.docx VIP
文档评论(0)