最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++實現(xiàn)病人就醫(yī)管理系統(tǒng)

 更新時間:2019年01月30日 16:11:50   作者:yiyichenyang  
這篇文章主要為大家詳細介紹了C++語言實現(xiàn)病人就醫(yī)管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C++語言實現(xiàn)病人就醫(yī)管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

函數(shù)可實現(xiàn)反應(yīng)病人到醫(yī)院看病,排隊看醫(yī)生的情況,有行醫(yī)類模板的定義及所有類函數(shù)的編寫代碼

部分代碼展示:

lk_queue.h

#ifndef __LK_QUEUE_H__
#define __LK_QUEUE_H__

#include "utility.h" // 實用程序軟件包
#include "node.h" // 結(jié)點類模板

// 鏈隊列類模板

template<class ElemType>
class LinkQueue 
{
protected:
// 鏈隊列實現(xiàn)的數(shù)據(jù)成員:
 Node<ElemType> *front, *rear; // 隊頭隊尾指指

// 輔助函數(shù)模板:
 void Init(); // 初始化隊列

public:
// 抽象數(shù)據(jù)類型方法聲明及重載編譯系統(tǒng)默認方法聲明:
 LinkQueue(); // 無參數(shù)的構(gòu)造函數(shù)模板
 virtual ~LinkQueue(); // 析構(gòu)函數(shù)模板
 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(const LinkQueue<ElemType> &copy); // 復(fù)制構(gòu)造函數(shù)模板
 LinkQueue<ElemType> &operator =(const LinkQueue<ElemType> &copy);// 重載賦值運算符
};

// 鏈隊列類模板的實現(xiàn)部分

template <class ElemType>
void LinkQueue<ElemType>::Init()
// 操作結(jié)果:初始化隊列
{
 rear = front = new Node<ElemType>; // 生成頭結(jié)點
}

template<class ElemType>
LinkQueue<ElemType>::LinkQueue()
// 操作結(jié)果:構(gòu)造一個空隊列
{
 Init();
}

template<class ElemType>
LinkQueue<ElemType>::~LinkQueue()
// 操作結(jié)果:銷毀隊列
{
 Clear(); 
}

template<class ElemType>
int LinkQueue<ElemType>::Length() const
// 操作結(jié)果:返回隊列長度 
{
 int count = 0; // 計數(shù)器 
 for (Node<ElemType> *tmpPtr = front->next; tmpPtr != NULL; tmpPtr = tmpPtr->next)
 { // 用tmpPtr依次指向每個元素
 count++; // 對棧每個元素進行計數(shù)
 }
 return count;
}

template<class ElemType>
bool LinkQueue<ElemType>::Empty() const
// 操作結(jié)果:如隊列為空,則返回true,否則返回false
{
 return rear == front;
}

template<class ElemType>
void LinkQueue<ElemType>::Clear() 
// 操作結(jié)果:清空隊列
{
 ElemType tmpElem; // 臨時元素值
 while (Length() > 0)
 { // 隊列非空,則出列
 OutQueue(tmpElem);
 }
}

template <class ElemType>
void LinkQueue<ElemType>::Traverse(void (*visit)(const ElemType &)) const 
// 操作結(jié)果:依次對隊列的每個元素調(diào)用函數(shù)(*visit)
{
 for (Node<ElemType> *tmpPtr = front->next; tmpPtr != NULL; 
 tmpPtr = tmpPtr->next)
 { // 對隊列每個元素調(diào)用函數(shù)(*visit)
 (*visit)(tmpPtr->data);
 }
}


template<class ElemType>
StatusCode LinkQueue<ElemType>::OutQueue(ElemType &e)
// 操作結(jié)果:如果隊列非空,那么刪除隊頭元素,并用e返回其值,返回SUCCESS,
// 否則返回UNDER_FLOW,
{
 if (!Empty()) 
 { // 隊列非空
 Node<ElemType> *tmpPtr = front->next; // 指向隊列頭素
 e = tmpPtr->data; // 用e返回隊頭元素
 front->next = tmpPtr->next; // front指向下一元素
 if (rear == tmpPtr)
 { // 表示出隊前隊列中只有一個元素,出隊后為空隊列
 rear = front;
 }
 delete tmpPtr; // 釋放出隊的結(jié)點
 return SUCCESS;
 }
 else
 { // 隊列為空
 return UNDER_FLOW;
 }
}

