ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:75.89KB ,
资源ID:18677913      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18677913.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课设学生搭配问题Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构课设学生搭配问题Word格式文档下载.docx

1、 第四首:男1和女4二、 总体结构设计: 为实现上述功能和目的,要用到循环队列的相关知识,同时,要定义一定的抽的数据类型,主函数调用各个函数模块 1.各模块函数介绍:1)class cirularQueue 作用:定义一个一个循环队列2)cirularQueue() 定义析构函数,使对象在撤销时释放3)bool IsFull() 判断队列是否已满4)bool IsEmpty() 判断队列是否为空,用于出队列前使用5)void push(T info) 入队。每对舞伴跳完舞之后,做入队处理,到达队尾,等待下次跳舞。6)void Pop(T &info) 出队。每取曲子响起时男生队列和女生队列作出

2、队处理,两人跳舞。7)void GetHead(T &取队首元素,对出队的男女进行识别。8)void Initqueue(cirularQueue&,int);初始化队列9)void display(int,int);根据男生和女生的人数和曲目的数目,来判断每曲歌的男女配对情况 10)void charge(int,int); 作用:判断指定组合能否配对成功2.本程序包含三个模块:1)主程序模块: void main() 初始化; do 接受命令; 处理命令;while(“命令”=”退出”) 2)、集合单元模块实现集合的各个函数模块3)、结点结构单元模块定义集合的结点结构三、 各子模块设计:1

3、主函数调用关系图主函数k曲配对每曲配对数据输入输出编号图main() 2初始化示意 否图void Initqueue(cirularQueue &Q,int m)3每曲配对函数调用关系图void display(int,int) 否 是 图void display(int,int)4第k曲配对函数调用图void charge(int,int)图void charge(int,int)4队满判断bool IsFull()5对空判断原则bool IsEmpty()首尾指针相等队列为空6入队流程void push(T info)7出队流程void Pop(T &info)不能出队队空队头出列头指针移

4、到8.取队首元素代码void GetHead(T &四、 编程实现:#includetemplate class cirularQueue /定义一个一个循环队列 private: int MaxSize; int front; /头指针 int rear; /尾指针 T *data; public: cirularQueue(int MaxLength) MaxSize=MaxLength; front=rear=0; data=new TMaxLength;cirularQueue() /定义析构函数,使对象在撤销时释放 front=rear=0; delete data;void Ini

5、tqueue() /队列的申明 for(int i=0;imaxSize-1;i+) push(i);bool IsFull() /判断队列是否已满 if(rear+1)%MaxSize=front) return true; else return false;bool IsEmpty() /判断队列是否为空 if(front=rear)void push(T info) /入队 if(IsFull() cout错误!队列已满!endl; exit(-1); else datarear=info; rear=(rear+1)%MaxSize;void Pop(T &info) /出队 if(

6、IsEmpty()队列为空! info=datafront; front=(front+1)%MaxSize;void GetHead(T &info) /取队首元素 if(IsEmpty() exit (-1);void Initqueue(cirularQueuevoid display(int,int);void charge(int,int);using namespace std;static int songnum=0; /定义歌曲的数量并初始化为0static int m=0,n=0; /男生和女生的人数 int main() /主函数 coutmn; display(m,n);

7、 int a=0,b=0; /男生和女生的编号,以判断他们在第几首歌时能在一起跳舞 char quit=y /判断是否继续输入,如果继续输入,则输入;否则输入n while(quit!=)请输入男生和女生的编号:ab; while(am)|(bn) /如果输入错误输入的编号过大,请重新输入: charge(a,b); cout是否继续(是请输入,否则请输入):quit; return 0;Q,int m) /初始化队列 for(int i=1;=m; (i);void display(int m,int n) cirularQueue man(m+1); cirularQueue woman(

8、n+1); Initqueue(man,m); Initqueue(woman,n); cout请输入曲目数:songnum;每曲的配对情况为: for(int k=1;k=songnum;k+) int x=0,y=0; /男生和女生的编号 (x); /男生按顺序出对跳舞 (y); /女生按顺序出对跳舞第曲:tx号男生y号女生 /他们在一起跳舞 /跳完舞后男生再次进入队列等在下一次跳舞void charge(int a,int b) int count=0; /定义舞曲计数以记录他们能在第几曲时在一起跳舞 man1(m+1); woman1(n+1); Initqueue(man1,m);

9、Initqueue(woman1,n); while(count=songnum) int x, y; count+; if(x=a)&(y=b) coutcount首曲:ab break; /如果他们在这个舞会上不能在一起跳舞,则输出 if(count=songnum+1)他们在这个舞会上不可能在一起跳舞五、 测试结果:六、 总结:本设计采用的是循环队列的基本操作顺利的解决学生舞曲搭配问题,主要利用用循环队列的环状结构,循环地执行出列入列操作并在出队列时进行配对并输出配对情况,而整个过程不需要不需要移动元素使程序在空间复杂度上降到最小,采用指针的移动大大加快了程序的执行效率。并且对输入进行了

10、改进,以防止用户随意输入时出现的各种意想不到的错误。 本次程序设计中所用语言为C+,程序开始定义了类cirular,其中有头指针,尾指针及数据域等。随之定义了析构函数,释放对象,然后进行了队列的基本操作,有队列的申明,判断队空及队满,出队,入队,其核心是display()函数和charge()函数,其中display()用于对各位同学编号和每队的输出情况,charge()用于计算已编号的同学在第几曲中进行配对。循环队列是一种环状的队列并且对头元素指向队尾元素,学生搭配问题是典型的只有采用循环队列才能解决的问题,实验表明该算法的空间复杂度优于其他算法。通过这次实验,我发现自己在数据结构这方面真是知之甚少,以前学习的知识也多有遗忘。与其说这是一次学习,倒不如说这是一次检测。所以,这次实验让我很好的认清自己对数据结构这门课学习程度如何,知道自己哪些方面还存在不足、对该学科重视程度还不够,以后要努力学习。对一学期的学习的数据结构通过这次实训,虽然并没有掌握的非常好,但是对某些重点需要掌握和了解的还是有了深入的探讨,也让我明白学的东西再多也要学会运用,通过实例去探讨可能比理论上更容易理解。七、 参考文献实用数据结构基础(第二版)陈元春等 中国铁道出版社C+程序 谭浩强编著 2004年6月第1版

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1