/*
*all rights reserved.
*檔名稱:dsitem7-5.cpp
*作 者:於子淇
*完成日期:2023年10月17日
*版 本 號:code::blocks 13.12
* *問題描述:編寫乙個程式,反映病人到醫院看病,排隊看醫生的情況。在病人排隊過程中,主要重複兩件事:
* (1)病人到達診室,將病歷本交給**,排到等待佇列中候診。
* (2)**從等待佇列中取出下一位病人的病歷,該病人進入診室就診。
* 要求模擬病人等待就診這一過程。程式採用選單方式,其選項及功能說明如下:
* (1)排隊——輸入排隊病人的病歷號,加入到病人排隊佇列中。
* (2)就診——病人排隊佇列中最前面的病人就診,並將其從佇列中刪除。
* (3)檢視排隊——從隊首到隊尾列出所有的排隊病人的病歷號。
* (4)不再排隊,餘下順序就診——從隊首到隊尾列出所有的排隊病人的病歷號,並退出執行。
* (5)下班——退出執行,提示未就診的病人明天再來。
*輸入描述:見程式演示
*程式輸出:見程式執行結果演示
*/
程式**
#include
#include
typedef struct qnode
qnode; /*鏈隊結點型別*/
typedef struct
qutype; /*鏈隊型別*/
void seedoctor()
if (find)
printf(" >>輸入的病歷號重複,重新輸入:");
}while (find==
1); //於佇列中未找到相同病歷號,則創立新節點,存放當前輸入的no,並增添至當前佇列的隊尾
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()
**執行結果演示:
第7周 專案5 排隊看病模擬
檔名稱 1.pp 完成日期 2015年10月16日 問題描述 編寫乙個程式,反映病人到醫院看病,排隊看醫生的情況。include include typedef struct qnode qnode 鏈隊結點型別 typedef struct qutype 鏈隊型別 void seedoctor i...
第7周專案5 排隊看病模擬
問題 檔名稱 專案5.cbp 作 者 王聰 完成日期 2015年10月17日 版 本 號 v1.0 問題描述 編寫乙個程式,反映病人到醫院看病,排隊看醫生的情況。在病人排隊過程中,主要重複兩件事 1 病人到達診室,將病歷本交給 排到等待佇列中候診。2 從等待佇列中取出下一位病人的病歷,該病人進入診室...
第7周 專案5 排隊看病模擬
1 病人到達診室,將病歷本交給 排到等待佇列中候診。2 從等待佇列中取出下一位病人的病歷,該病人進入診室就診。要求模擬病人等待就診這一過程。程式採用選單方式,其選項及功能說明如下 1 排隊 輸入排隊病人的病歷號,加入到病人排隊佇列中。2 就診 病人排隊佇列中最前面的病人就診,並將其從佇列中刪除。3 ...