舞会配对问题课程设计_第1页
舞会配对问题课程设计_第2页
舞会配对问题课程设计_第3页
舞会配对问题课程设计_第4页
舞会配对问题课程设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构课程设计报告撰写要求数据结构课程设计报告撰写要求(一)纸张与页面要求 1采用国际标准 A4 型打印纸或复印纸,纵向打印。 2封页和页面按照下面模板书写(正文为:小四宋体 1.5 倍行距) 。3图表及图表标题按照模板中的表示书写。 (二) 课设报告书的内容应包括以下各个部分:(按照以下顺序装订)1.封页(见课设模版)2、学术诚信声明,所有学生必须本人签字,否则教师拒绝给予成绩。2.任务书(学生教师均要签字,信息填写完整)3.目录4.正文一般应包括以下内容: (1)题目介绍和功能要求(或描述)课程设计任务的详细描述(注意不能直接抄任务书),将内容做更详细的具体的分析与描述;(2) 系统功能

2、模块结构图 绘制系统功能结构框图及主要模块的功能说明; (3)3) 使用的数据结构的描述使用的数据结构的描述: : 数据结构设计及用法说明数据结构设计及用法说明; ;(4)4) 涉及到的函数的描述涉及到的函数的描述 ; ; (5)5) 主要算法描述主要算法描述( ( 程序流程图程序流程图) )(6) 给出程序测试/运行的结果设计多组数据加以描述(包括输入数据和输出结果) (7) 课程设计的总结及体会(8) 参考文献 格式要求:1作者,等. 书名.出版地:出版社,出版年 5.附录:程序清单 (应带有必要的注释) 沈阳航空航天大学课课 程程 设设 计计 报报 告告课程设计名称:数据结构课程设计数据

3、结构课程设计课程设计题目: 舞会配对问题舞会配对问题院(系): 专 业:班 级: 学 号: 姓 名: 指导教师: 说明:结论(优秀、良好、中等、及格、不及格)作为相关教环节考核必要依据;格式不符合要说明:结论(优秀、良好、中等、及格、不及格)作为相关教环节考核必要依据;格式不符合要求;数据不实求;数据不实,不予通过。报告和电子数据必须作为实验现象重复的关键依据。不予通过。报告和电子数据必须作为实验现象重复的关键依据。沈阳航空航天大学课程设计报告 学术诚信声明 本人声明本人声明:所呈交的报告(含电子版及数据文 ixin 件)是我个人在导师指导下独立进行设计工作及取得的研究结果。尽我所知,除了文中

4、特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。 本人签名: 日期: 年 月 日沈阳航空航天大学课程设计报告 沈阳航空航天大学沈阳航空航天大学课课程程设设计计任任务务书书课程设计名称 数数据据结结构构课课程程设设计计专业学生姓名班级学号题目名称起止日期年月日起至年月日止课设内容和要求:参考资料: 算法与数据结构C 语言程序设计教教研研室室

5、审审核核意意见见: 教教研研室室主主任任签签字字:指导教师(签名)指导教师(签名)年月日学学 生(签名)生(签名)年月日沈阳航空航天大学课程设计报告 课程设计总结:课程设计总结: 紧张的两周数据结构课程设计很快就过去了,通过这两周的数据结果编程练习,不仅使我巩固了以前的知识并在此基础上还对数据结构的特点和算法有了更深的了解,使我们在这门课程的实际应用上也有了一个提高。当我拿到舞会配对问题的这个课程设计任务书的时候,我不知道和个程序应该如何下手,应该选择什么数据结构才能使整个算法的效率很高,但是参考了一些 c 语言专业方面比较权威的资料以后,我决定选用队列这种数据结构,因为整个程序主要是男女生配

