1 / 11
文档名称:

抽签游戏.doc

格式:doc   大小:115KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

抽签游戏.doc

上传人:liwenfei1314 2018/1/5 文件大小:115 KB

下载得到文件列表

抽签游戏.doc

文档介绍

文档介绍:一、设计目的
熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。
二、设计要求
(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;
(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩;
(3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表;
(4)认真编写课程设计报告。
三、设计内容
1. 问题描述:
抽签是我们日常生活中经常遇到的一件事,并且其形式有很多种。这里介绍一种抽签游戏,如图3所示,最上面一排是游戏的参加者——称为抽签者,最下面一排是签号(奖品、公差等)。每个人依次顺着竖线往下走,当碰到横线时,即转横向前进,碰到竖线再往下,以此类推,则游戏结束后,抽签者会一一对应到最下面一排的签号。
p0
p1
p2
p3
p4
图3 抽签游戏示例
A0顺着路径走,最后对应到p2
同理A1®p1, A2®p3, A3®p4, A4®p0
假设p2是奖品(或公差),则A0对应到p2,A0这个人即中签。
A0
A1
A2
A3
A4
:
(1) 设计存储结构存储抽签者、签号、游戏用横线、竖线等;
(2) 设计算法实现抽签;
(3) 存储游戏的最终结果。
四、参考文献


,(C语言版).清华大学出版社
需求分析
本课程设计的名称是抽签游戏,该设计主要是要通过设计存储结构存储抽签人,签号,中间结果,并通过设计抽签算法进行抽签,抽签以后中间结果数组的次序会发生改变,最后通过中间结果的改变将抽签人和签号连接起来,实现每一个抽签人对应到一个签号,如果只有一个是奖品也只有一人能抽中。
总体设计
:
抽签游戏
指定中奖签号
动态输入抽签人、签号、自动生成中间数组
连接抽签人和签号进行结果输出
抽签函数(对中间数组元素值得次序进行修改)
随机生成布局数组
手工搭建布局数组
根据布局数组生成布局图形

开始
m[][]
i=0;j=0
输入抽签人数col和层数row
b[j]ßàb[j+1]
m[i][j]=1?
Y
根据row和col生成数组a[col]和p[col]和布局数组m[row][col]
N
j+1

j<col-1?
Y
输入a[col]和p[col]
N
i+1, j=0
i<row?
Y
r=1?
r=2?
N
通过b[col]数组的最终次序连接a[col]和p[col],输出结果
Y Y
输入m[][]
随机生成m[][]
:
程序共用到四个数组,m[][]用来存放抽签布局,b[]用来存放中间结果,a[]用来存放抽签人编号,p[]用来存放签号,经过抽签函数对b[]进行排序,最后的排序结果用来对应抽签人和签号。
详细设计
1. 功能实现:
(1) 设计存储结构存储抽签者、签号、游戏用横线、竖线等;
(2) 设计算法实现抽签;
(3) 存储游戏的最终结果。
:
分析上面的抽签游戏的示例,遇到一条横线,代表这两个竖线的数据就要交换顺序,例如,原来的顺序为{A0, A1, A2, A3, A4},经过第0层横线后,顺序为{A1, A0, A3, A2, A4},再经过第1层横线后,顺序为{A
1,A3,A0,A2,A4},以此类推,最后顺序为{A4, A1, A0, A2, A3},对应到{p0, p1, p2, p3, p4}。在该游戏中,需解决以下问题:
(1) 抽签游戏可以多人参与,只要加上竖线和横线即可。那么,如何表示这些参与者呢?
解决:假设有n个人参加,可以用一个一维数组A[n]来记录n个抽签者。
(2) 签号如何存储?
解决:签号的存储也可设计成一个一维数组p[n]来记录n个签号。
(3) 如何存储游戏的最终结果?
解决:设计一维数组B[n]存储最终的对应结果,同时在执行过程中记载中间结果。
(4) 当碰到某一横线跨在第i条和第i+1条竖线上时,如何交换数据?
解决:用一维数组B[n]来存放游戏过程中的中间结果和最终结果,通过交换B[i]和B[i+1]的值解决交换数据问题。
(5) 如何表示抽签游戏的竖线和横线布局?
解决:设计一个二维数组M[m][n],M[i][j]表示第i层上第j条和第j+1条竖线之间是否有横线,其值为0或1,1代表有横线,0代表没有横