数据结构--猴子选大王

上传人:mg****85 文档编号:35897789 上传时间:2018-03-22 格式:DOC 页数:16 大小:88KB
返回 下载 相关 举报
数据结构--猴子选大王_第1页
第1页 / 共16页
数据结构--猴子选大王_第2页
第2页 / 共16页
数据结构--猴子选大王_第3页
第3页 / 共16页
数据结构--猴子选大王_第4页
第4页 / 共16页
数据结构--猴子选大王_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《数据结构--猴子选大王》由会员分享,可在线阅读,更多相关《数据结构--猴子选大王(16页珍藏版)》请在金锄头文库上搜索。

1、课程设计说明书课程设计说明书课题名称:课题名称: 猴子选大王猴子选大王 学生学号:学生学号: 专业班级:专业班级: 计算机科学与技术计算机科学与技术 学生姓名:学生姓名: 学生成绩:学生成绩: 指导教师:指导教师: 课题工作时间:课题工作时间: 至至 - 2一、课程设计的任务的基本要求:一、课程设计的任务的基本要求:1、设计部分、设计部分1、问题描述:一堆猴子都有编号,编号是 1,2,3 .m ,这群猴子(m 个)按照 1-m的顺序围坐一圈,从第 1 开始数,每数到第 N 个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。2、基本要求:输入数据:输入 m,n 为

2、整数3、输出形式:中文提示按照 m 个猴子,数 n 个数的方法,输出为大王的猴子是几号,建立一个函数来实现此功能。4、实现提示:使用循环单链表实现。2、课程设计部分、课程设计部分1、学生应提交的资料:纸质课程设计说明书1 份;源程序 1 份。2、课程设计报告的内容附在课程设计说明书后,内容包括:对自己此次课程设计进行概述(包括该次课程设计自己所作的题目,所用的编程工具等) ;每个课程设计题目完成总结(包括问题描述;需求分析(基本要求) 、设计(概要设计(所用函数及说明) 、所用数据结构及存储结构、算法思想、关键函数的流程图) 、实现(源程序清单及注释) ;调试分析、运行结果分析) ;指导教师签

3、字:指导教师签字: 年年 月月 日日 - 3三、成绩评定:三、成绩评定:指导教师评语:指导教师评语:指导教师签字:指导教师签字:2010 年年 月月 日日 项项 目目评价评价项项 目目评价评价 调查论证调查论证 实践能力实践能力工作量、工工作量、工 作态度作态度 质质 量量分析、解分析、解 决问题能决问题能 力力创创 新新得得 分分- 4摘 要本次程序程序设计的主要目的是解决变相的“约瑟夫环”问题-猴子选大王。从而使复杂的选举工作变得明朗化。全程序以数据结构(C 语言)中的循环单链表为主要的设计支柱,利用了 C 语言简洁紧凑、灵活方便,语法限制不太严格,程序设计自由度大,生成目标代码质量高,程

4、序执行效率高等方面的优点。循环单链表是单链表的另一种形式,其结构特点是链表中最后一个结点的指针域不再是结束标记,而是指向整个链表的第一个结点,从而使链表形成一个环,基于这样的特点,它适合处理具有环形结构的数据元素序列。在程序代码的编写中,运用了结构体类型(struct Node) ,动态申请内存空间函数 malloc() ,释放动态申请内存空间函数 free()等类型,同时也具有多种循环、条件语句控制程序流向,如:嵌套 if else 语句,多重 for 循环语句,还有链表中结点指针(p-next) ,从而使程序完全结构化。 这样编写出的完整程序代码可以实现“猴子选大王”功能,输入猴子的数目

5、m,循环数 n,对 m 个猴子进行编号,通过嵌套 if else 语句,for 语句,一遍一遍的循环,判断,删除,直到只剩下最后一个猴子,即大王。这样就可以实现所需的基本功能了。关键词:数据结构;循环;单链表- 5AbstractThe main purpose of the program design process to solve the form of “Joseph Ring“ in the election - monkey king. So complex it became clear the election. All procedures for data structu