6、对进行跳舞,将男女生分别放在两队列里进行各种操作就会方便很多,再确定了使用队列这种数据结构之后,我就开始认真查阅资料,由于队列需要用到很多指针方面的知识,我又对以前学过的指针好好复习了一下。 它激发了我们创新意识,开发创造的能力和培养沟通能力随着高级语言的发展,数据结构在计算机的研究和应用中已展现出强大的生命力,它兼顾了诸多高级语言的特点,是一种典型的结构化程序设计语言,它处理能力强,使用灵活方便,应用面广,具有良好的可移植性。最后,在这次的课程设计过程中,我们深刻的认识到了自己在学习方面的不足之处,让我发现很多没有完全理解的旧知识,这次课程设计从某种角度来说也是一次对以前学过的知识进行查漏补

7、缺的好时机,我知道我还有太多的基本的思想没有真正的理解,当然我们不会灰心,我们会在以后的日子里努力弥补我们的不足。总的来说,这次课程设计让我学到不少知识,让我受益匪浅。沈阳航空航天大学课程设计报告 目目 录录1 概要设计概要设计 .- 1 -1.1 题目内容和要求.- 1 -1.2 系统功能模块.- 1 -2 详细设计详细设计 .- 3 -2.1 主函数模块.- 3 -2.2 输入信息模块 .- 4 -2.3 输出信息模块 .- 5 -2.4 信息查询模块 .- 6 -2.5 退出模块 .- 6 -3 调试分析调试分析 .- 7 -4 使用说明使用说明 .- 8 -4.1 使用说明 .- 8

8、-4.2 执行结果 .- 8 -参考文献参考文献 .- 10 -附附 录(关键部分程序清单)录(关键部分程序清单) .- 11 -沈阳航空航天大学课程设计报告 - 1 - 1 概要设计1.1 题目内容和要求题目内容和要求在一个舞会上男女生分别编号坐在舞池两边的椅子上等待跳舞,舞厅内播放不同的舞曲,每曲开始时,男生和女生中各出一人从舞池走向舞台配对跳舞,如果本首歌曲没有成功配对者坐着等待下一首歌曲找舞伴。请设计一个程序模拟动态地显示出上述过程。要求是程序运行时可以进行初始化设置,可以自定义男生人数,女生人数,舞曲编号。程序中可以输出所有舞曲配对情况,包括舞曲编号,男女生配对情况。为了方便用户进行

9、查询,程序支持用户可以选择单独查看某个编号舞曲的男女生的配对情况本程序代码选择合适的数据结构,程序运行时侯界面要美观实用。按课程设计老师要求写好课程设计报告。1.2 系统功能模块系统功能模块对本程序进行功能分析,本程序包括五个模块,它们分别为主函数模块,输入信息模块,输出信息模块,查询信息模块和退出模。块,其中主函数模块的功能是调用其余相关功能模块实现相应的功能,输入信息模块可以自定义舞会信息,包括男女生的人数和舞曲的信息,输出信息模块可以输出所有舞曲的男女生配对情况,为了方便用户使用,信息查询模块可以单独查看某个舞曲的男女生搭配情况,退出模块的作用是退出程序 ,图 1.1 为本程序的功能模块

10、图。沈阳航空航天大学课程设计报告 - 2 -图 1.1 系统总体模块图舞会配对程序主函数模块输入信息模块输出信息模块查询信息模块退出模块沈阳航空航天大学课程设计报告 - 3 -2 详细设计2.1 主函数模块主函数模块主函数是整个程序的主要部分,是实现程序各个功能的基础,通过主函数可以调用程序中的自定义数据结构实现程序所具有自定义初始化数据的功能自定义的数据内容都包括跳舞人员信息,即男生人数,女生人数,曲目信息即所有曲目的总数,显示舞会中所有曲目中男女舞伴的搭配情况等功能,并且主函数还可以调用信息查询模块,实现单首舞曲中男生和女生的搭配情况,这个功能可以节约使用者的时间,提高程序的友好性,主函数

11、模块是程序中不可或缺的部分。本程序的主函数流程图如图 2.1 所示。1 0Y N图 2.1 主函数模块流程图主函数main() 输入 j j男队和女队不空输出配对情况sc()输入信息sr()销毁队列xh() 结束沈阳航空航天大学课程设计报告 - 4 -2.2 输入信息模块输入信息模块本模块是程序初始化的重要过程,在本模块中,用户可以根据自己的需要去定义程序的初始信息,也就是男生和女生的总人数,还有总的曲目数,在输入男生和女生信息之前首先要建立两个队列,分别存放男生和女生的信息,然后将每一个男生和女生都看成一个元素,然后将元素插入建立的队列的队尾,随着队尾指针的后移,逐步的将男生和女生的所有信息

12、放入到建立的两个队列中,此时需要判断是否输入了男女生的信息,如果未输入,则提示队列为空队列(队列头指针与队列的尾指针相等) ,要求用户重新输入数据。本模块的流程图如图 2.2 所示。 N Y N Y输入跳舞人的信息 sr()输入人跳舞人的个数 ni=0 in 是否为男男入男队i+女入女队 结束沈阳航空航天大学课程设计报告 - 5 -图 2.2 输入信息模块流程图2.3 输出信息模块输出信息模块本模块是程序的主要部分,这部分的功能是输出每一首歌曲的跳舞的男生和女生的信息,方便用户直接查看每首歌曲的男女生配对情况,在查看男女生信息之前,首先要让男生和女生出队,让他们搭配成舞伴,如果该队列为空队列,

13、则程序直接返回,如果队列不为空,则首先让男生队列和女生队列各自的队头先出列进行搭配,随着元素的逐步出队而释放存储空间,队头指针指针随之后移,如果队列中的所有元素出队成功,即队列变成空队列时便会打印每首歌曲的男女生配对信息。本模块的流程图如图 2.3 所示。 N Y 图 2.3 输出配对情况函数的流程图输出函数sc()输出配对情况如下男队和女队不空 男队列队头出队女队列队头出队输出男女配对情况 结束沈阳航空航天大学课程设计报告 - 6 -2.4 信息查询模块信息查询模块本模块的作用是方便用户直接查询自己感兴趣的曲目的跳舞人员的信息,本模块的存在,大大的提高了用户的使用体验,通过输入想查询的曲目的

14、编号,系统会自动查询相关信息,本模块的实现过程与模块 2.3 有着紧密的联系,首先,将上一个模块输出的每首曲目的跳舞的男女生的信息存储在一个预先定义好的结构体中,等用户在查询的时候系统直接调用相关曲目所在的结构体信息即可,这样就可以直接展示每首歌曲跳舞的男生和女生的信息了。是整个程序界面变得更加友好,更加人性化。2.5 退出模块退出模块程序为了方便用户使用,增加了手动退出功能,只要程序不是用户手动退出,便会一直循环运行,可以多次使用,避免用户重复频繁的启动程序,每次执行完之后程序都会自动清理内存重新运行,直到用户手动选择退出之后程序才会退出。沈阳航空航天大学课程设计报告 - 7 -3 调试分析

15、问题 1:个别运用的变量没定义。解决 1:定义变量后再使用。问题 2:程序不能循环使用。解决 2:while 语句不能按照要求运行,添加“” ,程序结束后结束添加continue 语句,使程序能够不退出,一直运行。问题 3:队列定义时出现问题,导致输入完信息之后程序死掉,不能继续运行。如图 3.1 所示。图 3.1 程序出错图解决 3:重新定义队列,调整队列尾指针的位置,成功建立队列,完成了所有曲目的男女配对信息的输出。解决后程序运行正常,如图 3.2 所示。图 3.2 改正后运行图沈阳航空航天大学课程设计报告 - 8 -4 使用说明4.1 使用说明使用说明1.在 VC+环境下,将程序代码输入

