当前位置:文档之家› 数据结构家谱管理系统(二叉链表)

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

《项目实训二》
项目名称__ 家谱管理系统__ 姓名__ ___________ 班级 __ _______________ 学号__ ________________ 指导教师__ __________ __
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、删除成员。

相关主题