1 数据机构课程设计选题名称 : 约瑟夫生者死者游戏系(院) : 信息工程系专业: 信息管理与信息系统班级: 1430602 姓名: 程宜兴学号: 201430060209 指导教师 :童怀水2016 年 4 月 9 日2 目录1、需求分析 .................................. 32、系统功能 .................................. 43、系统设计 .................................. 54、程序具体运行结果 ................ 105、总结 ........................................ 123 1、需求分析1.1 课程设计目的课程设计目的是为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。通过实践让学生理论和实际操作相结合,更好的理解书面知识, 并在巩固的基础上融会所学认识。1.2 课程设计要求约瑟夫生死游戏: 30 个人围成一个圈由第一个人数起,依次报数,数到第九个人,便把他剔除,然后再从他的下一个人数起,数到第九个人,再将他剔除剩下15 个乘客为止,问那些位置是被扔下大海的位置。我们的设计目标是可以输入任意的位置和剩下的乘客。1.3 课程设计目标与总体方案实验设计的目标是运用循环链表来解决Josephu 环问题,其中运用了许多链表中的基本操作使改程序能不只解决一个Josephu 的简单链表, 其中的 Josephu 函数则是用于, 运用 C++程序编写程序,实现队列的建立、插入和删除基本功能,在程序设计成功的基础上,进一步深化理解队列的作用和实现原理。4 2、系统的功能2.1 系统功能说明2. 2 系统功能解析(1)构建约瑟夫链表:使整个游戏在链表中运行,使得结点在删除时不需要移动大量的结点; (2)确定n 的值:进而使链具化体,从而可以构建一个具体的链表 ; (3)更新链表:对剔除结点后的链表进行重新连接,有构成了一个新的链表,使得循环继续进行; (4)输入:输入n 的值进行链表具体化,输入间隔值m,使得间隔被确定,程序得以有效正确的进行;(5)输出:输出要剔除的结点的数值; 约瑟夫生死游戏构建链表确定 n 值更新链表输入输出5 3、系统的设计3.1 josphu 链表的实现Josphu 链表——链式表示和实现约瑟夫(Josephu)问题:已知 N 个人围坐在一张圆桌周围(不妨以1,2,,, , N 对每一个人依次编号) ,现在先从序号为K 的人开始报数,数到m 的那个人出列 ,他的下一个人又从1 开始数...