数据结构 课程设计报告 - 1 - 家谱管理系统 一 、需求分析 本系统实现以下功能: 1)
输入文件以存放最初家谱中各成员的信息
成员的信息中均应包含以下内容: 姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡)也可附加其它信息、但不是必需的
实现数据的存盘和读盘
以图形方式显示家谱
显示第n 代所有人的信息
按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)
按照出生日期查询成员名单
输入两人姓名,确定其关系
某成员添加孩子
删除某成员(若其还有后代,则一并删除)
修改某成员信息
按出生日期对家谱中所有人排序
打开一家谱时,提示当天生日的健在成员
测试要求: 1)
建立至少30 个成员的数据,以较为直观的方式显示结果,并提供文稿形式以便检查
对界面的要求是:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求
二、设计概要 1、抽象数据类型兄弟孩子树的定义如下: ADT CSNode{ 数据对象:person 是兄弟孩子树中的每一个节 点 ,T 是整 个树的统一体 数据关系:R1={< personi-1,personi> |< personi-1,personi> 表 示 personi-1 和 personi 之 间 有血 缘 关系} 基 本操 作 : CSNode *CreatTree(fstream &outfile); 初始 条 件:已经 打开了 文本文件PersonInfo
txt 操 作 结果:创 建一个兄弟孩子树T,并把 从 文件中的数据送 到 树中,关闭 文件
void CreatParent_step(CSNode *parent); 初始 条 件:兄弟孩子树T 已经 存在 操 作 结果:对所