1、 课 程 设 计 说 明 书课 程 设 计 说 明 书 课程名称:课程名称: 数数 据据 结结 构构 与与 算算 法法 1 任 务 书 题目:通讯录管理系统 设计内容及要求: 1.课程设计任务内容 制作一个简易的通讯录管理系统,根据不同的选项,进行添加、修改、删除、遍历联系人 这四个操作。且对于联系人有“亲人”、“朋友”、“同事”、“其他”四个分组。 2.课程设计要求 用链表实现,并根据联系人姓名排序 开发环境:vc+6.0 实现目标: (1) 熟悉的运用 c 语言程序编写代码; (2) 熟练掌握单链表的各项基本操作; (3) 了解如何定义局部变量和整体变量; (4) 学会上机调试程序,发现问
2、题,并解决; (5) 能够理清整个程序的运行过程并绘画流程图; (6) 学习用文档书写程序说明。 2 目 录 1.引 言 3 2.课题分析 . 6 3.具体设计过程 . 6 3.1 设计思路 7 3.2 程序设计流程图 . 7 3.3.函数实现说明 . 11 4.程序运行结果 . 13 5.结论 18 参 考 文 献 18 附录:源代码 19 3 1.引 言 数据结构在计算机科学界至今没有标准的定义。个人根据各自的理解的不同而有 不同的表述方法: Sartaj Sahni 在他的数据结构、算法与应用一书中称:“数据结构是数据对象, 以及存在于该对象的实例和组成实 例的数据元素之间的各种联系。这
3、些联系可以通过 定义相关的函数来给出。”他将数据对象(data object)定义为“一个数据对象是实例或 值的集合”。Clifford A.Shaffer 在数据结构与算法分析一书中的定义是:“数据结 构是 ADT(抽象数据类型 Abstract Data Type) 的物理实现。” Lobert L.Kruse 在数据结构与程序设计一书中,将一个数据结构的设计过程 分成抽象层、数据结构层和实现层。其中,抽象层是指抽象数据类型层,它讨论数据的 逻辑结构及其运算, 数据结构层和实现层讨论一个数据结构的表示和在计算机内的存储 细节以及运算的实现。数据结构具体指同一类数据元素中,各元素之间的相互关
4、系,包 括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构。 1.1. 重要意义重要意义 一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素 间逻辑关系的描述称为数据的逻辑结构; 数据必须在计算机内存储, 数据的存储结构是 数据结构的实现形式,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在 该类数据上执行的运算才有意义。 在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多 大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否 选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候 事情也
5、会反过来,我们根据特定算法来选择数 据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。 选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这 种洞见导致了许多种软件设计方法和程序设计语言的出现, 面向对象的程序设计语言 就是其中之一。 1.2. 研究内容研究内容 4 在计算机科学中,数据结构是一门研究非数值计算的程序设计问题中计算机的操 作对象(数据元素)以及它们之间的关系和运算等的学科,而且确保经过这些运算后所 得到的新结构仍然是原来的结构类型。 “数据结构”作为一门独立的课程在国外是从1968年才开始设立的。 1968年美国 唐 欧 克努特教授开创了数据结
6、构的最初体系,他所著的计算机程序设计技巧第一 卷基本算法是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。“数 据结构”在计算机科学中是一门综合性的专业基础课。数据结构是介于数学、计算机硬 件和计算机软件三者之间的一门核心课程。数据结构这一门课的内容不仅是一般程序 设计(特别是非数值性程序设计)的基础,而且是设计和实现编译程序、操作系统、 数据库系统及其他系统程序的重要基础。 计算机是一门研究用计算机进行信息表示和处理的科学。这里面涉及到两个问题: 信息的表示, 信息的处理 。 而信息的表示和组织又直接关系到处理信息的程序的效率。 随着计算机的普及,信息量的增加,信息范围的拓宽,使许多系统程序和应用程序的规 模很大,结构又相当复杂。因此,为了编写出一个“好”的程序,必须分析待处理的对象 的特征及各对象之间存在的关系,这就是数据结构这门课所要研究的问题。众所周知, 计算机的程序是对信息进行加工处理。在大多数情况下,这些信息并不是没有组织,信 息(数据)之间往往具有重要的结构关系,这就是数据结构的内容。数据的结构,直接 影响算法的