/////////////////////////////////////////////////////////////////////////////////题目:家谱资料管理//要求:家谱用于记录某家族历代家族成员的情况与关系。现编制一个家谱资料管理软件,//实现对一个家族所有的资料进行收集整理。支持对家谱的增加,删除,更新,统计等.///////////////////////////////////////////////////////////////////////////////#include 〈stdio。h>#include 〈stdlib.h>#include 〈string。h〉int MATEFLAG=0;typedef struct TreeNode{int Num; //记录这个人拥有几个儿女char Name[20]; //记录这个人的姓名char Kind; //标示节点的种类有女 G 男 Bstruct TreeNode * NextNode[20]; //记录这个人的儿女struct TreeNode * Parent; //记录这个节点的父节点}TreeNode;void CreatTree(TreeNode *Tree);void OutPutAll(TreeNode *Tree);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);//主函数void main(){TreeNode *Tree;Tree=(TreeNode *)malloc(sizeof(TreeNode));Tree—〉Parent =NULL;strcpy(Tree-〉Name,"0"); MainMenue(Tree);}//添加新的成员void AddNew(TreeNode * Tree){SubMenue2(Tree);}//输出副菜单void SubMenue2(TreeNode *Tree){ char c;int num;char name[20];TreeNode * NewNode;getchar();while(1){system(”cls”);printf(”\t"); printf(”\n\n\t -——*****———请选择你的操作---****--— ”);printf("\n\t—-—*——-*———*---A:添加某个人的子女的信息——-*---*——-*-——*———— ”);printf(”\n\t———*——-*--—*---B:添加某个人配偶的信息-*———*-——*———*—--*-—-- ");printf(”\n\t———*—--*——-*-—-C:退出—*———*———*——-*---*—--*—-—*—--*—--*—--—\n\t");c=getchar();switch(c){case ’A’: printf(”\n\n\t 请输入那个人的名字:\n\t”);scanf("%s”,name);Tree=SearchTree(Tree,name,20);if(Tree...