郑州轻工业学院 课 程 设 计 任 务 书
题目家族关系查询系统
专业、班级 软件外包11-01学号541107080145 姓名周朱莉 主要内容、基本要求、主要参考资料等: 主要内容:
建立家族关系数据库,实现对家族成员关系的相关查询。
基本要求:
(1)建立家族关系并能存储到文件中; (2)实现家族成员的添加。
(3)可以查询家族成员的双亲、祖先、兄弟、孩子和后代等信息。 课程设计按照教学要求需要一周时间完成,总共要上机调试程序10小时。对每个题目要有需求分析, 在需求分析中,将题目中要求的功能进行叙述分析,并且设计解决此问题的数据存储结构,设计或叙述解决此问题的算法,描述算法建议使用流程图,进行算法分析指明关键语句的时间复杂度。给出实现功能的一组或多组测试数据,程序调试后,将按照此测试数据进行测试的结果列出来。
源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。 程序能够运行,要有基本的容错功能。尽量避免出现操作错误时出现死循环;
主要参考资料:数据结构(C语言版),在网上查询的相关资料及部分代码
完 成 期 限:2013.6.18-2013.6.20 指导教师签名: 课程负责人签名:
2013年 6 月 18 日
郑州轻工业学院本科
数据结构课程设计总结报告
设计题目:家族关系查询系统 学生姓名:周朱莉 系别:计算机与通信工程 专业:软件外包 班级:11-01 学号:541107080145 指导教师:卢冰
2013年6月20日
一、 设计题目(任选其一)
家族关系查询系统
二、 运行环境(软、硬件环境)
电脑及Visual C++ 6.0 三、 算法设计的思想
随着社会发展,人们使用纸质的家谱已经非常不方便而且不利于在家谱里进行添加和修改。而用算法设计一个家族关系查询系统则可以解决这个问题。数据结构的二叉树刚好满足家谱的基本结构。
首先建立一个文件作为家谱,然后在文件中输入字符串,实现了在文件中按照数据的逻辑关系进进输入便可建立相应的三叉链表。然后就是进行数据的存储、删除及查找工作。 四、 算法的流程图 家谱的创建:
输入家族成员 输入家谱名称 开始
结束 载入家谱:
结束 家谱是否存在? 是 载入成功 开始 输入家谱名 否 家谱打开失败 修改家谱:
输入成员姓名 添加成员 返回上一级 删除成员 选择 开始 输入成员姓名 否 成员是否存在? 是 删除成功 请重新输入
结束 成员查询:
否 输入成员名 开始
成员是否存在? 是 输出成员信息 不在家谱中,请重新输入 结束 五、 算法设计分析
本次设计研究的是建立家族关系,实现对家族成员关系相关查询的问题。在设计中使用的数据结构为树状结构,树状结构采用三叉链表实现。我们在建立好家族关系后将其存储在文件中,在文件中家族关系是以树的形式存储,运用树的操作使家族关系得以准确建立。家族关系查询系统可分为六大模块,分别是创建、修改、查询、保存、退出等。建立家族关系模块,建立家族关系并存入文件。建立时首先输入家族关系的名称,以此名称为名建立文本文件。接下来按层输入成员姓名,输入一个在文件中写入一