template<class ElemType>
StatusCode LinkQueue<ElemType>::GetHead(ElemType &e) const
// 操作結(jié)果:如果隊列非空,那么用e返回隊頭元素,返回SUCCESS,
// 否則返回UNDER_FLOW,
{
 if (!Empty()) 
 { // 隊列非空
 Node<ElemType> *tmpPtr = front->next; // 指向隊列頭素
 e = tmpPtr->data; // 用e返回隊頭元素
 return SUCCESS;
 }
 else
 { // 隊列為空
 return UNDER_FLOW;
 }
}

template<class ElemType>
StatusCode LinkQueue<ElemType>::InQueue(const ElemType &e)
// 操作結(jié)果:插入元素e為新的隊尾,返回SUCCESS
{
 Node<ElemType> *tmpPtr = new Node<ElemType>(e); // 生成新結(jié)點
 rear->next = tmpPtr; // 新結(jié)點追加在隊尾
 rear = tmpPtr; // rear指向新隊尾
 return SUCCESS;
}

template<class ElemType>
LinkQueue<ElemType>::LinkQueue(const LinkQueue<ElemType> &copy)
// 操作結(jié)果:由隊列copy構(gòu)造新隊列——復(fù)制構(gòu)造函數(shù)模板
{
 Init();
 for (Node<ElemType> *tmpPtr = copy.front->next; tmpPtr != NULL; 
 tmpPtr = tmpPtr->next)
 { // 對copy隊列每個元素對當前隊列作入隊列操作
 InQueue(tmpPtr->data);
 }
}

template<class ElemType>
LinkQueue<ElemType> &LinkQueue<ElemType>::operator =(const LinkQueue<ElemType> &copy)
// 操作結(jié)果:將隊列copy賦值給當前隊列——重載賦值運算符
{
 if (&copy != this)
 {
 Clear();
 for (Node<ElemType> *tmpPtr = copy.front->next; tmpPtr != NULL; 
 tmpPtr = tmpPtr->next)
 { // 對copy隊列每個元素對當前隊列作入隊列操作
 InQueue(tmpPtr->data);
 }
 }
 return *this;
}

#endif

Hospitalize.h

#ifndef __HOSPITALIZE_H__
#define __HOSPITALIZE_H__


#include"lk_queue.h" //鏈隊列


//行醫(yī)類
class HospitalListWLY
{
private:
 //行醫(yī)類數(shù)據(jù)成員
 LinkQueue<unsigned int>queue; //病人隊列


 //輔助函數(shù)
 void StandInALine(); //排隊
 void Cure(); //就診
 void Display(); //查看排隊


public:
 //方法聲明及重載編譯系統(tǒng)默認方法聲明
 HospitalListWLY(){}; //無參數(shù)的構(gòu)造函數(shù)
 ~HospitalListWLY(){}; //析構(gòu)函數(shù)
 void Work(); //醫(yī)生行醫(yī)工作
};

//行醫(yī)類的實現(xiàn)部分
void HospitalListWLY::StandInALine()
//操作結(jié)果:輸入病人的病歷號,加入到病人排隊隊列中
{
 unsigned int num; //病歷號


 cout<<"請輸入病歷號:";
 cin>>num; //輸入病人的病歷號
 queue.InQueue(num); //將病歷號加入到病人排隊隊列中

}


void HospitalListWLY::Cure()
//操作結(jié)果:病人排隊隊列中最前面的病人就診,將其從隊列中刪除
{
 if (queue.Empty())
 { //無病人
 cout<<"現(xiàn)已沒有病人在排隊了!"<<endl;
 }
 else
 {
 unsigned int num; //病歷號
 queue.OutQueue(num); //病人排隊隊列中最前面的病人就診,并將其從隊列中刪除
 cout<<num<<"號病人現(xiàn)在就醫(yī)."<<endl;
 }
}

void HospitalListWLY::Display()
//操作結(jié)果:從隊首到隊尾列出所有的排隊病人的病歷號
{
 queue.Traverse(Write); //從隊首到隊尾列出所有的排隊病人的病歷號
 cout<<endl;
}


