1舞伴配对系统实训报告Word格式文档下载.docx
- 文档编号:5742613
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:34
- 大小:193KB
1舞伴配对系统实训报告Word格式文档下载.docx
《1舞伴配对系统实训报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《1舞伴配对系统实训报告Word格式文档下载.docx(34页珍藏版)》请在冰点文库上搜索。
voidshuru(char*na,char*s);
//输入函数
voidsf();
//相当于析构函数
voidshow();
//显示函数
char*fhn();
//获取姓名
char*fhs();
private:
char*name;
char*sex;
};
这样就定义了一个类结构。
2.2.2主控函数执行流程
//主函数实现
voidmain()
{
//运行系统程序执行生成标题
system("
title☆舞伴配对系统☆--全建思"
);
//运行系统程序执行改变界面颜色
colorB1"
queue<
peoples>
man;
woman;
//把peoples类放入模板,然后创建两个队列
peoplesp;
//创建对象
intk;
//用于输入每次舞会的人数
chart;
//用于输入是否继续下一场舞会
staticintcount_m=0;
//男的数量
staticintcount_w=0;
//女的数量
staticintcount_t=0;
//舞会的次数
cout<
<
"
\t\t******************************************"
endl;
\t\t★★★★★欢迎使用舞伴配对系统★★★★★★"
ofstreaminout("
舞伴配对.txt"
ios:
:
in);
//创建文件
if(!
inout)//如果创建不成功就返回
{
Cannotopenthefile"
return;
}
for(;
;
)//死循环相当于while
(1)
\t\t第"
++count_t<
场舞会"
inout<
count_t<
场舞会配对记录:
//写入文件;
\t\t请输入人数:
cin>
>
k;
for(inti=0;
i<
i++)
charname[12];
charsex[2];
\t\t请输入姓名:
name;
\t\t请输入性别(男(m)女(w)):
while
(1)
{
sex;
if(strcmp(sex,"
m"
)==0||strcmp(sex,"
w"
)==0)//比较是否一样
break;
else
\t\t性别错误,请重新输入:
}
p.shuru(name,sex);
)==0)
man.push(p);
//进队列
count_m++;
//男的数量+1
elseif(strcmp(sex,"
)==0)//女的同上
woman.push(p);
count_w++;
if(count_m>
count_w)//当男的大于女的的时候
count_w;
第"
i+1<
组"
"
man.pop(p);
//出队列
p.show();
//显示
p.fhn();
//写入文件;
inout<
p.fhs();
p.sf();
//析构
和"
woman.pop(p);
'
\n'
\n"
\t\t男队有剩余"
剩余数:
count_m-count_w<
count_m=count_m-count_w;
//男的数目变成剩下的。
count_w=0;
//女的数目变为0,由于都出队了
\t\t剩余人:
for(i=0;
count_m;
i++)//先出队--显示--入队。
同最后面的一样
//当男的小于女的的时候和当男的大于女的的时候方法是一样的,只是男和女的区别
elseif(count_m<
count_w)
\t\t女队有剩余"
count_w-count_m<
count_w=count_w-count_m;
count_m=0;
//当男女数量相等同上
elseif(count_w==count_m)
场舞会结束是否继续下一场输入?
\n\t\t(如果键入n则退出系统)(y/n)"
t;
cls"
//清屏函数;
if(t=='
y'
)
if(count_w>
0)
\t\t上次剩余女士人数:
count_w<
\t\t分别是:
//显示剩余的人的时候,用先出队,显示,再入队,由于这些人第二轮还要用
elseif(count_m>
\t\t上次剩余男士人数:
count_m<
\t\t\t★谢谢使用★!
inout.close();
man.~queue();
woman.~queue();
}
本舞伴配对系统执行先创建文件,再输入相关数据,接下来进行比较,然后执行显示主出来和进入主循环操作,进行判断。
本舞伴配对系统用到了类模板,分别是:
2.2.3
template<
classT>
classqueue
2.2.4
queue<
T>
queue()
2.2.5
//向队列尾插入结点函数
voidqueue<
push(T&
x)
2.2.6
//从队列头中取出一结点
//布尔型,只有一个字节,取值false和true,是0和1的区别
boolqueue<
pop(T&
2.2.7
//清空队列
clearQue()
2.2.8函数功能描述
//定义类模板
queue();
~queue()
clearQue();
voidpush(T&
//向队列尾插入结点
boolpop(T&
//从队列头中取出一结点
voidclearQue();
//清空队列
protected:
intqueSize;
//队列长度
queueNode<
*head;
//定义头结点
*tail;
//定义尾结点
//定义类模板中成员函数
//构造函数,初始化队列
queSize=0;
head=NULL;
tail=NULL;
*tp;
tp=newqueueNode<
//定义/创建一个结点
tp)//如果创建一个结点错误,就返回
tp->
nodeData=x;
//把x值送给结点
//假如队列有数据(也就是不是空队列),那么从对尾插入
if(tail)
next=NULL;
tail->
next=tp;
tail=tp;
//假如队列无数据(也就是空队列),那么这个结点既是对首结点也是对尾结点
head=tp;
queSize++;
if(head)
//由于出队是在对首出队,所以把对首结点给定义的结点tp,再head=head->
next;
x=head->
nodeData;
tp=head;
head=head->
//head的后置结点给head
if(head==NULL)//假如对首结点为空了,那么对尾也将是空的,也就是队列已被清空了
deletetp;
queSize--;
returntrue;
returnfalse;
Ttp;
while(pop(tp));
head=tail=NULL;
3、系统实现
3.1编码
3.1.1程序预处理
包括加载头文件,定义类、常量和变量,并对它们进行初始化工作。
#include<
iostream.h>
string.h>
process.h>
//清屏函数的头文件
fstream.h>
//输入输出流头文件
//声明一个类模板
//-------------------------------------------------------------
structqueueNode//链式队列的结构体
TnodeData;
queueNode*next;
peoples:
peoples()//构造函数
//初始化
name=newchar[8];
name=NULL;
sex=newchar[2];
sex=NULL;
3.1.2主函数
主函数主要实现了对整个程序的运行控制,以及相关功能模块的调用。
3.1.3主菜单界面
主菜单界面用到了系统程序执行改变颜色:
同时主菜单界面用到了系统程序执行显示标题
system("
:
3.1.4定义peoples成员函数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 舞伴 配对 系统 报告