通过简单的实现医院挂号看病功能,实现对数据结构队列的简单应用。
本设计中医院挂号看病主要有病人挂号、查看就诊队列、就诊、下班等功能。
#include<stdio.h>
#include<stdlib.h>
typedef struct QNode{
int data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct{
QueuePtr front;
QueuePtr rear;
}LinkQueue;
void output(LinkQueue *S)
{
QueuePtr p;
p=S->front->next;
while(p != S->rear)
{
printf("%d ",p->data);
p=p->next;
}
printf("%d\n",p->data);
}
int InitQueue(LinkQueue *S)
{
S->front = S->rear = (QueuePtr)malloc(sizeof(QNode));
if(!S->front)
return 0;
S->front->next = NULL;
return 0;
}
int EnQueue(LinkQueue *S,int e)
{
QueuePtr p;
p=(QueuePtr)malloc(sizeof(QNode));
if(!p)
return 0;
p->data = e;
p->next = NULL;
S->rear->next = p;
S->rear = p;
return 0;
}
int DeQueue(LinkQueue *S)
{
int e;
if(S->front == S->rear)
return 0;
QueuePtr p;
p = S->front->next;
e = p->data;
S->front->next = p->next;
if(p == S->rear)
S->front == S->rear ;
free(p);
return e;
}
int guahao(LinkQueue S)
{
int n;
printf(">>请输入病历号:");
scanf("%d",&n);
EnQueue(&S,n);
return 0;
}
int jiuzhen(LinkQueue S)
{
int n;
n=DeQueue(&S);
printf(">>请病人%d就诊!\n",n);
return 0;
}
int paidui(LinkQueue S)
{
printf(">>排队病人:");
output(&S);
return 0;
}
int yici(LinkQueue S)
{
printf(">>依次就诊:");
output(&S);
return 0;
}
int xiaban(LinkQueue S)
{
printf("现已下班,请以下患者明日再来:");
output(&S);
return 0;
}
int suanfa()
{
LinkQueue S;
InitQueue(&S);
int n=1;
printf("欢迎使用本医院挂号平台:\n1.挂号 2.就诊 3.查看排队 4.不在排队,余下依次就诊 5.下班\n");
while(n != 5)
{
printf("请选择功能:");
scanf("%d",&n);
switch(n)
{
case 1:
guahao(S);
break;
case 2:
jiuzhen(S);
break;
case 3:
paidui(S);
break;
case 4:
yici(S);
break;
}
if(n == 5)
{
xiaban(S);
return 0;
}
}
return 0;
}
int main()
{
suanfa();
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)