模拟病人排队看病过程c语言,模拟病人到医院排队看病上机内容完整实验报告.doc...

模拟病人到医院排队看病上机内容完整实验报告

【实训内容】

编写一个程序,模拟病人到医院排队看病的情况。

【思路】

由于医院看病是先到先看,所以可以使用队列来实现排队过程。模拟病人的排队看病主要完成以下几个操作:

(1)病人把病历本交到护士手中,相当于进队。

(2)排在最前面的病人先看,同时取走病历,这一步相当于出队。

(3)查看排队,从队头到队尾依次显示队列中所有的病历号。

(4)停止排队,退出程序。

【程序源代码】

#include "stdio.h"

#include "stdio.h"

#include "malloc.h"

typedef struct queue

{ /* 链存储结构 */

int data; /* 数据域 */

struct queue *next; /* 指针域 */

} QUEUE; /* 链类型名 */

QUEUE *front=NULL; /* 队头指针 */

QUEUE *rear=NULL; /* 队尾指针 */

/* ========================================================*/

/* 病例入队 */

/* ========================================================*/

void AddQueue(int x)

{

QUEUE *s;

s=(QUEUE *)malloc(sizeof(QUEUE)); /* 创建结点 */

s->data=x;

s->next=NULL;

if(rear == NULL) /* 空队列 */

front=s;

else /* 非空 */

rear->next=s;

rear=s;

}

/* ========================================================*/

/* 病人就诊,出队 */

/* ========================================================*/

void DelQueue(int *e)

{

if(front == NULL ) /* 队列空 */

printf("Queue is empty\n");

else

{

QUEUE *temp;

temp=front->next;

*e=front->data;

free(front);

front=temp;

}

return;

}

/* ========================================================*/

/* 显示 */

/* ========================================================*/

void DisplayQueue()

{

if(rear==NULL )

{

printf("Queue is empty\n");

return;

}

QUEUE *temp=front;

printf("目前所有的病历号: ");

while (temp!=NULL)

{

printf("%d ",temp->data);

temp=temp->next ;

}

printf("\n");

}

/* ========================================================*/

/* 病人看病的程序 */

/* ========================================================*/

void SeeDoctor()

{

int selection,number; /* number为病历号 */

int exinum; /*exinum用于确认号码是否已有,true表示与之前的号码重复,输入无效*/

int stop=0; /* 判断号是否全部进队,st

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值