家谱管理系统设计报告c语言,家谱管理系统设计报告.doc
家谱管理系统设计报告
目 录
第一章 绪论2
第二章需求分析3
2.1题目3
2.2设计任务3
2.3数据测试3
第三章 概要设计3
3.1 设计思想3
3.2 实现方法4
第四章 详细设计4
4.1功能构想4
4.2界面设计4
4.3增加成员5
4.3.1 添加子女5
4.3.2 添加配偶5
4.4修改成员6
4.4.1修改个人信息6
4.4.2修改父母信息6
4.4.3修改兄弟姐妹的信息6
4.4.4修改子女的信息7
第五章 调试分析7
第六章 测试结果9
致 谢10
参考文献11
附 录11
第一章 绪论
目前,很多家庭家谱丢失,家庭一些关系混乱,为了避免这一问题,制定一家谱程序。家谱用于记录某家族历代家族成员的情况与关系,实现对一个家族所有的资料进行收集整理。支持对家谱的存储、更新、查询、统计等操作。并用计算机永久储存家族数据,方便随时调用。
需求分析
2.1题目
家谱管理系统
2.2设计任务
系统总体说明:
以树形结构存储家族信息,只考虑三代(祖父,父亲,叔叔,姑姑,自己,兄弟姐妹,堂兄弟姐妹),只考虑每个人有0或者1个兄弟姐妹的情况。注意每个结点结构。统计统计家族成员人数,查询家族成员辈份。
完成功能的详细说明:
1.输入家族成员情况,建立树结构(涉及创建二叉树);
2.统计家族成员人数和每一个家庭成员人数(涉及树的遍历);
3.查询家族成员辈份情况(任意输入两个家庭成员,查询他们的关系,父子,祖孙,兄弟,堂兄弟,共同的祖先)。
4. 选做,考虑每个人有多个兄弟姐妹的情况。
2.3数据测试
测试的数据有:田迎新 陈瑞英 田紫藤 田紫恒 孙超 李美霖 ……..
第三章 概要设计
3.1 设计思想
创建一棵树,存储家庭关系,数据类型有
int Num; //记录这个人拥有几个儿女
char Name[20]; //记录这个人的姓名
char Sex; //标示节点的种类有女(0) 男(1)
struct TreeNode * NextNode[20]; //记录这个人的儿女
struct TreeNode * Parent; //记录这个节点的父节点
3.2 实现方法
完成功能的函数有
void CreatTree(TreeNode *Tree);//--------------------------------创建树
void OutPutAll(TreeNode *Tree);//-------------------------------遍历并输出树中的内容
void firstoftxt();//----------------------------------------------------写入文件的开始信息
void ofAll(TreeNode *Tree);//-------------------------------------写入文件函数
void ifAll();//---------------------------------------------------------读取文件的函数
TreeNode * SearchTree(TreeNode *Tree,char name[],int length);//查找结点的函数
void MainMenue(TreeNode *Tree);//-----------------------------主菜单
void SubMenue1(TreeNode * Tree);//----------------------------修改成员信息的菜单
void SubMenue2(TreeNode *Tree);//-----------------------------添加新成员菜单
void Change(TreeNode * Tree);//---------------------------------修改成员信息
void AddNew(TreeNode * Tree);//--------------------------------添加新成员
void OutPutMessage(TreeNode * Tree,char name[],int length);//输出已经查找到的人的信息
第四章 详细设计
4.1功能构想
构想好总体规划之后,便开始设计程序中需要用到的各个功能函数,初步构想是要先实现最基本的几项功能,其中数据操