数据结构课程设计舞会来宾相关统计问题文档格式.docx
- 文档编号:19755364
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:12
- 大小:210.08KB
数据结构课程设计舞会来宾相关统计问题文档格式.docx
《数据结构课程设计舞会来宾相关统计问题文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计舞会来宾相关统计问题文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
boolput_next(Node*);
//置节点的前驱节点域
boolput_prior(Node*);
//置结点的后继结点域
Node*constget_next()const;
//取结点的前驱结点域
Node*constget_prior()const;
//取结点的后继结点域
private:
Node*next;
Node*prior;
intminute;
intsecond;
intnum;
};
classQueue
{
public:
Queue();
//堆栈类的构造函数
intget_length(void);
//取堆栈的长度
boolpush(int,int,int);
//数据压栈
boolpop(int&
int&
//数据出栈
voidprint(void);
intconstseach(int);
//搜索堆栈数据
protected:
Nodebase;
//根节点
Node*top;
//顶节点
intlength;
};
#endif
———————————hanshu1.cpp——————————
iostream>
#include"
Hwuban.h"
usingnamespacestd;
Node:
:
Node()
{
minute=NULL;
second=NULL;
num=0;
next=NULL;
prior=NULL;
}
Node(intx,inty,intz,Node*p)
minute=x;
second=y;
num=z;
prior=p;
voidconstNode:
get_data(int&
x,int&
y,int&
z)
x=minute;
y=second;
z=num;
}
voidNode:
put_data(intx,inty,intz)
minute=x;
second=y;
boolNode:
put_next(Node*n)
next=n;
returnTURE;
put_prior(Node*p)
Node*constNode:
get_next()const
returnnext;
get_prior()const
returnprior;
——————————hanshu2.cpp———————————
Queue:
Queue():
base()//构造函数,数据初始化
length=0;
top=&
base;
intQueue:
get_length(void)//取长度
if(length<
0)
length=0;
returnlength;
boolQueue:
push(intminute,intsecond,intnum)//数据压栈
if(top!
=NULL)
{
length++;
Node*temp=newNode(minute,second,num,top);
top->
put_next(temp);
top=temp;
}
else
returnFAULT;
}
pop(int&
minute,int&
second,int&
num)
if(base.get_next()!
=NULL)
length--;
Node*temp=base.get_next();
temp->
get_data(minute,second,num);
if(temp->
get_next()!
{
Node*temp1=temp->
get_next();
temp1->
put_prior(&
base);
base.put_next(temp1);
}
else
top=&
base.put_next(NULL);
deletetemp;
}else
returnFAULT;
intconstQueue:
seach(intnum)//搜索堆栈数据
Node*temp;
intx,y,z;
temp=&
while(temp!
get_data(x,y,z);
if(x==num)return1;
temp=temp->
return0;
voidQueue:
print()//打印堆栈
intx,y,z,n=1;
temp=base.get_next();
if(temp==NULL)
cout<
<
"
数据为空"
endl;
if(y==1)
cout<
n<
第"
x<
号人士性别:
男跳舞次数:
z<
elsecout<
女跳舞次数:
temp=temp->
n++;
—————————Mainwuban.cpp——————————
process.h>
hanshu1.cpp"
hanshu2.cpp"
voidring_over(Queue&
Queue&
main()
intsex,n=0,man_num=0,woman_num=0,number=0,degree[50][50]={0},time=0,lun;
Queueman,buffer_man,woman,buffer_woman;
do
system("
cls"
do
cout<
请输入"
n+1<
号人物性别(1:
男士2:
女士0:
输入完毕)(总数不得超过100)"
cin>
>
sex;
while(sex<
0||sex>
2);
if(sex==1)
man.push(n+1,sex,NULL);
man_num++;
if(sex==2)
woman.push(n+1,sex,NULL);
woman_num++;
if(sex==0)
输入结束,共有"
woman_num+man_num<
名人士参与舞会"
打印男士信息"
man.print();
打印女士信息"
woman.print();
pause"
break;
while(sex>
=0&
&
sex<
=2);
system("
do{cout<
请输入舞会轮数:
lun;
while(lun<
0);
while(time<
lun)
for(;
;
)
if(woman.get_length()==0)
ring_over(man,woman,buffer_man,buffer_woman);
time++;
break;
elseif(man.pop(man_num,sex,number)==0)
{
ring_over(man,woman,buffer_man,buffer_woman);
time++;
buffer_man.push(man_num,sex,number+1);
if(woman.pop(woman_num,sex,number))
buffer_woman.push(woman_num,sex,number+1);
degree[man_num][woman_num]++;
第"
lun<
舞会结束"
打印每人的跳舞总数:
do{
请输入要查询的男士号码"
man_num;
}while(man.seach(man_num)==0);
请输入要查询的女士号码"
woman_num;
}while(woman.seach(woman_num)==0);
第"
man_num<
号男士"
和第"
woman_num<
号女士共跳了"
degree[man_num][woman_num]<
次舞"
man,Queue&
woman,Queue&
buffer_man,Queue&
buffer_woman)
intn,sex,number;
while(buffer_woman.pop(n,sex,number))
woman.push(n,sex,number);
while(buffer_man.pop(n,sex,number))
man.push(n,sex,number);
三、调试运行结果:
Step1:
输入来宾性别信息;
Step2:
统计输出来宾信息;
Step3:
输入第3轮舞会结束;
Step4:
1.统计输出当第3轮舞会结束每个人跳舞总次数;
2.查询5号男士与8号女士合跳的次数。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 舞会 来宾 相关 统计 问题