- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课 程 设 计
课程设计名称: 数据结构综合课程设计
专 业 班 级 : 计科0604
学 生 姓 名 : 林 玉 芳
学 号 : 20064140425
指 导 教 师 : 白 浩
课程设计时间: 2008年6月23日
计算机科学与技术专业课程设计任务书
学生姓名
林玉芳
专业班级
计科0604
学号
20064140425
题 目
学生搭配问题
课题性质
其它
课题来源
自拟课题
指导教师
白浩
同组姓名
无
主要内容
一班有m个女生,有n个男生(m不等于n),现要开一个舞会。男女生分别编号坐在舞池的两边的椅子上。每曲开始时,依次从男生和女生中各出一人配对跳舞,本曲没成功配对者坐着等待下一曲找舞伴。
任务要求
请设计一系统模拟动态地显示出上述过程,要求如下:
(1)输出每曲配对情况;
(2)计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的情况。至少求出K的两个值;
(3)尽量设计出多种算法及程序,可视情况适当加分。(提示:用队列来解决比较方便。)
参考文献
数据结构(c语言版) 严蔚敏 吴为民 清华大学出版社
数据结构题集(c语言版) 严蔚敏 吴为民 米宁 清华大学出版社
审查意见
指导教师签字:
教研室主任签字: 2008年 5 月 8 日
PAGE \* MERGEFORMAT 21
一、 需求分析
要模拟动态地显示出现题目中所要求的循环,我们要先建立两个循环队列f_SqQueue和m_SqQueue。
将男生、女生两组人分别存入这两个队列。以实现他们的循环配对输出,这是循环队列固有的特性。
利用循环队列的特性,将男女生分别进行入队和出队列操作,且实现搭配输出。
循环队列的长度分别设为男女生的个数即可。
在计算机终端输出的结果是:
1、创建或修改数据
2、每首舞曲的配对情况查询
3、任意一首舞曲配对情况查询
4、任意一男生与一女生的配对情况查询
5、退出
二、 概要设计
队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表
循环队列是在队列的顺序存储结构中,除了用一组地址连续的存储单元依次存放从队列头到队列尾的元素外,尚需要附设两个指针front和rear分别指示队列头元素和队列尾元素的位置。
1.设定队列的抽象数据类型定义:
ADT Queue{
数据对象:
D={ai | ai ∈ElemSet,i=1,2,3 ……,n,n≥0}
数据关系
R1={ai-1 ,ai | ai-1 ,ai∈D,i=2,……,n}
约定其中a1端为对列头,an端为队列尾
基本操作:
InitQueue(Q)
操作结果:构造一个空队列Q。
DestroyQueue(Q)
初始条件:队列已存在。
操作结果:队列Q被销毁,不再存在。
ClearQueue(Q)
初始条件:队列Q已存在。
操作结果:将Q清为空队列。
QueueEmpty(Q)
初始条件:队列Q已存在。
操作结果:若Q为空队列,则返回TRUE,否则FALSE。
QueueLength(Q)
初始条件:队列Q已存在。
操作结果:返回Q的元素个数,即队列的长度。
GetQueue(Q,e)
初始条件:队列Q为非空队列。
操作结果:用e返回Q的队头元素。
EnQueue(Q,e)
初始条件:队列Q已存在。
操作结果:插入元素e为Q的新的队尾元素。
DeQueue(Q,e)
初始条件:Q为非空队列。
操作结果:删除Q的队头元素,并用e返回其值。
QueueTraverse(Q,visit())
初始条件:Q已存在且非空。
操作结果:从队头到队尾,依次对Q的每个数据元素调用函数visit()。一旦visit()失败,则操作失败。
}ADT Queue
2.本程序包含三个模块
(1)主程序模块:
void main()
{
while(命令 != “退出”)
{
接收命令;
处理命令;
}
}
(2)循环队列模块——实现循环队列抽象数据类型
(3)命令模块——实现各种功能。
各模块之间的调用关系如下:
主程序模块
命令模块
循环队列模块
三、 运行环境
软件环境:WindowsXP操作系统
硬件环境:PC
四、 开发工具和编程语言
开发工具:Micro
文档评论(0)