900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 学生搭配问题数据结构报告c语言 数据结构课设学生搭配问题

学生搭配问题数据结构报告c语言 数据结构课设学生搭配问题

时间:2024-07-01 20:38:44

相关推荐

学生搭配问题数据结构报告c语言 数据结构课设学生搭配问题

数据结构课设学生搭配问题

数 据 结 构 课程设计报告书 班级 学号 专业 姓名 课题描述: 一、 需求分析: 1. 设计内容 一班有m个女生,有n个男生(m不等于n),现要开一个舞会. 男女生分别编号坐在舞池的两边的椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞, 本曲没成功配对者坐着等待下一曲找舞伴. 请设计一系统模拟动态地显示出上述过程,要求如下: 1) 输出每曲配对情况 2) 计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的 情况.至少求出K的两个值. 3) 尽量设计出多种算法及程序,可视情况适当加分 2.需求 本课题要对数目不等的男生女生跳舞进行搭配,设计需要解决每一首曲子 男生女生的搭配情况,要采用循环队列的模式来解决,男生和女生各在两个循环 的队列中,每首曲子开始,便在两个队首各取一人成功配对跳舞,并进入队尾, 等待下一次配对。 例如:(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) 作用:入队。每对舞伴跳完舞之后,做入队处理,到达队尾,等待下次跳舞。 6)void Pop(T 作用:初始化队列 9)void display(int,int); 作用:根据男生和女生的人数和曲目的数目,来判断每曲歌的男女配对情况 10)void charge(int,int); 作用:判断指定组合能否配对成功 2. 本程序包含三个模块: 1)主程序模块: void main() { 初始化; do{ 接受命令; 处理命令; }while(“命令”=”退出”) } 2)、集合单元模块——实现集合的各个函数模块 3)、结点结构单元模块——定义集合的结点结构 三、 各子模块设计: 1主函数调用关系图 ~cirularQueue() void GetHead(T int front; //头指针 int rear; //尾指针 T *data; public: cirularQueue(int MaxLength) { MaxSize=MaxLength; front=rear=0; data=new T[MaxLength]; } ~cirularQueue() //定义析构函数,

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。