课程设计说明书 课题名称: 猴子选大王 学生学号: 专业班级: 计算机科学与技术 学生姓名: 学生成绩: 指导教师: 课题工作时间: 至 - 2 一、课程设计的任务的基本要求: 1 、设计部分 1、问题描述:一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m 个)按照 1-m的顺序围坐一圈,从第 1 开始数,每数到第 N 个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。 2、基本要求:输入数据:输入 m,n 为整数 3、输出形式:中文提示按照 m 个猴子,数 n 个数的方法,输出为大王的猴子是几号,建立一个函数来实现此功能。 4、实现提示:使用循环单链表实现。 2 、课程设计部分 1、学生应提交的资料:纸质《课程设计说明书》1 份;源程序 1 份。 2、课程设计报告的内容附在《课程设计说明书》后,内容包括: 对自己此次课程设计进行概述(包括该次课程设计自己所作的题目,所用的编程工具等); 每个课程设计题目完成总结(包括问题描述;需求分析(基本要求)、设计(概要设计(所用函数及说明)、所用数据结构及存储结构、算法思想、关键函数的流程图)、实现(源程序清单及注释);调试分析、运行结果分析); 指导教师签字: 年 月 日 - 3 三、成绩评定: 指导教师评语: 指导教师签字: 2 0 1 0 年 月 日 项 目 评价 项 目 评价 调查论证 工作量、工作态度 实践能力 分析、解决问题能力 质 量 创 新 得 分 - 4 摘 要 本次程序程序设计的主要目的是解决变相的“约瑟夫环”问题---猴子选大王。从而使复杂的选举工作变得明朗化。 全程序以数据结构(C语言)中的循环单链表为主要的设计支柱,利用了C语言简洁紧凑、灵活方便,语法限制不太严格,程序设计自由度大,生成目标代码质量高,程序执行效率高等方面的优点。循环单链表是单链表的另一种形式,其结构特点是链表中最后一个结点的指针域不再是结束标记,而是指向整个链表的第一个结点,从而使链表形成一个环,基于这样的特点,它适合处理具有环形结构的数据元素序列。 在程序代码的编写中,运用了结构体类型(struct Node),动态申请内存空间函数malloc(),释放动态申请内存空间函数 free()等类型,同时也具有多种循环、条件语句控制程序流向,如:嵌套 if else语句,多重 for循环语句,还有链表中结点指针(p->next),从而使程序完全结构化。 这样...