当前位置:文档之家› 华中科技大学数据结构课程设计

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


直接让计算机代替实现了,并模拟地产生了病人的病情优先级(也是随机的),
每过一段时间,在队列中的病人的优先级会呈线性增长,来模拟现实中等待越久,
优先级越高的情景,而且还有病人最多能够等待的一个时间限制(随机产生),
当他实际等待的时间超过这个限值,就会在队列中删除他,并把他算入未就诊就
离开的人中,以便在统计就诊信息功能中更好地进行统计。
设计要求
(1)仿真事件(如病人到达,病情复杂度/就诊时间,病人离开等)可根据某 种概率分布或随机模型生成。 (2)要求对各种算法进行理论分析,同时也对实测结果进行统计分析。测试 数据要求有一定规模。 (3)要求界面整洁、美观,操作方便。
参考文献
[1] 严蔚敏, 吴伟民. 数据结构(C 语言版). 北京: 清华大学出版社,1997 [2] 严蔚敏, 吴伟民, 米宁. 数据结构题集(C 语言版). 北京: 清华大学出版 社,1999 [3] Mark Allen Weiss.Data Structures and Algorithm Analysis in C, 机械工业出 版社,2010, 177-192
华中科技大学计算机科学与技术学院课程设计报告
课程设计报告
题目:
基于堆的优先级队列 ADT 实现及其应用
课程名称: 专业班级: 学 号: 姓 名: 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 系统需求分析与总体设计
2.1 系统需求分析
我设计的这个系统如若成功,应该能够随时间变化,自动生成病人的初始优 先级,到达时间和能够等待的时间。手动模拟医生叫号,这时优先级最高的病人 出队列,并能够随时查询当前的就诊信息,把每个病人的信息依次输出,还能够 统计已经就诊的病人和未就诊就离开的病人及其比例,还能够清空当前产生的所 有的病人信息。
I
华中科技大学计算机科学与技术学院课程设计报告
目录
任务书........................................................................................................................................... I 1 引言........................................................................................................................................... 1 1.1 课题背景与意义........................................................................................................................ 1 1.2 课程设计的主要研究工作.......................................................................................................... 1 2 系统需求分析与总体设计........................................................................................................2 2.1 系统需求分析............................................................................................................................2 2.2 系统总体设计............................................................................................................................2 3 系统详细设计.............................................................................................................................. 3 3.1 有关数据结构的定义................................................................................................................. 3 3.2 主要算法设计............................................................................................................................4 4 系统实现与测试......................................................................................................................... 11 4.1 系统实现.................................................................................................................................11 4.2 系统测试.................................................................................................................................14 5 总结与展望................................................................................................................................ 18 5.1 全文总结.................................................................................................................................18 5.2 工作展望.................................................................................................................................18 6 体会.......................................................................................................................................... 19 附录............................................................................................................................................ 20
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)判断队列是否已满。除了这些, 还有两个堆排序的函数,一个判断等待时间是否已经超过病人能够等待时间函数, 一个删除病人的函数和一个系统定时生成病人信息并重新排列的函数。有了这些, 就可以通过系统时间每隔一段时间自动生成病人的各项信息,包括:病情程度、 到达时间和能够等待的时间,并通过这些来得到所有病人的优先级,然后按优先 级进行排序,通过叫号每次输出一个优先级最高的病人。剩余的病人会随时间增 加优先级变大,以符合实际情况。当病人已等待时间超过他能够等待的时间时, 会删除这个病人及其各项信息。随着时间流逝,病人不断增多,来模拟真实的就 诊情景。
总体来说,我设计的这个系统中计算机扮演的角色偏多,既产生病人,又产
相关主题