一、 题目描述
一班有m个女生,有n个男生(m不等于n),现要开一个舞会. 男女生分别编号坐在舞池的两边的椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞, 本曲没成功配对者坐着等待下一曲找舞伴.
请设计一系统模拟动态地显示出上述过程,要求如下:
1) 输出每曲配对情况
2) 计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的情况.至少求出K的两个值.
3) 尽量设计出多种算法及程序,可视情况适当加分
二、需求分析
本实验要对数目不等的男生女生跳舞进行搭配,设计需要解决每一首曲子
男生女生的搭配情况,要采用循环队列的模式来解决,男生和女生各在两个循环
的队列中,每首曲子开始,便在两个队首各取一人成功配对跳舞,并进入队尾,
等待下一次配对。
例如:(3男5女情况)
第一首:男1和女1
第二首:男2和女2
.........
第四首:男1和女4
三、概要设计
为实现上述功能和目的,要用到循环队列的相关知识,同时,要定义一定的抽的数据类型,主函数调用各个函数模块。
1.各模块函数介绍:
1)class cirularQueue
作用:定义一个一个循环队列
2)~cirularQueue()
作用:定义析构函数,使对象在撤销时释放
3)bool IsFull()
作用:判断队列是否已满
4)bool IsEmpty()
作用:判断队列是否为空,用于出队列前使用
5)void push(T info)
作用&#x