#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
class SqQueue;
class node
{
friend class SqQueue;
private:
node *next;
public:
char name;
node(node *ptrnext=NULL);
node(const char& item,node *ptrnext=NULL);
~node(){};
};
node::node(node *ptrnext):next(ptrnext)
{}
node::node(const char& item,node *ptrnext)
{
name=item;
next=ptrnext;
}
class SqQueue
{
private:
node *front;
node *head;//头指针,若队列不为空,指向队列头元素
node *rear;
int count;//尾指针,若队列不为空,指向队列尾元素下一个位置
public:
SqQueue();
~SqQueue(){};
void EnQueue(const char&item);
char DeQueue();
int getcount()const
{
return count;
};
};
SqQueue::SqQueue()
{
front=rear=head=NULL;
count=0;
}////构造一个空队列
void SqQueue::EnQueue(const char &item)
{
node *temp=new node(item,NULL);
if(rear!=NULL)rear->next=temp;
rear=temp;
if(front==NULL){
front=temp;
head=temp;
}
count++;
}
char SqQueue::DeQueue()
{
char e=front->name;
if(front==rear&&front!=NULL)front=head;
else front=front->next;
return e;
}
int scan()
{
int d;
cout<<endl;
cout<<"-------------------------------------"<<endl;
cout<<" 操作菜单"<<endl;
cout<<"1 配对舞者的姓名 "<<endl;
cout<<"2 继续跳舞"<<endl;
cout<<"0 退出"<<endl;
cout<<"-------------------------------------"<<endl;
cout<<endl;
cout<<"请选择编号"<<endl;
cin>>d;
return d;
}
int main(void)
{
SqQueue man,woman;
int flat = 1;
int i =0 ;
cout<<endl;
cout<<"*************************************"<<endl;
cout<<"舞会上舞者的信息"<<endl;
cout<<endl<<endl;
time_t t;
srand(unsigned(time(&t)));
cout<<"输入跳舞男士人数:";
int mnum;
cin>>mnum;
cout<<"按任意键随机生成男士姓名:"<<endl;
getch();
for( i=0;i<mnum;++i)
{
char p=rand()%26+65;
man.EnQueue(p);
cout<<p<<" ";
}
cout<<endl;
cout<<"输入跳舞女士人数:";
int wnum;
cin>>wnum;
cout<<"按任意键随机生成女士姓名:"<<endl;
getch();
for(i=0;i<wnum;++i)
{
char p=rand()%26+65;
woman.EnQueue(p);
cout<<p<<" ";
}
cout<<endl;
cout<<"*************************************"<<endl;
int temp=mnum<wnum?mnum:wnum;
while(flat > 0)
{
switch(scan())
{
case 0: flat = 0;break;
case 1:
{
cout<<"男士 女士:"<<endl;
for( i= 0; i<temp; i++)
{
cout<<man.DeQueue()<<" "
<<woman.DeQueue()<<endl;
}
break;
}
case 2:
{
cout<<"男士 女士:"<<endl;
for( i= 0; i<temp; i++)
{
cout<<man.DeQueue()<<" "
<<woman.DeQueue()<<endl;
}
break;
}
}
}
return 0;
}
zj8855226
- 粉丝: 0
- 资源: 2
最新资源
- 基于c语言的线性链表的实现和应用
- 艾利和iriver Astell&Kern SP3000 V1.20升级固件
- 律师事务所网站建设与管理功能概述
- Python 端口访问邮件提醒工具
- 基于springboot的抗疫物资管理系统
- 基于C语言的二叉树构建及遍历
- 587833617736230KEY_C0091 STM32简易交通灯仿真设计.zip
- 垃圾废物检测19-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 专项资金申报平台需求规范文档解析及关键技术要求
- TMS320F28377原理图
- Docker以及Docker-Compose的安装与卸载
- 艾利和iriver Astell&Kern SP3000 V1.31升级固件
- 基于C语言的图的实现和遍历
- 周勤富恒升职业学校网络安全渗透测试及解决方案第2版.doc
- images(5).zip
- 计算机程序设计员三级(选择题)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