病人就医管理代码.doc

上传人:re****.1 文档编号:547687175 上传时间:2023-09-02 格式:DOC 页数:14 大小:49.50KB
返回 下载 相关 举报
病人就医管理代码.doc_第1页
第1页 / 共14页
病人就医管理代码.doc_第2页
第2页 / 共14页
病人就医管理代码.doc_第3页
第3页 / 共14页
病人就医管理代码.doc_第4页
第4页 / 共14页
病人就医管理代码.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《病人就医管理代码.doc》由会员分享,可在线阅读,更多相关《病人就医管理代码.doc(14页珍藏版)》请在金锄头文库上搜索。

1、2.病人就医管理 1.目标与要求编写一个程序,反应病人到医院看病,排队看医生的情况。在病人排队的过程中,主要发生两件事。(1)病人到达诊室,将病历本交给护士,拍到等待队列中候诊。(2)护士从等待队列中取出以为病人的病历,该病人进入诊室就诊。要求程序采用菜单方式,其选项及功能说明如下。(1)排队输入病人的病历号,加入到病人排队队列中。(2)就诊病人排列队列中最前面的病人就诊,并将其从队列中删除。(3)查看排队从队首到队尾列出所有的排队病人的病历号。(4)下班退出运行。 2.工具、准备工作 在实验开始前,应回顾或复习相关内容。需要一台计算机,其中安装有Visual C+ 6.0、Visual c+

2、 2005、Visual C+ 2005 Express Dev-c+或MinGW Developer Studio等集成开发环境软件 3.实验分析 4.代码如下: /头文件:hospitalize.h #ifndef _HOSPITALIZE_H_#define _HOSPITALIZE_H_#include lk_queue.h/ 链队列/ 行医类class Hospitalizeprivate:/ 行医类的数据成员:LinkQueue queue;/ 病人队列/ 辅助函数void StandInALine();/ 排队void Cure();/ 就诊void Display();/ 查看

3、排队public:/ 方法声明及重载编译系统默认方法声明:Hospitalize();/ 无参数的构造函数Hospitalize();/ 析构函数void Work();/ 医生工作;/ 行医类的实现部分void Hospitalize:StandInALine()/ 操作结果: 输入排队病人的病历号,加入到病人排队队列中unsigned int num;/ 病历号cout num;/ 输入排队病人queue.InQueue(num);/ 将病历号加入到病人排队队列中void Hospitalize:Cure()/ 操作结果: 病人排队队列中最前面的病人就诊,并将其从队列中删除if (queu

4、e.Empty()/ 无病人cout 现已没有病人在排队了! endl;elseunsigned int num;/ 病历号queue.OutQueue(num);/ 病人排队队列中最前面的病人就诊,并将其从队列中删除cout num 号病人现在就医. endl;void Hospitalize:Display()/ 操作结果: 从队首到队尾列出所有的排队病人的病历号queue.Traverse(Write);/ 从队首到队尾列出所有的排队病人的病历号cout endl;void Hospitalize:Work()/ 操作结果: 医生工作int select = 0;while (selec

5、t != 4)cout 1. 排队-输入病人的病历号,加入到病人队列中 endl;cout 2. 就诊-病人排队队列中最前面的病人就诊,并将其从队列中删除 endl;cout 3. 查看排队-从队首到队尾列出所有的排队病人的病历号 endl;cout 4. 下班-退出运行 endl;cout select;/ 选择功能switch(select)case 1:StandInALine();/ 排队-输入病人的病历号,加入到病人队列中break;case 2:Cure();/ 就诊-病人排队队列中最前面的病人就诊,并将其从队列中删除break;case 3:Display();/ 查看排队-从队

6、首到队尾列出所有的排队病人的病历号break;#endif/头文件:lk_queue.h#ifndef _LK_QUEUE_H_#define _LK_QUEUE_H_#include utility.h/ 实用程序软件包#include node.h/ 结点类模板/ 链队列类模板templateclass LinkQueue protected:/ 链队列实现的数据成员:Node *front, *rear;/ 队头队尾指指/ 辅助函数模板:void Init();/ 初始化队列public:/ 抽象数据类型方法声明及重载编译系统默认方法声明:LinkQueue();/ 无参数的构造函数模板

7、virtual LinkQueue();/ 析构函数模板int Length() const;/ 求队列长度 bool Empty() const;/ 判断队列是否为空void Clear();/ 将队列清空void Traverse(void (*visit)(const ElemType &) const ;/ 遍历队列StatusCode OutQueue(ElemType &e);/ 出队操作StatusCode GetHead(ElemType &e) const;/ 取队头操作StatusCode InQueue(const ElemType &e);/ 入队操作LinkQueue

8、(const LinkQueue ©);/ 复制构造函数模板LinkQueue &operator =(const LinkQueue ©);/ 重载赋值运算符;/ 链队列类模板的实现部分template void LinkQueue:Init()/ 操作结果:初始化队列rear = front = new Node;/ 生成头结点templateLinkQueue:LinkQueue()/ 操作结果:构造一个空队列Init();templateLinkQueue:LinkQueue()/ 操作结果:销毁队列Clear();templateint LinkQueue:Lengt

9、h() const/ 操作结果:返回队列长度 int count = 0;/ 计数器 for (Node *tmpPtr = front-next; tmpPtr != NULL; tmpPtr = tmpPtr-next)/ 用tmpPtr依次指向每个元素count+;/ 对栈每个元素进行计数return count;templatebool LinkQueue:Empty() const/ 操作结果:如队列为空,则返回true,否则返回false return rear = front;templatevoid LinkQueue:Clear() / 操作结果:清空队列ElemType t

10、mpElem;/ 临时元素值while (Length() 0)/ 队列非空,则出列OutQueue(tmpElem);template void LinkQueue:Traverse(void (*visit)(const ElemType &) const / 操作结果:依次对队列的每个元素调用函数(*visit)for (Node *tmpPtr = front-next; tmpPtr != NULL; tmpPtr = tmpPtr-next)/ 对队列每个元素调用函数(*visit)(*visit)(tmpPtr-data);templateStatusCode LinkQueue

11、:OutQueue(ElemType &e)/ 操作结果:如果队列非空,那么删除队头元素,并用e返回其值,返回SUCCESS,/否则返回UNDER_FLOW,if (!Empty() / 队列非空Node *tmpPtr = front-next;/ 指向队列头素e = tmpPtr-data;/ 用e返回队头元素front-next = tmpPtr-next;/ front指向下一元素if (rear = tmpPtr)/ 表示出队前队列中只有一个元素,出队后为空队列rear = front;delete tmpPtr;/ 释放出队的结点return SUCCESS;else/ 队列为空return UNDER_FLOW;templateStatusCode LinkQueue:GetHead(ElemType &e) const/ 操作结果:如果队列非空,那么用e返回队头元素,返回SUCCESS,/否则返回UNDER_FLOW,if (!Empty() / 队列非空Node *tmpPtr = front-next;/ 指向队列头素e = tmpPtr

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号