华中科技大学数据结构课程设计.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
华中科技大学数据结构课程设计要点

课程设计报告题目:基于堆的优先级队列ADT实现及其应用课程名称:专业班级:学号:姓名:指导教师:报告日期:2016年2月25日计算机科学与技术学院任务书设计内容传统队列是一种符合先插入的元素必须先删除(FIFO)的处理逻辑,这不总是满足应用要求;很多时候需要优先级高的任务先处理(即后插入的可能先删除)。(1)基于堆的概念设计优先级队列(Priority Queue)抽象数据类型,至少包含Init_PriorityQue, Destroy_PriorityQue, Clear_PriorityQue,PriorityQue_Insert, PriorityQue_DeletMin, PriorityQue_Empty, PriorityQue_Full等操作;(2)选择适当的物理存储结构实现优先级队列ADT; (3)应用优先级队列ADT设计与实现一个医院门诊医师与病人看诊服务事件仿真程序,使医师服务效率尽量高。设计要求(1)仿真事件(如病人到达,病情复杂度/就诊时间,病人离开等)可根据某种概率分布或随机模型生成。(2)要求对各种算法进行理论分析,同时也对实测结果进行统计分析。测试数据要求有一定规模。(3)要求界面整洁、美观,操作方便。参考文献[1] 严蔚敏, 吴伟民. 数据结构(C语言版). 北京: 清华大学出版社,1997[2] 严蔚敏, 吴伟民, 米宁. 数据结构题集(C语言版). 北京: 清华大学出版社,1999[3] Mark Allen Weiss.Data Structures and Algorithm Analysis in C, 机械工业出版社,2010, 177-192目录任务书I1引言11.1课题背景与意义11.2课程设计的主要研究工作12系统需求分析与总体设计22.1系统需求分析22.2系统总体设计23系统详细设计33.1有关数据结构的定义33.2主要算法设计44系统实现与测试114.1系统实现114.2系统测试145总结与展望185.1全文总结185.2工作展望186体会19附录201引言1.1课题背景与意义数据结构这门课对计算机专业的学生来说其重要性是毋庸置疑的。不管是在后续的学习还是在今后的工作中,都会经常用到各种数据结构类型,去存储和处理大量的数据。这次课程设计,意在让我们运用所学的数据结构知识,采用优先级队列数据结构去存储病人的就诊信息,模拟医院医生叫号的系统。本课程设计要求基于堆的概念,设计优先级队列抽象数据结构。要尽可能的仿真,更加趋近现实情况,充分考虑到病人病情复杂度和到达时间,并以此来确定就诊的优先级。通过这次实践相信自己能够更好的理解优先级队列这种数据结构,并对堆有更深切的体会,增强自己的实践能力。1.2课程设计的主要研究工作首先要写出基于堆的概念的优先级队列(Priority Queue)抽象数据类型,包含InitPriQueue(PriQueue *P)构造优先级队列、DestroyPriQueue(PriQueue *P)销毁优先级队列、ClearPriQueue(PriQueue *P)清空优先级队列、PriQueueInsert(PriQueue *P)在队列中插入元素、DeletMin_PriQueue(PriQueue *P)输出队列中优先级最高元素、Ergodic(PriQueue * P)遍历输出队列元素、Status PriQueueEmpty(PriQueue * P)判断队列是否为空、PriQueueFull(PriQueue * P)判断队列是否已满。除了这些,还有两个堆排序的函数,一个判断等待时间是否已经超过病人能够等待时间函数,一个删除病人的函数和一个系统定时生成病人信息并重新排列的函数。有了这些,就可以通过系统时间每隔一段时间自动生成病人的各项信息,包括:病情程度、到达时间和能够等待的时间,并通过这些来得到所有病人的优先级,然后按优先级进行排序,通过叫号每次输出一个优先级最高的病人。剩余的病人会随时间增加优先级变大,以符合实际情况。当病人已等待时间超过他能够等待的时间时,会删除这个病人及其各项信息。随着时间流逝,病人不断增多,来模拟真实的就诊情景。2系统需求分析与总体设计2.1系统需求分析我设计的这个系统如若成功,应该能够随时间变化,自动生成病人的初始优先级,到达时间和能够等待的时间。手动模拟医生叫号,这时优先级最高的病人出队列,并能够随时查询当前的就诊信息,把每个病人的信息依次输出,还能够统计已经就诊的病人和未就诊就离开的病人及其比例,还能够清空当前产生的所有的病人信息。程序运行时,每隔10秒不断产生新的病人及其信息,按下1手动叫号,按下2查询当前还在排队的病人信息,按下3统计所有就诊病人和未就诊离开的病人比例,按下4清空当前所有排队的病人,按下0退

文档评论(0)

dajuhyy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档