数据结构课程设计-- 家族关系查询系统
课 程 设 计 任 务 书 题目题目 家族关系查询系统家族关系查询系统 主要内容、基本要求、主要参考资料等主要内容、基本要求、主要参考资料等 主要内容主要内容 建立家族关系数据库,实现对家族成员关系的相关查询。 基本要求基本要求 (1)建立家族关系并能存储到文件中; (2)实现家族成员的添加。 (3)可以查询家族成员的双亲、祖先、兄弟、孩子和后代等信息。 课程设计按照教学要求需要一周时间完成,总共要上机调试程序 10 小时。 对每个题目要有需求分析, 在需求分析中, 将题目中要求的功能进行叙述分析, 并且设计解决此问题的数据存储结构,设计或叙述解决此问题的算法,描述算法 建议使用流程图,进行算法分析指明关键语句的时间复杂度。给出实现功能的一 组或多组测试数据,程序调试后,将按照此测试数据进行测试的结果列出来 。 源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量, 重点功能部分要加上清晰的程序注释。 程序能够运行,要有基本的容错功能。 尽量避免出现操作错误时出现死循环; 主要参考资料主要参考资料数据结构(C 语言版) ,在网上查询的相关资料及部 分代码 完完 成成 期期 限限 .6..6.1818- -.6.20 .6.20 指 导教师签名指 导教师签名 课程负责人签名课程负责人签名 年年 6 6 月月 18 18 日日 一、一、 设计题目(任选其一)设计题目(任选其一) 家族关系查询系统 二、二、 运行环境(软、硬件环境)运行环境(软、硬件环境) 电脑 及 Visual C 6.0 三、三、 算法设计的思想算法设计的思想 随着社会发展,人们使用纸质的家谱已经非常不方便 而且不利于在家谱里进行添加和修改。而用算法设计一个 家族关系查询系统则可以解决这个问题。数据结构的二叉 树刚好满足家谱的基本结构。 首先建立一个文件作为家谱,然后在文件中输入字符 串,实现了在文件中按照数据的逻辑关系进进输入便可建 立相应的三叉链表。然后就是进行数据的存储、删除及查 找工作。 四、四、 算法的流程图算法的流程图 家谱的创建家谱的创建 载入家谱载入家谱 开始开始 输入家谱名称输入家谱名称 输入家族成员输入家族成员 结束结束 开始开始 修改家谱修改家谱 成员查询成员查询 输入家谱名输入家谱名 载入成功载入成功 结束结束 家谱是否存在家谱是否存在 家谱打开失败家谱打开失败 是是 否否 开始开始 选择选择 输入成员姓名输入成员姓名 结束结束 添加成员添加成员 输入成员姓名输入成员姓名 是是 否否 返回上一级返回上一级 删除成员删除成员 成员是否存在成员是否存在 删除成功删除成功 请重新输入请重新输入 五、五、 算法设计分析算法设计分析 本次设计研究的是建立家族关系, 实现对家族成员关 系相关查询的问题。 在设计中使用的数据结构为树状结构, 树状结构采用三叉链表实现。我们在建立好家族关系后将 其存储在文件中,在文件中家族关系是以树的形式存储, 运用树的操作使家族关系得以准确建立。 家族关系查询系 统可分为六大模块,分别是创建、修改、查询、保存、退 出等。建立家族关系模块,建立家族关系并存入文件。建 立时首先输入家族关系的名称,以此名称为名建立文本文 件。接下来按层输入成员姓名,输入一个在文件中写入一 个字符串,以回车键结束。打开一个家族关系。在界面输 开始开始 输入成员名输入成员名 输出成员信息输出成员信息 结束结束 成员成员是否存在是否存在 不在家谱中,请重新不在家谱中,请重新 输入输入 是是 否否 入选项名,以家族关系名为文件名打开文件,如果家族关 系不存在,返回空;如果存在,打开文件,读取文件。。向 家族中添加一个新成员,添加的新成员要根据其父亲确定 其在家族中的位置。 首先判断该父亲是否在此家族关系中, 若存在,则查找其父亲,将新节点插入其父亲的最后一个 孩子之后;若没有孩子,直接作为左孩子插入。以写入的 方式打开文件,更新数组中的信息,然后将数组中的信息 写入文件保存,关闭文件。查找功能模块,查找一个成员 的所有祖先及其兄弟,查找一个成员的所有祖先路径,需 要从它的父亲一直向上查找带根结点。查找一个成员的兄 弟, 一个成员的兄弟为其父亲除了该结点以外的所有孩子。 对于要操作的结点, 先判断它是否是根结点, 若是根结点, 则无兄弟;若不是根结点,则找到该结点的父亲。接着判 断父亲的兄弟是否都存在,如果都不存在,则无兄弟;如 果都存在,对父亲的孩子操作。 六六、、源代码源代码 include
如果觉得《家族关系查询系统程序设计算法思路_数据结构课程设计--》对你有帮助,请点赞、收藏,并留下你的观点哦!