1、 1 数据结构课程设计报告数据结构课程设计报告 信息工程学院信息工程学院 计算机科学与技术专业计算机科学与技术专业 单位员工通讯录管理系统(线性表应用)单位员工通讯录管理系统(线性表应用) 2 程序设计书目录程序设计书目录 一、程序设计目标一、程序设计目标 二、问题描述二、问题描述 三、需求分析(说明课程设计的任务)三、需求分析(说明课程设计的任务) 四、概要设计(说明课程设计中用到的抽象数据类型四、概要设计(说明课程设计中用到的抽象数据类型 的定义、主程序的流程以及各程序模块之间的调的定义、主程序的流程以及各程序模块之间的调 用关系等)用关系等) 五、详细设计(实现程序模块的具体算法)五、详
2、细设计(实现程序模块的具体算法) 六、软件说明书(给出软件应如何使用,使用时的具六、软件说明书(给出软件应如何使用,使用时的具 体事项)体事项) 七、源程序清单(要求七、源程序清单(要求 400 行以上,要有注释说明)行以上,要有注释说明) 八、 测试报告 (调试过程中遇到的问题以及八、 测试报告 (调试过程中遇到的问题以及解决方法,解决方法, 并列出测试结果,包括输入和输出)并列出测试结果,包括输入和输出) 九、课程设计总结九、课程设计总结 3 一:程序设计目标一:程序设计目标 通过对通讯录管理链表的课程设计, 加深对通过对通讯录管理链表的课程设计, 加深对程序设计程序设计的理解, 熟的理解
3、, 熟 练掌握和加深练掌握和加深 c 语言的基本知识和语法规范,语言的基本知识和语法规范,同时更进一步地理解同时更进一步地理解 数据结构对单链表知识的应用, 培养我们调查研究、 查阅技术文献、数据结构对单链表知识的应用, 培养我们调查研究、 查阅技术文献、 资料、手册以及编写程序的能力,同时也考验我们善于思考,互相资料、手册以及编写程序的能力,同时也考验我们善于思考,互相 帮助的团队精神。帮助的团队精神。 本程序是学会建立通讯录, 使人员之间联系更加方便快捷, 增加本程序是学会建立通讯录, 使人员之间联系更加方便快捷, 增加 办事效率。办事效率。 二:问题描述二:问题描述 为某个单位建立一个员
4、工通讯录管理系统, 可以方便查询每一个为某个单位建立一个员工通讯录管理系统, 可以方便查询每一个 员工的办公室电话、 手机号及电子邮箱。 其功能员工的办公室电话、 手机号及电子邮箱。 其功能包括通讯录链包括通讯录链表的建表的建 立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录的输的输 出。出。 三:需求分析三:需求分析 想要建立一个单位员工通讯录的管理系统,方便查询其每个员工想要建立一个单位员工通讯录的管理系统,方便查询其每个员工 的一些的一些信息信息。 首先,应运用首先,应运用 c 语言中结构体的知识语言中结构体的知识。把员工的
5、各项信息储存到把员工的各项信息储存到 结构体的链表中,定义一个新的结构体类型结构体的链表中,定义一个新的结构体类型 struct(struct 是声明结是声明结 构体时所必须使用的关键字) 它向编译系统声明这是一个 “结构体类构体时所必须使用的关键字) 它向编译系统声明这是一个 “结构体类 型” ,它包括型” ,它包括 num, name ,phone 等不同类型的数据项。等不同类型的数据项。 其次:运用数据结构中线性表的知识。其次:运用数据结构中线性表的知识。线性表的存储结构分为线线性表的存储结构分为线 4 性表的线性存储结构和线性表的链式存性表的线性存储结构和线性表的链式存储结构,储结构,
6、 线性表的顺序存储线性表的顺序存储 结构是结构是指用一组地址连续的存储单元一次存储线性表的数据元素。 线指用一组地址连续的存储单元一次存储线性表的数据元素。 线 性表的链式存储结构性表的链式存储结构则是通过指针反映元素之间的关系, 不要求逻则是通过指针反映元素之间的关系, 不要求逻辑辑 上相邻的元素在物理位置上也相邻, 所以该方法可以克服顺序表的一上相邻的元素在物理位置上也相邻, 所以该方法可以克服顺序表的一 些些缺点。 所以本题应缺点。 所以本题应运用线性链表的链式存储结构。 线性链表的链式运用线性链表的链式存储结构。 线性链表的链式 存储结构又分为单链表、 循环链表和双链表,存储结构又分为单链表、 循环链表和双链表, 本题运用单链表的知识。本题运用单链表的知识。 1 1:通通讯录链表的建立。讯录链表的建立。 建立单链表有两种方法,头插入法和尾建立单链表有两种方法,头插入法和尾插入法。头插入法是将每插入法。头插入法是将每 次新插入的结点插入在链表的表头, 而尾插入法是将新插入的结点次新插入的结点插入在链表的表头, 而尾插入法是将新插入的结点插插 入到链表的表尾。