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

📄 学生搭配.cpp

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