16、。2.对输入好的程序进行检查。3.修改程序中出现的语法错误(如:符号的遗失等。 )4.运行程序。5.在界面中选择相应的功能:(1)按 1 程序开始。(2)按 0 程序结束。6.当选择一个功能后,程序会执行选择的功能。7.当想要结束程序时,选择功能(2),程序结束。4.2 执行结果执行结果主界面:开始时输出欢迎使用舞伴配对系统,然后提示用户进行功能选择使用程序或者退出程序。如图 4.1 所示。图 4.1 程序欢迎界面沈阳航空航天大学课程设计报告 - 9 -1. 输入跳舞人的信息:输入男女生的人数和歌曲的总数,储存起来并进行男女分队,为舞伴配对作准备,如图 4.2 所示。图 4.2 自定义舞会信息

17、2. 输出配对情况:根据输入跳舞人的信息经过操作,男队和女队分别从队头出跳舞的人员,作为一对,输出跳舞人配对的情况。如图 4.3 所示。图 4.3 输出配对信息3. 用户可直接输入曲子编号查看该曲子是哪位男生和女生在跳舞,方便用户直接使用。如图 4.4 所示。图 4.4 查询某个舞曲配对信息沈阳航空航天大学课程设计报告 - 10 -参考文献1 严蔚敏,吴伟民. .数据结构M.北京:清华大学出版社,2007 2 戴艳等.零基础学算法(第二版)M.北京:机械工业出版社,20123 谭浩强.C 语言程序设计(第三版)M. 北京:清华大学出版社,20054 张清国.C 语言程序设计教程(第二版)M.北

18、京:清华大学出版社,20095 张长海.C 语言程序设计M.北京:高等教育出版社,20066 吴文虎.程序设计基础(第二版)M.北京:清华大学出版社,2004 沈阳航空航天大学课程设计报告- 11 -附 录(关键部分程序清单)#include #include#include #include #define MAXSIZE 60#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -1typedef int system1;struct score /定义结构体,存储每首歌曲的男女配对信息 int d

19、; int e;stu50;typedef struct QNodeint num;struct QNode *next;QNode,* QueuePtr;typedef structQueuePtr front;QueuePtr rear;LinkQueue;void sleep( clock_t wait ) /等待时间clock_t goal;goal = wait + clock();while( goal clock() ) ;void InitQ(LinkQueue &Q) /初始化空队列QueuePtr p;p=(QueuePtr)malloc(sizeof(QNode);Q.f

20、ront=p;Q.rear=p;Q.front-next=NULL;沈阳航空航天大学课程设计报告- 12 -void EnQueue(LinkQueue &Q,int num) /插入元素建立队列QueuePtr p;p=(QueuePtr)malloc(sizeof(QNode);p-num=num;p-next=NULL;Q.rear-next=p;Q.rear=p;void DeQueue(LinkQueue &Q, int &num) /定义跳舞顺序QueuePtr p,q;if(Q.front=Q.rear)printf(队列为空);p=Q.front-next;num=p-num;

21、Q.front-next=p-next;q=p-next;if(Q.rear=q) /只有两个元素时Q.rear=Q.front;free(p);void printF(LinkQueue &F,int i) /显示第 i 首曲子跳舞的女生QueuePtr p;int n=1;while(nnext;while(F.rear!=p)printf(%d ,p-num);p=p-next;printf(%d n,p-num);void printM(LinkQueue &M,int i) /显示第 i 首曲子跳舞的男生QueuePtr p;int n=1;while(nnext;while(M.rear!=p)printf(%d ,p-num);p=p-next;printf(%d n,p-num);int main() while(1) int m,n,k,i,a,b,c,f;int count=0,num;QueuePtr p,q;LinkQueue F; LinkQueue M; printf( %n); printf( % 沈阳航空航天大学 %n); printf( % 计算机学院 %n); printf( % 张慧鑫 %n); printf( %n); printf(欢迎使用本程序n); printf(按 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论