数据结构家谱管理系统(二叉链表)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《项目实训二》

项目名称__ 家谱管理系统__ 姓名__ ___________ 班级 __ _______________ 学号__ ________________ 指导教师__ __________ __

2018.1

模块划分:

1、统计模块

(1)统计家族总人数、健在人数、几代人

(2)主要函数:

int Generation(Node *root); //这个家族共有几代人

int NumberOfPeople( ); //家族的总人数

int LifeNum( ); //健在人数

(3)实现方法:静态成员变量

(4)实现结果:

2、更新模块

(1)创建家谱、增加成员、删除成员、成员改名

(2)主要函数:

Node* Creat( ); //构造函数调用

void AddNewPeople(Node *root,string FatherName,string

NAme); //增加新的家族成员

int DeletePeople(Node *root,string FatherName,string

Deletepeople); //删除家族成员

int SetNewName(Node *root,string NAme,string NewName); //更改

(3)实现方法:创建家谱和成员改名主要通过递归调用;增加成员和删除成员主要通过栈的非递归调用。

(4)实现结果:

3、查询模块

(1)查询成员详细信息、查询成员的孩子以及孩子的详细信息

(2)主要函数:

int Message(Node *root,string Name); //显示该成员的基本信

int FindChild(Node *root,string NAme); //显示孩子信息(3)实现方法:通过递归调用,找到成员,输出相应的信息

(4)实现结果:

4、显示模块

(1)前序、中序、后序遍历家谱

(2)主要函数:

void PreOrder(Node *root); //前序递归遍历输出家谱

void InOrder(Node *root); //中序递归遍历输出家谱

void PostOrder(Node *root); //后序递归遍历输出家谱(3)实现方法:递归遍历

(4)实现结果:

5、文件模块

(1)保存到文件、从文件读取

(2)主要函数:

void SaveToFile(Node *root); //保存到文件

void FileToFamilyTree( Node *root) ; //从文件中读取(3)实现方法:文件流

(4)实现结果:

实验结果及分析1、创建家谱

2、保存到文件

3、读取文件

4、增加成员

5、基本信息

6、查询成员信息

7、成员改名

8、遍历家谱

9、查询孩子信息

10、删除成员

相关文档
最新文档