




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
1课程设计介绍1、1课程设计项目简介家谱就是一种以表谱形式,记载一个以血缘关系为主体得家族世系繁衍与重要人物事迹得特殊图书载体.家谱就是中国特有得文化遗产,就是中华民族得三大文献之一,属珍贵得人文资料,对于历史学,民俗学,人口学,社会学与经济学得深入研究,均有不可替代得重要功能。本项目对家谱管理进行简单得模拟,以实现查瞧祖先与子孙个人信息、插入家族成员等功能。1、2课设题目分析本程序得实质就是完成对家谱成员信息得建立、查找、插入等功能。可以首先定义家族成员得数据结构,然后将每个功能写成一个函数来完成对数据得操作,最后完成主函数以验证各个函数功能并得出运行结果。本程序包含以下几个模块建立家族关系树。此模块将构建一个家族关系,对数据初始化,构造关系树并录入数据一遍后续程序使用。添加新成员。此模块将添加一个新成员,实现对家族关系得修改。家族关系得查询。此模块将实现对家族不同关系得查询主程序模块。此模块实现整个程序得进入与进出,以及各种初始化处理。1、3课程题目原理与数据结构因为家族得成员之间存在一个对多个得层次结构关系,所以不能用线性表来表示与实现。家谱从形状上瞧像一颗倒长得树,所以用树结构来表示比较合适。树形结构就是一类非常重要得非线性数据结构,直观瞧来树就是以分支关系定义得层次结构.因此本课程设计可以采用得数据结构有树状结构与队列。树状结构采用三叉链表来实现,队列采用链式队列实现。1、4功能分析说明图家族关系查询系统退出系统打开一个家族关系按关系查找各个家庭成员建立一个家族关系添加一个家庭成员查找一个成员得兄弟查找一个成员得祖先查找成员得子孙后代查找一个成员得孩子查找成员得堂兄弟查找成员祖先路径查找成员就是第几代查找一个成员双亲2分析与实现2、1基本数据结构与栈队得操作2.1。1结点基本数据结构与链队得定义/*家族关系树实现*/#include〈string、h〉#include<malloc、h〉#include<limits、h〉#include<stdio、h>#include<stdlib、h>#include<io、h>#include<math、h>#include<process、h〉#defineTRUE1#defineFALSE0#defineOK1#defineERROR-1#defineINFEASIBLE-1typedefcharDataType;#defineMAXNUM20typedefstructTriTNode/*树得三叉链表存储结构*/{ﻩDataTypedata[MAXNUM];ﻩstructTriTNode*parent;/*双亲*/structTriTNode*lchild;/*左孩子*/structTriTNode*rchild;/*右孩子*/}TriTree;typedefstructNode/*队列得结点结构*/{TriTree*info;structNode*next;}Node;typedefstruct/*链接队列类型定义*/{ﻩstructNode*front;ﻩ/*头指针*/structNode*rear;/*尾指针*/}LinkQueue;DataTypefname[MAXNUM],family[50][MAXNUM];/*全局变量*/2.1.2链队得基本操作LinkQueue*LQueueCreateEmpty()/*建立一个空队列*/{LinkQueue*plqu=(LinkQueue*)malloc(sizeof(LinkQueue));if(plqu!=NULL)plqu—>front=plqu-〉rear=NULL;else{printf(”内存不足!\n”);ﻩreturnNULL;}returnplqu;}intLQueueIsEmpty(LinkQueue*plqu)/*判断链接表示队列就是否为空队列*/{return(plqu->front==NULL);}voidLQueueEnQueue(LinkQueue*plqu,TriTree*x)/*进队列*/{Node*p=(Node*)malloc(sizeof(Node));if(p==NULL)printf(”内存分配失败!\n");elseﻩ{p->info=x;p->next=NULL;if(plqu->front==NULL)/*原来为空队*/plqu—>front=p;elseplqu->rear-〉next=p;plqu—〉rear=p;}}intLQueueDeQueue(LinkQueue*plqu,TriTree*x)/*出队列*/{Node*p;if(plqu—>front==NULL){ﻩprintf("队列空!\n”);returnERROR;ﻩ}elseﻩ{p=plqu->fr

你的****书屋
实名认证
内容提供者


最近下载