编译出错,速度求解!!!

blackzvik 2012-03-20 10:11:29
#include <iostream>
#include <conio.h>
#include <stdlib.h>


using namespace std;
#define OK 1
#define OVERFLOW2 -1
#define ERROR 0
typedef int Status;
typedef int QElemType;
int boynum = 0,girlnum = 0,song_num=0;
class queue
{
public:
int InitQueue(struct SqQueue &,int);// 构造一个空循环队列Q
int EnQueue(struct SqQueue &,int,int);// 入队列,插入元素e为Q的新的队尾元素
int DeQueue(struct SqQueue &,int &,int);// 若队列不空,则删除Q的对头元素,用e返回其值,并返回1/,否则返回0
int bianhao(struct SqQueue &,struct SqQueue &);// 队列初始化及对男女生进行编号
int input(struct SqQueue &,struct SqQueue &);// 输入男女生人数及曲目数
int output(struct SqQueue &,struct SqQueue &);
int All_peidui(struct SqQueue &,struct SqQueue &);// 输出每曲配对情况
int K_peidui(struct SqQueue &,struct SqQueue &);// 对第K曲进行配对,并输出配对情况

};

struct SqQueue
{
QElemType *data;
int front;
int rear;
};
/*typedef struct /* 定义结点元素结构 */

int queue::InitQueue(SqQueue &Q,int num)
{
Q.data = (QElemType *)malloc((num+1)*sizeof(QElemType));
if(!Q.data)exit(OVERFLOW);
Q.front = Q.rear = 0;
return OK;
}

int queue::EnQueue (SqQueue &Q,QElemType e,int num)
// 入队列,插入元素e为Q的新的队尾元素
{
if((Q.rear+1)%(num+1) == Q.front)
return ERROR; //队列满
Q.data[Q.rear] = e;
Q.rear = (Q.rear+1)%(num+1);
return OK;
}

int queue::DeQueue(SqQueue &Q,QElemType &e,int num)
// 若队列不空,则删除Q的对头元素,用e返回其值,并返回OK/,否则返回ERROR
{

if(Q.front==Q.rear)
return ERROR;
e=Q.data[Q.front];
Q.front=(Q.front+1)%(num+1);
return OK;
}

int queue::bianhao(SqQueue &boys,SqQueue &girls)
// 队列初始化及对男女生进行编号
{
int i;
InitQueue(boys,boynum);
for(i=1; i<=boynum; i++)
EnQueue(boys,i,boynum);
InitQueue(girls,girlnum);
for(i=1; i<=girlnum; i++)
EnQueue(girls,i,girlnum);
return OK;
}

int queue::input(SqQueue &boys,SqQueue &girls) // 输入男女生人数及曲目数
{
cout<<"请输入男生人数"<<endl;
cin>>boynum;
cout<<"请输入女生人数"<<endl;
cin>>girlnum;
cout<<"请输入曲目数"<<endl;
cin>>song_num;
return OK;
}

int queue::All_peidui(SqQueue &boys,SqQueue &girls) // 输出每曲配对情况
{
int min,k,j;
bianhao(boys,girls);
min = boynum>girlnum ? girlnum:boynum;
for (int i=1;i <= song_num; ++i)
{
cout<<"第"<<i<<"支舞曲配对情况为"<<endl;
if (min<5) k = min;
else k = 5;
for (j=0;j<k;j++)
cout<<" 男<->女 "<<endl;
for(j=1;j <= min;j++)
{
output(boys,girls);
if (j%5==0) printf("\n");
}
}
return OK;
}

int queue::K_peidui(SqQueue &boys,SqQueue &girls)
// 对第K曲进行配对,并输出配对情况
{
int min,max,t,i,p1,p2,k,a;
bianhao(boys,girls);
do
{
cout<<"\t请输入您想知道的配对情况的曲目编号:"<<endl;
cin>>k;
if(k>song_num)
cout<<"\t所选曲目超出曲目总数!\n"<<endl;
} while (k>song_num);
min = boynum>girlnum ? girlnum:boynum;
max = boynum>girlnum ? boynum:girlnum;
cout<<"第"<<k<<"曲配对情况如下\n"<<endl;
t=min*(k-1)%max;
if(boynum>girlnum)
for (i=1;i<=t;i++)
{
DeQueue(boys,p1,boynum);
EnQueue(boys,p1,boynum);
}
else
for (i=1;i<=t;i++)
{
DeQueue(girls,p2,girlnum);
EnQueue(girls,p2,girlnum);
}
if (min<5) a = min;
else a = 5;
for (i=0;i<a;i++)
cout<<" 男<->女 "<<endl;
for(i=1;i<=min;i++)
{
output(boys,girls);
if (i%5==0) printf("\n");
}// for
return OK;
}

int main()
{
int i;
system("title 学生搭配问题"); //标题
SqQueue boys,girls;
while(1){
cout<<"\n";
cout<<"\t ╔═════════════════════════╗\n"<<endl;
cout<<"\t ║ 学生搭配问题 ║\n"<<endl;
cout<<"\t ║ ║\n"<<endl;
cout<<"\t ║ 1.输入数据 ║\n"<<endl;
cout<<"\t ║ 2.输出每曲配对情况 ║\n"<<endl;
cout<<"\t ║ 3.求出第k曲的情况 ║\n"<<endl;
cout<<"\t ║ 4.退出 ║\n"<<endl;
cout<<"\t ╚═════════════════════════╝\n"<<endl;
cout<<"\t\t 男:%d人 女:%d人 曲目数:%d曲\n"<<boynum<<girlnum<<song_num;
queue a;
cin>>i;
if(i==1)
{
a.input(boys,girls);
system("cls");
//coutinue;
}
else if(i==2)
a.All_peidui(boys,girls);
else if(i==3)
a.K_peidui(boys,girls);
else
exit(0);
system("pause"); //任意键继续
system("cls"); //清屏
}// while
return 1;
}


1>a.obj : error LNK2019: 无法解析的外部符号 "public: int __thiscall queue::output(struct SqQueue &,struct SqQueue &)" (?output@queue@@QAEHAAUSqQueue@@0@Z),该符号在函数 "public: int __thiscall queue::All_peidui(struct SqQueue &,struct SqQueue &)" (?All_peidui@queue@@QAEHAAUSqQueue@@0@Z) 中被引用
1>d:\我的资料库\documents\visual studio 2010\Projects\aa\Debug\aa.exe : fatal error LNK1120: 1 个无法解析的外部命令
就这一个错误,什么意思??
...全文
104 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
relaxisland 2012-03-20
  • 打赏
  • 举报
回复
没实现
链接时候找不到
心死 2012-03-20
  • 打赏
  • 举报
回复
int output(struct SqQueue &,struct SqQueue &);
这个函数都没写,就直接用了?
pengzhixi 2012-03-20
  • 打赏
  • 举报
回复
int output(struct SqQueue &,struct SqQueue &);
这个函数的实现呢

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