- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
华东交通大学基础学院
C++课程设计报告
题目:掷骰子游戏的分析与设计
姓 名: 张 春 梅
学 号: 20080810010101
班 级:08信息与计算科学(1)班
学年学期: 2009 ~ 2010 学年 第 一 学期
日期:2009年12月21日
目录
TOC \o 1-3 \h \z \u 一 掷骰子游戏设计需求分析 2
1、掷骰子游戏需求 2
2、游戏实现方式 3
二 类关系图和类主要成员函数和成员变量 4
三 模块的设计分析 5
1、游戏类(class Player)的说明 5
2、游戏类(class Player)的流程图 8
3、程序运行结果: 11
四 存在的问题与不足及总结 13
五 掷骰子游戏使用说明书(操作手册) 14
一 掷骰子游戏设计需求分析
1、掷骰子游戏需求:
1)假如有n个学生排成一圈,编号从1到n,每个人有初始积分,不防设为100。
2)从1号开始掷骰子,骰子出现后,根据点数减去掷骰人的相应积分, 如 减去 10*(6-点数),然后根据点数多少,就依次向后数掷骰的点数同等数量的人,被数到的最后一个人继续掷骰子,计算积分,依此类推。
3)如果某人掷骰后,其积分小于等于0则出列,余下的人继续按照此法进行游戏,直到剩下最后一个人,为胜利者。
4)要求打印每次出列的人的编号,掷骰子的次数,当前积分。并打印最后胜利者的相应信息。
5)要求用环链表以及类来实现这个程序。
6)选做:问掷骰m次后,还剩下几个人积分多少,显示出来。
2、游戏实现方式:
为了实现游戏的上述功能,在整个程序的设计中构造了一个游戏类(class player)。下面是游戏类(class player)的成员函数实现的功能:
1)成员函数Player(char *pName,int id )用于储存参赛者的姓名和他们的编号;
2)成员函数Player::Integral(int number)用于计算参赛者的当前积分和掷骰子的次数。
3)成员函数Player::Initial( )用于创建参赛者的链表。
4)成员函数Player::Game( )用于判断是否要有参赛者出列并记录当前参赛者的信息和掷骰子的次数、点数。
5)成员函数Display( )用于打印本次游戏打印每次出列的人的编号,掷骰子的次数和最后胜利者的相应信息。
二 类关系图和类主要成员函数和成员变量
Player类code;count
Player类
code;
count
score
name[20]
numOfPlayer
Player * head;
Player * next;
Player ()
Integral ()
Display ()
~Player ()
Initial ()
Game ()
code //每位参赛者的编号
count //每位参赛者掷骰子的次数
score //参赛者的积分
name[20] //参赛者的姓名
numOfPlayer //参加游戏总人数
三 模块的设计分析
1.游戏类(class Player)的说明
1).构造函数Player(char *pName,int id)用于储存参赛者的姓名和他们的编号;
Player::Player(char *pName,int id){ code=id; score=100; count=0;
Player::Player(char *pName,int id)
{
code=id;
score=100;
count=0;
strcpy(name,pName);
}
2). Player::Integral(int number) 用于计算参赛者的当前积分和掷骰子的次数。
Player::~Player(){ Player *t; Player *p=head; for(int i=1;i=numOfPlayer;i++) { t=p; if(i!=numOfPlayer) {p=p-next;
Player::~Player()
{ Player *t;
Player *p=head;
for(int i=1;i=numOfPlayer;i++)
{ t=p;
if(i!=numOfPlayer)
{p=p-next;
}
delete t;
}
}
int Player::Integral(int number)
{
count=count+1;
score-=(6-numb
文档评论(0)