1、 课程名称课程名称: : 数据结构课程设计数据结构课程设计 课程设计题目课程设计题目: : 家族关系查询系统家族关系查询系统 目目 录录 1 1 课程设计的目的课程设计的目的 2 2 需求分析需求分析 3 3 课程设计报告内容课程设计报告内容 3.13.1 概要设计概要设计 3.23.2 详细设计详细设计 3.33.3 调试分析调试分析 3.43.4 用户手册用户手册 3.53.5 测试结果测试结果 3.63.6 程序清单程序清单 4 4 小结小结 5 5 参考文献参考文献 1.1.课程设计的目的课程设计的目的 (1) (1) 熟练使用熟练使用 C C 语言编写程序,解决实际问题语言编写程序,
2、解决实际问题; ; (2) (2) 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; ; (3) (3) 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方 法和技能法和技能; ; (4) (4) 提高综合运用所学的理论知识和方法独立分析和解决问题的能力提高综合运用所学的理论知识和方法独立分析和解决问题的能力; ; 2.2.需求分析需求分析 随着社会发展,人们使用纸质的家谱已经非常不方便而且不利于在家谱里进行随着社会发展,人们使用纸质的
3、家谱已经非常不方便而且不利于在家谱里进行 添加和添加和修改。而用算法设计一个家族关系查询系统则可以解决这个问题。数据修改。而用算法设计一个家族关系查询系统则可以解决这个问题。数据 结构的二叉树刚好满足家谱的基本结构。首先建立一个文件作为家谱,然后在结构的二叉树刚好满足家谱的基本结构。首先建立一个文件作为家谱,然后在 文件中输入字符串,实现了在文件中按照数据的逻辑关系进进输入便可建立相文件中输入字符串,实现了在文件中按照数据的逻辑关系进进输入便可建立相 应的三叉链表。然后就是进行数据的存储、删除及查找工作。应的三叉链表。然后就是进行数据的存储、删除及查找工作。 3.3.算法分析算法分析 本次设计
4、研究的是建立家族关系,实现对家族成员关系相关查询的问题。在设本次设计研究的是建立家族关系,实现对家族成员关系相关查询的问题。在设 计中使用的数据结构为树状结构,树状结构采用三叉链表实现。我们在建立好计中使用的数据结构为树状结构,树状结构采用三叉链表实现。我们在建立好 家族关系后将其存储在文件中,在文件中家族关系是以树的形式存储,运用树家族关系后将其存储在文件中,在文件中家族关系是以树的形式存储,运用树 的操作使家族关系得以准确建立。的操作使家族关系得以准确建立。 家族关系查询家族关系查询系统可分为六大模块,分别是系统可分为六大模块,分别是 创建、修改、查询、保存、退出等。建立家族关系模块,建立
5、家族关系并存入创建、修改、查询、保存、退出等。建立家族关系模块,建立家族关系并存入 文件。建立时首先输入家族关系的名称,以此名称为名建立文本文件。接下来文件。建立时首先输入家族关系的名称,以此名称为名建立文本文件。接下来 按层输入成员姓名,输入一个在文件中写入一个字符串,以回车键结束。打开按层输入成员姓名,输入一个在文件中写入一个字符串,以回车键结束。打开 一个家族关系。在界面输入选项名,以家族关系名为文件名打开文件,如果家一个家族关系。在界面输入选项名,以家族关系名为文件名打开文件,如果家 族关系不存在,返回空;如果存在,打开文件,读取文件。向家族中添加一个族关系不存在,返回空;如果存在,打开文件,读取文件。向家族中添加一个 新成员,添加的新成员要根据其父亲确定其在家族中的位置。首先判断该父亲新成员,添加的新成员要根据其父亲确定其在家族中的位置。首先判断该父亲 是否在此家族关系中,若存在,则查找其父亲,将新节点插入其父亲的最后一是否在此家族关系中,若存在,则查找其父亲,将新节点插入其父亲的最后一 个孩子之后个孩子之后;若没有孩子,直接作为左孩子插入。以写入的方式打开文件,更;若没