⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 +

📁 数据结构课程设计
💻
字号:
#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 + -