数据结构课程设计(C++)舞池配对报告 下载本文

内容发布更新时间 : 2025/2/9 4:50:34星期一 下面是文章的全部内容请认真阅读。

数据结构课程设计报告

课程名称:数据结构与算法课程设计

指导老师: 李**

班级: 网络111班

学号: 2011083123

姓名: ***

1

题目:舞伴问题

1、问题描述

问题描述:一班有m个女生、n个男生(m不等于n), 举办一场舞会。男女生分别编号坐在舞池两边的椅子上,每曲开始时, 依次从男生和女生中各出一人配对跳舞, 本曲没成功配对者坐着等待下一曲找舞伴,设计一个程序模拟舞伴配对过程。

基本要求:输入男、女学生的姓名、性别,由程序自动为男女生编号,可以顺序编号,也可以随机编号,输出每曲配对情况(包括男、女生的姓名、性别和编号)。原始数据和结果数据要保存到文件中。

提高要求:计算出任意一位男生(编号为X)和任意一位女生(编号为Y), 在第K曲配对跳舞的情况。 2.需求分析

软件的基本功能:程序可以从文件里读取学生、歌曲信息,亦可从键盘输入相应的信息。该程序能自动为男女生及舞曲编号(顺序或随机),用队列完成男女生在舞曲中的配对。能输出每首舞曲的男女配对情况(包括男、女生的姓名、性别和编号),可以查询第K支舞曲的配对情况,能够查询任意一位男生(编号为X)和任意一位女生(编号为Y)在第K曲配对跳舞的情况。将原始数据及配对结果保存到文件中,能够对文件为空、只有男生或只有女生、输入错误等异常情况进行相应处理。

输入/输出形式:用户可以通过键盘,根据菜单提示输入/输出。 输入形式:

①正确的歌曲信息、学生信息。 ②含有简单错误的歌曲、学生信息。

输出形式:

①对于正确的歌曲信息、学生信息,可以输出男女生配情况,也可以输出男女生信息及歌曲信息。

②对于含有简单错误的歌曲信息和学生信息,程序将自动输出错误提示。

测试数据要求:用户可选择三组测试数据,分别为男生多于女生、女生多于男生、男女生人数相,还可以设置某些空列表(如男生队列为空)。 3.概要设计

(1)抽象数据类型:

根据题目的要求,考虑用队列类型比较适合。

2

ADT Queue Data

队列中的元素具有相同类型及先进先出特性,相邻元素具有前驱和后继关系 Operation InitQueue

前置条件:队列不存在

输入:无

功能:初始化队列 输出:无

后置条件:构造一个空队列

~InitQueue

前置条件:队列存在 输入:无

功能:销毁队列 输出:无

后置条件:释放队列所占用的存储空间

EnQueue

前置条件:队列已存在

输入:元素值x

功能:入队操作,在队尾插入一个元素x 输出:如果插入不成功,抛出异常

后置条件:如果插入成功,队尾增加了一个元素 Dequeue

前置条件:队列已存在 输入:无

功能:出队操作,删除队头元素

输出:如果删除成功,返回被删元素值,否则,抛出异常 后置条件:如果删除成功,队头减少了一个元素

3