C语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。C语言是一种广泛使用的计算机语言,它与 Java 编程语言一样普及,二者在现代软件程序员之间都得到广泛使用。
#include <stdio.h>
#include <malloc.h>
typedef int queuetype
queuetype num=1
typedef struct qnode
{
queuetype data
struct qnode *next
} QNode//链队结点类型
typedef struct
{
QNode *front,*rear
} QuType
void initlqueue(QuType *L)
{
L->front=L->rear=NULL
}
void pushlqueue(QuType *L,queuetype e)
{
QNode *p=(QNode*)malloc(sizeof(QNode))
p->data=e
p->next=NULL
if(!L->front)
{
L->front=p
}
if(L->rear)
L->rear->next=p
L->rear=p
num++
}
void deletlqueue(QuType *L)
{
if(L->front)
{
QNode *p
p=L->front
printf("第%d位选手已经就诊!\n",p->data)
L->front=p->next
if(!p)
L->rear=NULL
else
free(p)
}
else
{
num=0
printf("所有的病人都已就诊完毕!\n")
}
}
void showqueueperson(QuType *L)
{
QNode *p=L->front
printf("输出所有排队者的序号:\n")
while(p)
{
printf(" %d\n",p->data)
p=p->next
}
if(!L->front)
printf("病人都已经看病完成!\n")
}
void quikSee(QuType*L,queuetype e)
{
QNode *p=L->front,*q,*t
while(p&&p->data!=e)
{
t=p
p=p->next
}
if(p->data==e)
{
printf("find!%d号即可进行诊疗!\n",p->data)
q=t->next
if(q->next)
t->next=q->next
if(t->next==L->rear)
t->next=L->rear=NULL free(q)
}
else
printf("队列中无此人!无需删除操作!\n")
}
//链队类型
void SeeDoctor()
{
int sel,flag=1
QuType *qu=(QuType*)malloc(sizeof(QuType))
queuetype quik=0
initlqueue(qu)//创建空队
while (flag==1) //循环执行
{
printf("1:排队 2:就诊 3:查看排队 4.不再排队,余下依次就诊 5:下班 请选择:")
scanf("%d",&sel)
switch(sel)
{ //排队,入队
case 1: pushlqueue(qu,num)printf("\n挂号成功!\n")break
case 2: deletlqueue(qu)
printf("\n")break //就诊,出队
case 3: showqueueperson(qu) break //显示排队病人
case 4: {
printf("若您需要马上就诊,请输入您的号:")
scanf("%d",&quik)
quikSee(qu,quik)
printf("\n")
} break //任意顺序就诊
case 5: {
printf("抱歉!已下班,请排队的病人明天再来就诊!\n\n")//下班,明天就医!
flag=0 //退出
break
}
default : printf("输入错误,请从新输入!\n\n")continue
}
}
}
void main()
{
SeeDoctor()
}
病人的姓名等信息就在结构体里加几个成员就行了!主要功能已经实现了!
我截张图给你吧!