数据结构
课程设计报告书
班级
学号
专业
姓名
课题描述:
一、 需求分析:
设计内容
一班有 m个女生 , 有 n 个男生 (m 不等于 n), 现要开一个舞会 . 男女生分别编号坐在
舞池的两边的椅子上 . 每曲开始时 , 依次从男生和女生中各出一人配对跳舞 , 本曲
没成功配对者坐着等待下一曲找舞伴 .
请设计一系统模拟动态地显示出上述过程 , 要求如下 :
输出每曲配对情况
计算出任何一个男生 ( 编号为 X) 和任意女生 ( 编号为 Y), 在第 K曲配对跳舞的 情况. 至少求出 K 的两个值 .
尽量设计出多种算法及程序 , 可视情况适当加分
需求
本课题要对数目不等的男生女生跳舞进行搭配,设计需要解决每一首曲子
男生女生的搭配情况,要采用循环队列的模式来解决,男生和女生各在两个循环
的队列中,每首曲子开始,便在两个队首各取一人成功配对跳舞,并进入队尾,
等待下一次配对。
例如:( 3 男 5 女情况)
第一首:男 1 和女 1
第二首:男 2 和女 2
.........
第四首:男 1 和女 4
二、 总体结构设计:
为实现上述功能和目的, 要用到循环队列的相关知识, 同时, 要定义一定的抽的数据类型,主函数调用各个函数模块
各模块函数介绍:
1)class cirularQueue
作用:定义一个一个循环队列
2)~cirularQueue()
作用:定义析构函数,使对象在撤销时释放
3)bool IsFull()
作用:判断队列是否已满
4) bool IsEmpty()
作用:判断队列是否为空,用于出队列前使用
5) void push(T info)
作用:入队。每对舞伴跳完舞之后,做入队处理,到达队尾,等待下次跳舞。
6) void Pop(T info)
作用:出队。每取曲子响起时男生队列和女生队列作出队处理,两人跳舞。
7) void GetHead(T info)
作用:取队首元素,对出队的男女进行识别。
8) void Initqueue(cirularQueueint,int);
作用:初始化队列
9) void display(int,int);
作用:根据男生和女生的人数和曲目的数目,来判断每曲歌的男女配对情况
10 ) void charge(int,int);
作用:判断指定组合能否配对成功
本程序包含三个模块:
主程序模块:
void main()
{
初始化;
do{
接受命令;
处理命令;
}while( “命令” =”退出”)
}
、集合单元模块——实现集合的各个函数模块
、结点结构单元模块——定义集合的结点结构
三、 各子模块设计:
主函数调用关系图
主函数
数据输入 每曲配对 k 曲配对
~cirularQueue() 编号
class
void
GetHead(T
输出
void Pop(T void push(T
IsEmpty() bool IsFull()
图 main()
初始化示意
began
否
iMaxsize
Push(i)
end
图 void Initqueue(cirularQueueint Q,int m)
3 每曲配对函数调用关系图 void display(int,int)
初始化男女
循环队列
k=songnum
否 (x)
(y)
是
输出 k 首男 x 女 y
(x)
(y)
k++
end
图 void display(int,int)
4 第 k 曲配对函数调用图 void charge(int,int)
初始化男女
循环队列
count=songn
count+
(x)
(y)
(x)
(y)
(x==a)
(y==b)
男 a 女 b 第 count 跳
break
图 void charge(int,int)
4
队满判断 bool IsFull()
首尾顺序相邻
队列为满
5
对空判断原则 bool IsEmpty()
首尾指针相等
队列为空
输出他们不会一起跳
end
6 入队流程 void push(T info)
队满 不能入队
队尾进入 尾指针移
7 出队流程 void Pop(T info)
队空 不能出队
队头出列 头指针移
8. 取队首元素代码 void GetHead(T info)
四、
编程实现:
#includeiostream
template class T
class cirularQueue // 定义一个一个循环队列
{ private:
int MaxSize;
int front;
//
头指针
int rear;
//
尾指针
*data;
public:
cirularQueue(int MaxLength) { MaxSize=MaxLengt
您可能关注的文档
- 世界贸易组织概论作业与答案.docx
- 书籍影响我的生活读《海底两万里有感》有感.docx
- 书籍改变了我的生活八年级作文700字800字750字作文.docx
- 书香典韵浸润童年——五年级组阅读活动总结.docx
- 书:我生命的阳光初二作文600字.docx
- 事业单位新参加工作人员见习期考核鉴定表.docx
- 事业单位法人设立登记服务指南.docx
- 事中事后监管制度(共9项).docx
- 使命和愿景与核心价值观的区别是什么.docx
- 刷子李课堂实录模板.docx
- 广西南宁2025-2026秋季期末八年级【语文】试卷(含答案).pdf
- 广西南宁2025-2026秋季期末高一化学试卷(含答案).pdf
- 广西南宁2025-2026秋季期末九年级数学试卷(含答案).pdf
- 广西南宁2025-2026秋季期末高一英语(含答案,无听力音频).pdf
- 广西南宁2025-2026秋季期末高一地理试卷(含答案).pdf
- 内科护理(中职):心包疾病病人的护理PPT教学课件.ppt
- 胆管结石的中医护理方法.ppt
- 内科护理(中职):心肌疾病病人的护理PPT教学课件.ppt
- 内科护理(中职):心律失常病人的护理PPT教学课件.ppt
- 嵌入式系统实践及工程应用—从基础到人工智能:具备AI算力的嵌入式系统开发PPT教学课件.pptx
原创力文档

文档评论(0)