1 / 26
文档名称:

家谱管理系统.doc

格式:doc   大小:403KB   页数:26页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

家谱管理系统.doc

上传人:rdwiirh 2019/9/28 文件大小:403 KB

下载得到文件列表

家谱管理系统.doc

文档介绍

文档介绍:洛阳理工学院课程设计报告数据结构课程设计课程名称___________________________________家谱管理系统设计题目___________________________________计算机科学与技术专业___________________________________B班级___________________________________B学号___________________________________宋士龙姓名___________________________________2016年12月30日完成日期___________________________________课程设计任务书设计题目:家谱管理系统设计内容与要求:【问题描述】:实现具有下列功能的家谱管理系统1).输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容:姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡),也可附加其它信息、但不是必需的。2).实现数据的存盘和读盘。3).显示家谱。4).按照出生日期查询成员名单。5).按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。6).修改某成员信息。【基本要求】:界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求相关数据要存储在数据文件中。测试数据:要求使用1、全部合法数据;2、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明。指导教师:_______________年月日课程设计评语成绩:指导教师:_______________年月日算法思想本程序是一个管理家谱的系统,通过这个系统可以对家族成员进行创建、显示、查找、修改、以及保存家谱和读取家谱功能。该系统分为以下几个模块,分别是:创建家谱,显示家谱、按姓名和生日查找家庭成员、修改家谱、存盘、读盘以及退出系统。本程序用到的存储形式为多叉树,因为家谱中每个人既有父母又有孩子,而且孩子的个数并不确定,所以用多叉树来存储最为合适。用多叉树来存储,就用用到多叉树的递归创建及递归遍历。因为是多叉树,所以遍历时用广度优先搜索合适。本函数最主要的思想就是递归调用,每个子函数中都会用到递归。定义结构体时给定指针数组的最大容量,来规定家谱中最多可以存多少人。定义一个家族树的指针变量用来当每个子函数的参数,从而将其返回到主函数中。以下时算法思想流程图:家谱管理系统创建家谱显示家谱修改家谱查找成员读写家谱按照姓名按照生日修改本人修改父母修改孩子存盘读盘退出系统模块划分intmain():主函数voidCreatTree(TreeNode*Tree):创建家族树voidOutPutAll(TreeNode*Tree):显示家谱voidMenue(TreeNode*Tree):主菜单voidSubMenue1(TreeNode*Tree):副菜单(修改选项菜单)voidChange(TreeNode*Tree):修改家谱TreeNode*SearchTree(TreeNode*Tree,charname[],intlength):按照姓名查找家谱成员TreeNode*SearchTree1(TreeNode*Tree,charbirth[],intlength):按照生日查找家谱成员voidOutPutMessage(TreeNode*Tree,charname[],intlength):输出按姓名查找到的家谱成员voidOutPutMessage1(TreeNode*Tree,charbirth[],intlength):输出按生日查找到的家谱成员voidSaveFamily(TreeNode*root):保存家谱voidReadFamily(TreeNode**root):读取家谱数据结构typedefstructTreeNode{ intChildNum;//记录这个人拥有几个儿女charName[20];//记录这个人的姓名 charbirthday[20];//生日 intmarriage;//婚否(1表示结婚,0表示没结婚) intdeath;//生死(1表示活着,0表示过世)charKind;//标示节点的种类有女G男B charaddress[100];//住址 charlivemassage[50];//死亡日期(如果其已经死亡)structTreeNode*NextNode[20];//记录这个人的儿女structTreeNode*Parent;//记录这个节点的父节点}TreeNode,*tree;测试第一组数据为:爷爷,奶奶,爸爸,妈妈,我,二叔,二婶,姐姐,三叔,三婶,