📄 +
字号:
#include<iostream.h>
#include<stdio.h>
typedef struct qnode
{int data;
struct qnode * next;
}QNode; //链队结点类型
typedef struct
{QNode * front,* rear;
}QuType; //链队类型
void SeeDoctor() //模拟病人看病的过程
{
int sel,flag=1,find,no;
QuType * qu;
QNode * p;
qu=new QuType; //创建空队
qu->front=qu->rear=NULL;
while(flag==1) //循环执行
{cout<<"1:排队 2:就诊 3:查看排队 4:不再排队,余下依次就诊 5:下班 请选择: ";
cin>>sel;
switch(sel)
{case 1:cout<<">>输入病历号:";
do
{cin>>no;
find=0;
p=qu->front;
while(p!=NULL&&!find)
{ if(p->data==no)
find=1;
else
p=p->next;
}
if(find)
cout<<">>输入的病历号重复,重新输入:";
}while(find==1);
p=new QNode; //创建结点
p->data=no;
p->next=NULL;
if(qu->rear==NULL) //第一个病人排队
{qu->front=qu->rear=p;
}
else
{qu->rear->next=p;
qu->rear=p; //将*p结点入队
}
break;
case 2:if(qu->front==NULL) //队空
cout<<">>没有排队的病人!\n";
else //队不空
{p=qu->front;
cout<<"病人"<<p->data<<"就诊"<<endl;
if(qu->rear==p) //只有一个病人排队的情况
{qu->front=qu->rear=NULL;
}
else
qu->front=p->next;
delete p;
}
break;
case 3:if(qu->front==NULL) //队空
cout<<">>没有排队的病人!\n";
else //队不空
{p=qu->front;
cout<<">>排队病人:";
while(p!=NULL)
{cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
}
break;
case 4:if(qu->front==NULL) //队空
cout<<">>没有排队的病人!\n";
else //队不空
{p=qu->front;
cout<<">>病人按以下顺序就诊:";
while(p!=NULL)
{cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
}
flag=0; //退出
break;
case 5:if(qu->front!=NULL) //队不空
cout<<">>请排队的病人明天再就医!\n";
flag=0; //退出
break;
}
}
}
void main()
{SeeDoctor();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -