内容发布更新时间 : 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