6、res (C language) in single-cycle design of the main pillars of the list, using the C language simple and compact, flexible and convenient, the syntax is not strictly limited, program design flexibility to produce high quality object code, program execution the advantages of higher efficiency. Single

7、-loop single-linked list is another form of list, its structural features is the last node list pointer field is no longer the end of the tag, but point to the list the first node, so that form a ring list, based on Such features, it has a ring structure for the data processing sequence of elements.

8、 The preparation of the program code, the use of a structure type (struct Node), dynamic application memory function malloc (), the release of dynamic memory functions for free () and other types, but also with a variety of loop, conditional statements control program flow such as: nested if else st

9、atements, multiple for loop, there is a linked list node pointer (p- next), to make the program fully structured. Write such a code can achieve a complete “Monkey King selected“ feature, enter the number of monkeys m, cycles n, for number of monkeys on the m-by nested if else statements, for stateme

10、nts, loop over and over again, judge, removed until there are only a monkey, or king. This can achieve the required basic function. Keywords: data structures; circulation; single linked list - 6第一章 课程设计目的与要求1.11.1 课程设计目的课程设计目的1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。 2.初步掌握软件开发过程的问题分析、系统设计、

11、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风1.21.2 课程设计的实验环境课程设计的实验环境课程设计使用 C 语言工具,C 语言作为一种最基本简单的程序设计语言,C 语言发展迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如 DBASE 都是由 C 语言编写的。用 C 语言加上一些汇编语言子程序,就更能显示 C 语言的优势了,像 PC- DOS 、WORDSTAR 等就是

12、用这种方法编写的。常用的 C 语言 IDE(集成开发环境)有 Microsoft Visual C+,Dev-C+,Code:Blocks,Borland C+,Watcom C+ ,Borland C+ Builder,GNU DJGPP C+ ,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free, win-tc 等等对于一个初学者,Microsoft Visual C+是一个比较好的软件。界面友好,功能强大,调试也很方便- 71.31.3 课程设计的要求课程设计的要求1、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设

13、计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。 2、.设计的题目要求达到一定工作量(300 行以上代码) ,并具有一定的深度和难度。3、程序设计语言推荐使用 C/C+,程序书写规范,源程序需加必要的注释;4、每位同学需提交可独立运行的程序;5 、每位同学需独立提交设计报告书(每人一份) ,要求编排格式统一、规范、内容充实,不少于 10 页(代码不算) ;6、课程设计实践作为培养学生动手能力的一种手段,单独考核。- 8第二章 课程设计内容2.12

14、.1 问题描述问题描述1、一堆猴子都有编号,编号是 1,2,3 .m ,这群猴子(m 个)按照 1-m 的顺序围坐一圈,从第 1 开始数,每数到第 N 个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。2、基本要求:输入数据:输入 m,n 为整数3、输出形式:中文提示按照 m 个猴子,数 n 个数的方法,输出为大王的猴子是几号,建立一个函数来实现此功能。2.22.2 需求分析需求分析一群猴子(m 个)按照编号的顺序围坐一圈,从第 1 开始数,每数到第 N 个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。 程序规定:(1)在程序中

15、输入猴子数 m、要报的数 n (2),对猴子进行编号 (3)利用循环链表,依次序删除猴子,找出最后一个猴子,即为大王,输出这只猴子的编号2.32.3 具体设计和实现具体设计和实现- 91.对每一个猴子进行编号r=q=(listnode *)malloc(sizeof(listnode); for(i=1;idata=i; q-next=p; q=p; p-data=n; p-next=r; r=p; 2.每数到 n 便删除该猴子,当循环单链表只剩一个时,输出该编号for(i=1;inext; q=p-next; p-next=q-next; if(i % 10=0) free(q); printf(“n“); r=p;return r; void outring(int n,linklist r) int i; listnode *p; - 10p=r; printf(“猴子大王:“); printf(“%4dn“,p-data);3.主函数int main() linklist r; int n,k; linklist initring(int n,linkl

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号