C语言数据结构医院排队就诊系统——使用链队列完成(娱乐)

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
typedef struct list
{
	int data;
	char data1[10];
	struct list *next;
}lnode,*linklist;
typedef struct temp
{
	linklist front;
	linklist rear;
}queue;
enqueue(queue *q)
{
	linklist p=(linklist)malloc(sizeof(lnode));
    printf("输入病例号和名字\n");
    scanf("%d",&p->data);
    scanf("%s",&p->data1);
    p->next=NULL;
    q->rear->next=p;
    q->rear=p;
}
jiuzhen(queue *q)
{
   	linklist p=q->front->next;
   	printf("这是排队就诊的病人:->");
   	printf("%d ",p->data);
   	printf("%s ",p->data1);
   	q->front->next=p->next;
   	free(p);
}
yanshi(char *p)
{
	while(1)
	{
		if(*p!=0)
		{
			printf("%c",*p++);
		}
		else
		{
			break;
		}
		Sleep(100);
	}
}
void jiuzhen1(queue *q)
{
	linklist p=q->front->next;
    printf("按照这个依次就诊:\n");
    while(p)
    {
    printf("%d ",p->data);
    printf("%s ",p->data1);
    q->front->next=p->next;
    free(p);
    p=q->front->next;
    printf("\n");
}
}
chakan(queue *q)
{
	linklist p=q->front->next;
    printf("按照这个依次就诊:\n");
    while(p)
    {
    printf("%d ",p->data);
    printf("%s ",p->data1);
    q->front->next=p->next;
    //free(p);
    p=q->front->next;
    printf("\n");
}
}
int main()
{   
    system("color 0b");
	yanshi("\3\3\3\3\3\3\3欢迎使用医院排队系统\3\3\3\3\3\3\3\3");
	printf("\n");
	printf("              1.进入排队\n");
	printf("              2.首先排队就诊病人\n");
	printf("              3.按次序就诊\n");
	printf("              4.今天结束,退出系统\n");
	printf("              5.查看排队情况\n");
	queue *q=(queue*)malloc(sizeof(queue));
	q->front=q->rear=(linklist)malloc(sizeof(lnode));
//	q->front=q->rear=NULL;
    q->front->next=NULL;
	int x;
	scanf("%d",&x);
	while(x!=-1)
	{
		switch(x)
		{
			case 1: enqueue(q);
			        break;
		    case 2: jiuzhen(q);
		            break;
		    case 3: jiuzhen1(q);
		            break;
		    case 4:
		    	    printf("医院医生下班,明日再来,欢迎使用\n");
		    	    break;
		    case 5: chakan(q);
		            break;
		}
		printf("选择下一步进行的操作: \n");
		scanf("%d",&x);
	}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值