1、 课课 程程 设设 计计 报报 告告 课程设计名称:数据结构课程设计数据结构课程设计 课程设计题目:约瑟夫环约瑟夫环 院(系):电信学院 专 业:计算机应用科学 I 目目 录录 1 课程设计介绍课程设计介绍 .1 1.1 课程设计内容 .1 1.2 课程设计要求 .1 2 课程设计原理课程设计原理 .2 2.1 课设题目粗略分析 .2 2.2 原理图介绍 .3 2.2.1 功能模块图 3 2.2.2 流程图分析 4 3 数据结构分析数据结构分析 .7 3.1 存储结构 .7 3.2 算法描述 .7 4 调试与分析调试与分析 .9 4.1 调试过程 .9 4.2 程序执行过程 .10 参考文献参
2、考文献 .15 附附 录(关键部分程序清单)录(关键部分程序清单) .16 1 1 课程设计介绍 1.1 课程设计内容课程设计内容 设计程序,系统主要功能如下: 编号为 1,2,n的 n个人按顺时针方向围坐一圈,每人持有一个密码(正 整数) 。开始任选一个正整数作为报数上限值 m,从第一个人开始按顺时针方 向自 1 开始顺序报数,报到 m时停止报数。报 m 的人出列,将他的密码作为 新的 m值,从他在顺时针方向上的下一个人开始重新从 1 报数,如此下去, 直至所有人全部出列为止。试设计一个程序求出出列顺序。 1.2 课程设计要求课程设计要求 1.参考相应的资料,独立完成课程设计任务书。 2.交
3、规范课程设计报告和软件代码。 2 2 课程设计原理 2.1 课设题目粗略分析课设题目粗略分析 根据课设题目要求,拟将整体程序分为四大模块。此四个模块相互独立,没 有嵌套调用的情况,以下是四个模块的大体分析: 1. main()函数是主要的控制函数,main()函数主要负责存储用户输入的基本 数据以及调用其他子函数模块,在 main()函数中还存在一个比较小的函数模块 exit(0),该函数模块负责终止程序运行, 另外还有两个子函数模块, 分别是 random() 函数模块与 solid()函数模块,这两个函数模块分别各自负责自己所要处理的数据 以及输出功能; 2. 在程序运行之后,在程序主界面
4、出现之后,当用户自己输入了自己想要 实现的功能模块所在的数字选项后,立即进入主函数模块之中,当用户输入了所 有的必要数据之后, 按照用户选定的数字选项所要实现的功能调用相应的子函数; 3. 如果用户选择的是系统随机产生密码的选项,则 main()函数就调用 random()子函数模块,在 random()函数模块中,将会随机产生各个参与者的密码, 并且同时建立链表来存储、处理这些数据,在完成了所有的操作之后,random() 函数就将输出结果, 反之, 如果用户选择的是用户自己输入密码的选项, 则 main() 函数就调用 solid()函数模块,在 solid()函数模块中,将会提醒用户自己一个个的 输入每个参与者的密码,与此同时建立链表来存储、处理这些数据,在完成了所 有的操作之后,solid()函数就将输出结果。 3 2.2 原理图介绍原理图介绍 2.2.1 功能模块图功能模块图 图图 2.1 功能模块图功能模块图 用户输入数据 根据 程序 启动 时用 户所 选的 数字选项, main()函 数来 调用 相应 的子 函数模块 random() 函数 模块