二叉树家谱(2)

2019-04-04 23:01

最后,调用Put(BinTree T)函数:显示所有符合条件的成员的个人信息 (10)首先,调用InquireAge(BinTree T)函数:根据输入的年龄以及

ValueAge(BinTree T,int Age)函数定位成员

最后,调用Put(BinTree T)函数:显示所有符合条件的成员的个人信息 (11)首先,调用InquireZhixi(BinTree T)函数:根据输入的查询人姓名以及

ValueZhixi(BinTree T,char Name[len])函数定位成员节点 然后,利用结构体指针*parent、*child查找到直系亲属

最后,调用Put函数:显示指定成员的个人信息以及直系亲属的信息 (12)首先,调用InquireRoot(BinTree T)函数:根据输入的查询人姓名以及

Value(BinTree T,char Name[len])函数定位成员节点 然后,利用结构体指针*parent查找到嫡系祖先

最后,调用Put(BinTree T)函数:显示指定成员的个人信息以及嫡系祖先

的信息

(13)首先,调用RelationShip(BinTree T)函数:根据输入的姓名确定两人的

关系

(14)首先,调用Inquireday(BinTree T)函数:根据输入的查询人的姓名以及

Value(BinTree T,char Name[len])函数定位成员 然后,调用Count_day(BinTree T)函数:计算出生存天数 最后,显示指定成员的生存天数 (0)破坏循环条件:c=0; 删除成员 查询新建成员 添加 成员 家谱 出生姓家庭出生健 在 地址地址名日期及死 查找 查找 查查找 亡日 找 期查找 主菜单 修改信息 显示家谱 统计操作 读取家谱 保存家谱 退出 简历查找 父亲姓名查找 辈分查找 身高查找 年查询龄直系查亲属 找 查询嫡系祖先 成员关系查询 查询生存天数 返回上一级 图4 查询信息模块图

- - 6 - -

选择4后,调用DeleteTree(BinTree &T)函数,根据输入的删除人的姓名以及

Value(BinTree T,char Name[len])函数定位成员 然后直接删除该成员以及该成员的后代

选择5后,进入修改菜单。

1—修改姓名

2—修改出生日期

图5 修改信息菜单

(1)根据输入的姓名以及调用Value(BinTree T,char Name[len])函数定位成

员,然后直接修改成员姓名,最后修改他所有孩子的父亲姓名。 (2)根据输入的姓名以及调用Value(BinTree T,char Name[len])函数定位成

员,然后直接修改成员出生日期

(3)根据输入的姓名以及调用Value(BinTree T,char Name[len])函数定位成

员,然后直接修改成员是否健在,若死亡则直接修改死亡日期

(4)根据输入的姓名以及调用Value(BinTree T,char Name[len])函数定位成

员,然后直接修改成员出生地址

(5)根据输入的姓名以及调用Value(BinTree T,char Name[len])函数定位成

员,然后直接修改成员家庭住址

(6)根据输入的姓名以及调用Value(BinTree T,char Name[len])函数定位成

员,然后直接修改成员职业

(7)根据输入的姓名以及调用Value(BinTree T,char Name[len])函数定位成

员,然后直接修改成员简历

3—修改成员是否健在及及死 亡日期 4—修改出生地址 5—修改家庭住址 6—修改职业 7—修改简历 0-返回上一级 - - 7 - -

(0)破坏循环条件:c=0;

新建成员 查询删除家谱 添加 成员 成员 修改 姓名 修改出生日期 主菜单 修改信息 显示家谱 统计操作 读取家谱 保存家谱 退出 修改是否健在及死亡日期 修改出生日期 修改家庭住址 修改职业 修改简历 返回上一菜单 图6 修改信息模块图

选择6后,调用OutPutFamily(BinTree T)函数:按线序遍历显示整个家谱树。 选择7后,调用MainMenueTongji(BinTree T)函数,进入信息统计菜单,并且 计算出平均年龄、平均身高、男女人数、家庭平均人口。

1—平均年龄 2—平均身高 3—性别报告 4—平均家庭人口 5—返回上一级 图7 统计操作菜单

(1) 直接输出平均年龄 (2) 直接输出平均身高 (3) 直接输出男女人数 (4) 直接输出平均家庭人口数

- - 8 - -

(5) 破坏菜单循环条件:C=0.

选择8后,调用ReadTree(BinTree &T)函数,利用队列,采用层次遍历读取文

件中的成员信息。

选择9后,调用BaoCun(BinTree T)函数,利用队列,采用层次遍历的方式把家

谱保存为二进制文件。

选择0后,破坏循环条件:c=0,退出程序

2.2 部分模块流程图

输入出生日期 N 出生日期 是否合法 Y 保存出生日 是否健在 输入死亡日期 N Y N 死亡日期合法且 在出生日期之后 Y 保存 图8 日期信息的合法性检验流程图

- - 9 - -

输入成员信息

Y 父亲是否有添加兄弟模块

第一个孩子

N 将新输入的节点作为父 亲节点的第一 个 孩子

完成

图9添加成员孩子模块流程图

输入的成员出生比第一个孩子早?N阴影部分的实际是链表插入Y将新输入的节点作为父节点的第一个孩子,原来的第一孩子作为新输入节点的兄弟C[i]保存孩子节点,i=1时指针指向第一个孩子新输入节点的兄弟指针指向C[i-1];C[i]的兄弟指针指向新输入节点;新输入节点的出生日期比C[i]晚YC[i+1]指针指向C[i]的brother;N完成

图10添加成员兄弟模块流程图

- - 10 - -


二叉树家谱(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:1.第二代支付系统报文交换标准(概述) - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: