1、1 课程设计报告 课程名称:课程名称:数据结构课程设计 设计题目设计题目: 学生搭配问题 院院 系:系: 计算机工程学院 专专 业:业: 组组 别:别: 48 学生姓名学生姓名: : 学学 号号: 起止日期起止日期: 2011 年 1 月 26 日 2012 年 1 月 3 日 指导教师指导教师: 2 目录目录 1.需求分析 . 3 11 题目. 3 12 任务及要求 3 13 程序设计思想. 3 14 软硬件运行环境及开发工具 3 2.概要设计 . 3 21 功能模块. 3 22 流程图 . 4 3.详细设计 . 4 4.调试与操作说明. 6 5.课程设计总结与体会 7 6.致谢 8 7.参
2、考文献 . 8 3 1.需求分析 11 题目 一班有 m 个女生,有 n 个男生(m 不等于 n),现要开一个舞会. 男女生分别编号坐在舞池的 两边的椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞, 本曲没成功配对者坐着 等待下一曲找舞伴. 12 任务及要求 请设计一系统模拟动态地显示出上述过程,要求如下: 1) 输出每曲配对情况 2) 计算出任何一个男生(编号为 X)和任意女生(编号为 Y),在第 K 曲配对跳舞的情 况.至少求出 K 的两个值。 13 程序设计思想 循环队列是在队列的顺序存储结构中,除了用乙组地址连续的存储单元依次存放从队列 头到队列尾的元素外,尚需附设两个指针 f
3、ront 和 rear 分别指示队列头元素和队列尾元素的位 置。循环队列(两个) ,将男生、女生两组人分别存放,以实现循环配对输出。循环队列的入 队,出队,判队满,判队空。 (1) 要模拟动态地显示出现题目中所要求的循环,我们要先建立两个循环队列 queue 和 queue2。 (2) 将男生、女生两组人分别存入这两个队列。以实现他们的循环配对输出,这是循 环队列固有的特性。 (3) 利用循环队列的特性, 将男女生分别进行入队列和出队列操作, 且实现搭配输出。 (4) 循环队列的长度分别设为男女生的个数即可。 (5) 在计算机终端输出的结果是:根据要求输出男生女生搭配情况。 14 软硬件运行环
4、境及开发工具 硬件开发环境:Microsoft Window XP Professional Pentium(R) Dual-Core CPU E6700 软件开发环境:软件开发工具:Visual C+ 6.0。 2.概要设计 21 功能模块 主函数 数据输入 每 曲 曲 配 对 K 配曲 编号 输出 Cingb() fine() Searchp() 4 22 流程图 3.详细设计 开始 Setup() 输入女生和男生的 人数 m,n,k 和歌曲数 k for(i=1;inext=NULL; (2)关键算法之二:入队函数 void Inqueue(Linkq p=(queue)malloc(sizeof (date); p-number=number; p-next=NULL; o.rear-next=p; o.rear=p; (3)关键算法之三:出队函数 void Outqueu