1舞伴配對系统实训报告
舞伴配对系统
本题目设计目的是训练本人的基本编程能力,了解数据结构C++实现系统的开发流程,掌握数据结构和熟悉C++语言的面向对象各种基本操作。本程序中涉及结构体、单链表、类等方面的知识。通过本程序的训练,使本人能对C++语言的类操作有一个更深刻的了解,为进一步开发出高质量的有关数据结构方面系统打下坚实的基础。
1、问题定义
【内容与要求】
假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。要求写程序模拟上述舞伴配对问题。对于此问题,可使用队列这种数据结构实现。
在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成系统设计和系统实现的任务。
2、系统设计
2.1 总体设计
采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。
本系统由如下功能模块组成
功能图:
配对流程图
2.2 详细设计
2.2.1数据
舞伴配对类体class peoples将用于存基本信息。
//定义类peoples
class peoples
{
public:
peoples();
void shuru(char *na,char *s);//输入函数
void sf(); //相当于析构函数
void show(); //显示函数
char *fhn(); //获取姓名
char *fhs();
private:
char *name;
char *sex;
};
这样就定义了一个类结构。
2.2.2 主控函数执行流程
//主函数实现
void main()
{
//运行系统程序执行生成标题
system("title ☆舞伴配对系统☆--全建思");
//运行系统程序执行改变界面颜色
system("color B1");
queue man;
queue woman;//把peoples类放入模板,然后创建两个队列
peoples p; //创建对象
int k; //用于输入每次舞会的人数
char t; //用于输入是否继续下一场舞会
static int count_m=0;//男的数量
static int count_w=0;//女的数量
static int count_t=0;//舞会的次数
cout<
cout<
cout<
ofstream inout("舞伴配对.txt",ios::in);//创建文件
if(!inout) //如果创建不成功就返回
{
cout<
return;
}
for(;;) //死循环相当于while(1)
{
cout<
inout<
cout<
cin>>k;
for(int i=0;i
{
peoples p;
char name[12];
char sex[2];
cout<