第七周專案(5) 排隊看病時模擬

2021-07-05 20:38:48 字數 2943 閱讀 4915

問題及**:

標頭檔案:

/*

*煙台大學計算機與控制工程學院

*作 者:楊甯

*完成日期:2023年10月14日

*問題描述:編寫乙個程式,反映病人到醫院看病,排隊看醫生的情況。在病人排隊過程中,主要重複兩件事:

(1)病人到達診室,將病歷本交給**,排到等待佇列中候診。

(2)**從等待佇列中取出下一位病人的病歷,該病人進入診室就診。

要求模擬病人等待就診這一過程。程式採用選單方式,其選項及功能說明如下:

(1)排隊——輸入排隊病人的病歷號,加入到病人排隊佇列中。

(2)就診——病人排隊佇列中最前面的病人就診,並將其從佇列中刪除。

(3)檢視排隊——從隊首到隊尾列出所有的排隊病人的病歷號。

(4)不再排隊,餘下順序就診——從隊首到隊尾列出所有的排隊病人的病歷號,並退出執行。

(5)下班——退出執行,提示未就診的病人明天再來。

*/#ifndef liqueue_h_included

#define liqueue_h_included

typedef char elemtype;

typedef struct qnode

qnode; //鏈隊資料結點型別定義

typedef struct

liqueue; //鏈隊型別定義

void initqueue(liqueue *&q); //初始化鏈隊

void destroyqueue(liqueue *&q); //銷毀鏈隊

bool queueempty(liqueue *q); //判斷鏈隊是否為空

int queuelength(liqueue *q); //返回佇列中資料元素個數

void enqueue(liqueue *&q,elemtype e); //入隊

bool dequeue(liqueue *&q,elemtype &e); //出隊

#endif // liqueue_h_included

原始檔:

#include #include #include"head.h"

void initqueue(liqueue *&q) //初始化鏈隊

void destroyqueue(liqueue *&q) //銷毀鏈隊

}free(p);

free(q); //釋放鏈隊節點占用空間

}bool queueempty(liqueue *q) //判斷鏈隊是否為空

int queuelength(liqueue *q) //返回佇列中資料元素個數

return(n);

}void enqueue(liqueue *&q,elemtype e) //入隊

}bool dequeue(liqueue *&q,elemtype &e) //出隊

main函式:

#include #include #include"head.h"

typedef struct

qutype; /*鏈隊型別*/

void seedoctor()

if (find)

printf(" >>輸入的病歷號重複,重新輸入:");

}while (find==1);

p=(qnode *)malloc(sizeof(qnode)); /*建立結點*/

p->data=no;

p->next=null;

if (qu->rear==null) /*第乙個病人排隊*/

else

break;

case 2:

if (qu->front==null) /*隊空*/

printf(" >>沒有排隊的病人!\n");

else /*隊不空*/

else

qu->front=p->next;

free(p);

}break;

case 3:

if (qu->front==null) /*隊空*/

printf(" >>沒有排列的病人!\n");

else /*隊不空*/

printf("\n");

}break;

case 4:

if (qu->front==null) /*隊空*/

printf(" >>沒有排列的病人!\n");

else /*隊不空*/

printf("\n");

}flag=0; /*退出*/

break;

case 5:

if (qu->front!=null) /*隊不空*/

printf(" >>請排隊的病人明天就醫!\n");

flag=0; /*退出*/

break;}}

p=qu->front; //銷毀佇列

while (p!=null)

}int main()

執行結果:

知識點及總結:

鏈隊的應用,需考慮多種情況。

學習心得:

很實用的**,在哪都能有類似的情況。掌握了它就可以解決一系列類似的問題。

第七周專案5排隊看病模擬

問題及描述 1 病人到達診室,將病歷本交給 排到等待佇列中候診。2 從等待佇列中取出下一位病人的病歷,該病人進入診室就診。要求模擬病人等待就診這一過程。程式採用選單方式,其選項及功能說明如下 1 排隊 輸入排隊病人的病歷號,加入到病人排隊佇列中。2 就診 病人排隊佇列中最前面的病人就診,並將其從佇列...

第七周 專案5 排隊看病模擬

all right reserved 檔名稱 liqueue.cpp 完成日期 2015年10月14日 版本號 v1.0 問題描述 排隊看病模擬 include include include liqueue.h void seedoctor if find printf 輸入的病歷號重複,重新輸入...

第七周專案5 排隊看病模擬

檔名稱 test.cpp 完成日期 2015年10月23日 版本號 vc 6.0 問題描述 編寫乙個程式,反映病人到醫院看病,排隊看醫生的情況。在病人排隊過程中,主要重複兩件事 1 病人到達診室,將病歷本交給 排到等待佇列中候診。2 從等待佇列中取出下一位病人的病歷,該病人進入診室就診。要求模擬病人...