模拟患者医院看病过程c语言
时间: 2023-12-15 09:03:29 浏览: 32
好的,以下是一个简单的模拟患者医院看病过程的 C 语言程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int patientCount = 0; // 病人数量
int doctorCount = 3; // 医生数量
int waitingCount = 0; // 等待就诊的病人数量
int consultCount = 0; // 正在就诊的病人数量
int treatedCount = 0; // 已经诊治完成的病人数量
srand(time(NULL)); // 初始化随机数种子
while (treatedCount < 20) { // 总共需要诊治 20 个病人
int r = rand() % 10; // 生成一个随机数
if (r < 4 && patientCount < 50) { // 有 40% 的概率新来一个病人
printf("新来一个病人!\n");
patientCount++;
if (waitingCount + consultCount < doctorCount) { // 如果有空闲医生,直接就诊
printf("病人进入诊室!\n");
consultCount++;
} else { // 否则等待就诊
printf("病人进入等候室!\n");
waitingCount++;
}
}
if (consultCount > 0) { // 如果有正在就诊的病人
printf("医生正在诊治病人!\n");
consultCount--;
treatedCount++;
printf("病人已经看完病!\n");
if (waitingCount > 0) { // 如果等待室有病人,就把他们叫去就诊
printf("叫下一个病人进入诊室!\n");
waitingCount--;
consultCount++;
}
}
printf("当前病人数量:%d,等待就诊的病人数量:%d,正在就诊的病人数量:%d,已经诊治完成的病人数量:%d\n", patientCount, waitingCount, consultCount, treatedCount);
}
printf("所有病人已经看完病!\n");
return 0;
}
```
这个程序模拟了一个简单的医院看病过程,有以下几个要点:
- 程序通过一个 `while` 循环模拟了 20 个病人需要就诊的过程。
- 每次循环,程序会生成一个随机数,如果小于 4,就表示有新的病人来了。
- 如果正在就诊的病人数量小于医生数量,新来的病人就可以直接就诊;否则,他就需要进入等候室等待就诊。
- 如果有正在就诊的病人,医生会进行诊治,并将他们从正在就诊的病人列表中移除,同时将他们加入已经诊治完成的病人列表中。
- 如果等待室有病人,医生会叫下一个病人进入诊室就诊。
- 每次循环结束后,程序会输出当前病人数量、等待就诊的病人数量、正在就诊的病人数量、已经诊治完成的病人数量。
当程序运行完毕后,就表示所有病人都已经看完了病。