📄 学生搭配.cpp
字号:
// 学生搭配.cpp : Defines the entry point for the console application
//
#include "stdafx.h"
#include "iostream.h"
#include "string.h"
#include "stdlib.h"
#include "Conio.h"
#include "time.h"
#include "malloc.h"
#define N 65535
#define OVERFOLLOW 1
#define OVERFLOW OVERFOLLOW
#define TRUE 1
#define FAULSE 0
#define OK 1
class DT
{
public:
int g()
{ return girlnum; }
int b()
{ return boynum; }
int m()
{ return musicnum;}
void numinit()
{
cout<<"输入女生数量";
cin>>girlnum;
cout<<"输入男生数量";
cin>>boynum;
cout<<"输入舞曲数量";
cin>>musicnum;
}
private:
int girlnum,boynum,musicnum;
}A;
class DATA{
public:
void find(int girln,int boy)
{
for(int ff=0;ff<c;ff++)
{ if(x[ff]==girln && y[ff]==boy)
cout<<"编号为"<<girln<<"的女生在第"<<z[ff]<<"曲与编号为"<<y[ff]<<"的男生跳舞。"<<endl;}
};
void input(int x1,int x2,int x3,int i)
{
x[i]=x1;y[i]=x2;z[i]=x3;c=i;
};
private:
int x[N],y[N],z[N],c;
}B;
int bridgegirl,bridgeboy,bridgemusic;
typedef struct QNode{
int data;
struct QNode *next;
}QNode,* QueuePtr;
typedef struct{
QueuePtr front;
QueuePtr rear;
}LinkQueue;
LinkQueue girl,boy,music;
init(LinkQueue &Q)
{ Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));
if(!Q.front) exit(OVERFOLLOW);
Q.front->data=NULL;
return OK;
}
int EnQueue(LinkQueue &Q,int n)
{
QueuePtr p=(QueuePtr)malloc(sizeof(QNode));
if(!p) exit(OVERFOLLOW);
p->data=n;
p->next=NULL;
Q.rear->next=p;
Q.rear=p;
return OK;
}
int DeQueue(LinkQueue &Q,int &bridge)
{
if(Q.front ==Q.rear) return FAULSE;
QueuePtr p=Q.front->next;
bridge=p->data;
Q.front->next=p->next;
if(Q.rear==p) Q.rear=Q.front;
free(p);
return OK;
}
int ReadQFM(LinkQueue &Q)
{
int temp;
DeQueue(Q,bridgemusic);
temp=bridgemusic;
EnQueue(Q,temp);
return OK;
}
int ReadQFG(LinkQueue &Q)
{
int temp;
DeQueue(Q,bridgegirl);
temp=bridgegirl;
EnQueue(Q,temp);
return OK;
}
int ReadQFB(LinkQueue &Q)
{
int temp;
DeQueue(Q,bridgeboy);
temp=bridgeboy;
EnQueue(Q,temp);
return OK;
}
int main(int argc, char* argv[])
{
int tl;
tl=A.m();
init(girl);
init(boy);
init(music);
A.numinit();
cout<<"初始化队列数据";
for(int con=1;con<=A.g();con++)
{
EnQueue(girl,con);
}
for(con=1;con<=A.b();con++)
{
EnQueue(boy,con);
}
for(con=1;con<=A.m();con++)
{
EnQueue(music,con);
}
int x=A.m();
cout<<"舞会将要举行"<<3*x<<"分钟"<<endl;
int sec=0;
do{
if(rand()<=10000)
{
ReadQFM(music);
}
else
{
ReadQFM(music);
cout<<"在第\t"<<bridgemusic<<" 首舞曲时,";
ReadQFB(boy);
cout<<"第\t"<<bridgeboy<<" 号男生和第\t";
ReadQFG(girl);
cout<<bridgegirl<<" 号女生搭配成功"<<endl;
B.input(bridgegirl,bridgeboy,bridgemusic,sec);
sec ++;
}
x--;
tl--;
}
while(x && tl );
int q1,q2;
cout<<"要查询参赛情况吗?输入女生 男生编号"<<endl;
cin>>q1>>q2;
B.find(q1,q2);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -