




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 1欢迎下载 安徽省巢湖学院计算机与信息工程学院安徽省巢湖学院计算机与信息工程学院 课程设计报告课程设计报告 课程名称课程名称 数据结构数据结构 课题名称课题名称 学生搭配问题学生搭配问题 专专业业 计算机科学与技术计算机科学与技术 班班级级 1010 计本计本 2 2 班班 学学号号1001212810012128 100121210012124 4 姓姓名名 赵芳芳赵芳芳 张晓雨张晓雨 联系方式联系方式 1505656101315056561013 指导教师指导教师江家宝江家宝 2020 1111 年年 1212 月月 3030 日日 精品文档 2欢迎下载 1 1 题目 题目 一班有 m 个女生 有 n 个男生 m 不等于 n 现要开一个舞会 男女生分别编号坐在舞池的两边 的椅子上 每曲开始时 依次从男生和女生中各出一人配对跳舞 本曲没成功配对者坐着等待下一曲找舞 伴 请设计一系统模拟动态地显示出上述过程 要求如下 1 输出每曲配对情况 2 计算出任何一个男生 编号为 X 和任意女生 编号为 Y 在第 K 曲配对跳舞的情况 至少求 出 K 的两个值 2 2 总体设计 总体设计 核心问题 循环队列的应用 数据模型 逻辑结构 循环队列 两个 将男生 女生两组人分别存放 以实现循环配对 输出 存储结构 循环链表 核心算法 循环队列的入队 出队 判队满 判队空 输入数据 男生人数 女生人数 歌曲数量 输出数据 每一首歌曲播放时 男生和女生搭配情况 只输出编号即可 当要查找的男女搭配时输出歌曲编号 和他们搭配的总次数 通过以上分析 该程序具有可行性 3 3 算法设计思想 算法设计思想 队列 Queue 是只允许在一端进行插入 而在另一端进行删除的运算受限的线性表 循环队列是在队列的顺序存储结构中 除了用乙组地址连续的存储单元依次存放从队列头到 队列尾的元素外 尚需附设两个指针 front 和 rear 分别指示队列头元素和队列尾元素的位置 循环队列 两个 将男生 女生两组人分别存放 以实现循环配对输出 循环队列的入队 出队 判队满 判队空 1 要模拟动态地显示出现题目中所要求的循环 我们要先建立两个循环队列 SqQueue 和 SqQueue2 2 将男生 女生两组人分别存入这两个队列 以实现他们的循环配对输出 这是循环队 列固有的特性 3 利用循环队列的特性 将男女生分别进行入队列和出队列操作 且实现搭配输出 4 循环队列的长度分别设为男女生的个数即可 5 在计算机终端输出的结果是 根据要求输出男生女生搭配情况 4 4 流程图 流程图 精品文档 3欢迎下载 图一图一 程序流程图程序流程图 5 5 课程设计过程中的关键算法 课程设计过程中的关键算法 开始 建立两个队列 sp sq 输入男女个数和曲数 n m k 和查找的编号 a b n m EnQueue DeQueue 开始 每曲配对情况 该对男女共跳次数 终止 否 否 是 是 精品文档 4欢迎下载 建立两个链式循环队列来分别存储男生和女生 然后调用入队出队函数实现循环队列的配对 输出 为充分利用向量空间 克服上述假上溢现象的方法是将向量空间想象为一个首尾相接的圆 环 存储在其中成为循环队列 在循环队列中进行出队 入队操作时 头尾指针仍要加 1 朝前 移动 只不过当头尾指针指向向量上界时 其加 1 操作是指向向量的下界 这样就可以通过出队 再入队来实现男生女生的循环搭配 课程设计过程中的关键算法如下 1 关键算法之一 初始化队列 void InitQ LinkQueue p QueuePtr malloc sizeof QNode Q front p Q rear p Q front next NULL 2 关键算法之二 入队函数 void EnQueue LinkQueue p QueuePtr malloc sizeof QNode p num num p next NULL Q rear next p Q rear p 3 关键算法之三 出队函数 void DeQueue LinkQueue if Q front Q rear printf 队列为空 p Q front next num p num Q front next p next q p next if Q rear q Q rear Q front free p 4 关键算法之四 输出第 i 首曲子时女队的情况 void printF LinkQueue int n 1 while nnext while F rear p printf d p num p p next printf d n p num 6 6 源程序清单和执行结果源程序清单和执行结果 include include include include define MAXSIZE 60 define TRUE 1 define FALSE 0 define OK 1 define ERROR 0 define OVERFLOW 1 typedef int system typedef struct QNode int num struct QNode next QNode QueuePtr typedef struct QueuePtr front QueuePtr rear LinkQueue void sleep clock t wait 延迟函数 clock t goal goal wait clock while goal clock void InitQ LinkQueue p QueuePtr malloc sizeof QNode 精品文档 6欢迎下载 Q front p Q rear p Q front next NULL void EnQueue LinkQueue p QueuePtr malloc sizeof QNode p num num p next NULL Q rear next p Q rear p void DeQueue LinkQueue if Q front Q rear printf 队列为空 p Q front next num p num Q front next p next q p next if Q rear q Q rear Q front free p void printF LinkQueue int n 1 while nnext while F rear p printf d p num p p next printf d n p num void printM LinkQueue int n 1 精品文档 7欢迎下载 while nnext while M rear p printf d p num p p next printf d n p num void main int m n k i a b int count 0 num QueuePtr p q LinkQueue F 女生队 LinkQueue M 男生队 printf 请输入女生数量 scanf d printf 请输入男生数量 scanf d printf 请输曲子号 scanf d printf 请输入要查找的男生编号 scanf d printf 请输入要查找的女生编号 scanf d InitQ F InitQ M for i 1 i m i EnQueue F i for i 1 i n i EnQueue M i for i 1 inext q M front next printf 目前跳舞的是第 d 号女生和第 d 号男生 n p num q num if p num a printf 第 d 曲是要查找的男女生跳舞 n i sleep 3000 DeQueue F num EnQueue F num DeQueue M num EnQueue M num printf 该对男女生共跳舞 d 次 n count 7 7 测试及结果 测试及结果 测试输入数据 男女生的个数曲子数和要查找的男女生编号 输出结果为 每首曲子男女生搭配的情况 程序运行界面如下 精品文档 9欢迎下载 8 8 总结与收获 总结与收获 精品文档 10欢迎下载 通过一周的学习和实践 解决实际问题 学生搭配问题 让我对循环队列有了更深的了解 对数据结构产生了浓厚的兴趣 同时也让我提高了解决实际问题的能力 我们要不断的通过上机来提高自己的学习水平 在上机的同时改正了自己对某些算法的错误 使用 使自己在通过程序解决问题时抓住关键算法 有了算法设计思想和流程图 并用 C 语言描 绘出关键算法 以前我对数据结构 C 语言描述 的一些标准库函数不太了解 还有对函数调用的正确使用 不够熟悉 还有对 C 语言中经常出现的错误也不了解 通过实践 使我在这几个方面的认识有所 提高 让自己有一定的能力去改正一些常见的错误语法 很高兴这一周的学习让我对数据结构 C 语言描述 有了新的认识 所以后在学习过程中 我会更加注视实践操作 使自己便好地学 好计算机 在这次课程设计的实验中 我收获了许多知识 通过查找大量资料 请教老师 以及不懈的 努力 也培养了独立思考 动手操作的能力 我也学会了许多学习和解决实际问题的方法 让我 受益匪浅 时间的紧缺成为一个很大的问题 也希望老师可以为我们知道一下以后的发展方向 如果可以让每个人都有动手焊接以及参与其他的各个流程 有专门的知道就更好了 课程设计对 我来说 趣味性强 不仅锻炼能力 而且可以学到很多东西 在与老师和同学的交流过程中 互 动学习 将知识融会贯通 也增强了我和同学之间的团队合作的能力 让我们知道只要努力 集 中精力解决问题 一定会有收获的 过程也是很重要的 在这次课程设计中我们要学会利用时间 在规定的时间内完成我们的任务 要逐渐养成用 C 语言编写程序的良好习惯 这些对我来说都是一种锻炼 一个知识积累的过程 一种能力的提高 要打好基础 才能用更好的办法 更简洁明了的程序解决实际问题 只有这样才能进一步的取得 更好的成绩 我们会更加努力 努力的去弥补自己的缺点 发展自己的优点 去充实自己 只有 在了解了自己的长短之后 我们会更加珍惜拥有的 更加努力的去完善它 增进它 虽然我现在的水平还很差 但我还会继续努力的 在解决实际问题时如果遇到了难题 我们 要学会去查找大量的有关这方面的资料 还要借助于网络不断扩大自己的知识面和阅读量 这样 也可以锻炼我们的自主学习能力和解决问题的能力 学到了许多以前没学到的东西 在课程设计中的程序都比较复杂 所以需要我们要更加地细心 认真的完成每一步的操作 修改语法 按照老师的指导思想来完成 与此同时也让我们增加了对程序和算法进一步理解 总 之 我学
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安阳市2024-2025学年八年级下学期语文期中模拟试卷
- 阿拉善盟2025-2026学年八年级下学期语文月考模拟试卷
- 安徽省滁州市南谯区2023-2024学年高三上学期第二次月考化学考题及答案
- PSH的识别与护理课件
- 2025 年小升初清远市初一新生分班考试数学试卷(带答案解析)-(人教版)
- 广东省广州市2025年高中“古诗文积累与阅读竞赛”初赛试题(语文)
- 教师教学2025工作总结
- 社区消防知识培训课件信息
- 2024-2025学年山东省潍坊市寒亭区青岛版五年级下册期中测试数学试卷(含答案)
- 房子首付合同范本
- 2025年秋季学期第一次中层干部会议上校长讲话:凝心聚力明方向沉心落力干实事
- 医院患者身份识别核查流程规范
- 广西2025年公需科目学习考试试题及答案4
- 代加工板材合同协议书范本
- 2025年事业单位工勤技能-湖南-湖南地质勘查员二级(技师)历年参考题库含答案解析(5卷)
- 肝炎的分型及护理
- 高中语文38篇课内文言文挖空一遍过(教师版)
- 2025年高考真题物理(四川卷)-2
- 《人为因素与航空法规》课件(共九章)
- 企业负责人财税知识培训
- 部编新课标培训课件
评论
0/150
提交评论