void HospitalListWLY::Work()
//操作結(jié)果:醫(yī)生行醫(yī)工作
{
 int select=0;
 while(select!=4)
 {
 cout<<"1。排隊—輸入排隊病人的病歷號,加入到病人隊列中."<<endl;
 cout<<"2.就診—病人排隊隊列中最前面的病人就診,并將其從隊列中刪除"<<endl;
 cout<<"3.查看排隊—從隊首到隊尾列出所有的排隊病人的病歷號"<<endl;
 cout<<"4.下班—退出運行"<<endl;
 cout<<"請選擇:";
 cin>>select; //選擇功能
 switch(select)
 {
 case 1:
 StandInALine(); //排隊——輸入病人的病歷號,加入到病人隊列中
 break;
 case 2:
 Cure(); //就診——病人排隊隊列中最前面的病人就診,并將其從隊列中刪除
 break;
 case 3:
 Display(); //查看隊列——從隊首到隊尾列出所有的排隊病人的病歷號
 break;
 }
 }
}


#endif

全部代碼下載鏈接:C++語言實現(xiàn)病人就醫(yī)管理系統(tǒng)

更多學(xué)習(xí)資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++實現(xiàn)動態(tài)規(guī)劃過程詳解

    C++實現(xiàn)動態(tài)規(guī)劃過程詳解

    動態(tài)規(guī)劃是解決一類最優(yōu)問題的常用方法,它是解決最優(yōu)化問題的一種途徑,在本文中,我們將討論如何使用C++實現(xiàn)動態(tài)規(guī)劃算法,并提供一些示例來幫助您更好地理解該算法
    2023-05-05
  • 基于Opencv實現(xiàn)顏色識別

    基于Opencv實現(xiàn)顏色識別

    這篇文章主要為大家詳細介紹了基于Opencv實現(xiàn)顏色識別,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 一篇文章帶你了解c++運算符重載

    一篇文章帶你了解c++運算符重載

    下面小編就為大家?guī)硪黄钊肜斫釩++運算符重載。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-08-08
  • C++ std::initializer_list 實現(xiàn)原理解析及遇到問題

    C++ std::initializer_list 實現(xiàn)原理解析及遇到問題

    這篇文章主要介紹了C++ std::initializer_list 實現(xiàn)原理勘誤,本文通過源碼解析給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • 淺談c++ vector和map的遍歷和刪除對象

    淺談c++ vector和map的遍歷和刪除對象

    下面小編就為大家?guī)硪黄獪\談c++ vector和map的遍歷和刪除對象。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • C++編程析構(gòu)函數(shù)拷貝構(gòu)造函數(shù)使用示例詳解

    C++編程析構(gòu)函數(shù)拷貝構(gòu)造函數(shù)使用示例詳解

    這篇文章主要為大家介紹了C++編程構(gòu)造函數(shù)中析構(gòu)函數(shù)及拷貝構(gòu)造函數(shù)的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • C++實現(xiàn)LeetCode(7.翻轉(zhuǎn)整數(shù))

    C++實現(xiàn)LeetCode(7.翻轉(zhuǎn)整數(shù))

    這篇文章主要介紹了C++實現(xiàn)LeetCode(7.翻轉(zhuǎn)整數(shù)),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 用C語言實現(xiàn)五子棋小游戲

    用C語言實現(xiàn)五子棋小游戲

    這篇文章主要為大家詳細介紹了用C語言實現(xiàn)五子棋小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 詳解C++標準庫中處理正則表達式的類std::regex

    詳解C++標準庫中處理正則表達式的類std::regex

    std?是?C++?標準庫的命名空間,包含了大量標準的?C++?類、函數(shù)和對象,這些類和函數(shù)提供了廣泛的功能,包括輸入輸出、容器、算法、字符串處理等,這篇文章主要介紹了C++標準庫中提供的用于處理正則表達式的類std::regex,需要的朋友可以參考下
    2024-03-03
  • C++ 智能指針深入解析

    C++ 智能指針深入解析

    以下是對C++中智能指針的使用進行了詳細的分析介紹,需要的朋友可以參考下
    2013-07-07

最新評論

揭阳市| 铅山县| 曲松县| 双辽市| 威宁| 龙州县| 大石桥市| 景宁| 明光市| 萨迦县| 苍溪县| 眉山市| 弥勒县| 陇川县| 永胜县| 东源县| 皮山县| 平泉县| 武清区| 京山县| 拉萨市| 奉贤区| 阳高县| 修水县| 兴安盟| 马关县| 阿拉善左旗| 绥阳县| 白山市| 定西市| 资阳市| 开原市| 揭东县| 会东县| 蛟河市| 吕梁市| 宕昌县| 抚远县| 游戏| 万载县| 乌海市|