数据结构家谱管理系统

上传人:re****.1 文档编号:498067162 上传时间:2023-09-14 格式:DOC 页数:42 大小:182.50KB
返回 下载 相关 举报
数据结构家谱管理系统_第1页
第1页 / 共42页
数据结构家谱管理系统_第2页
第2页 / 共42页
数据结构家谱管理系统_第3页
第3页 / 共42页
数据结构家谱管理系统_第4页
第4页 / 共42页
数据结构家谱管理系统_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《数据结构家谱管理系统》由会员分享,可在线阅读,更多相关《数据结构家谱管理系统(42页珍藏版)》请在金锄头文库上搜索。

1、/题目:家谱资料管理/要求:家谱用于记录某家族历代家族成员的情况与关系现编制一个家谱资料管理软件,/实现对一个家族所有的资料进行收集整理。支持对家谱的增加,删除,更新,统计等。/#include#include#includeintMATEFLAG=0;typedefstructTreeNodeintNum;几个儿女charName20;名charKind;女G男B/记录这个人拥有/记录这个人的姓/标示节点的种类有structTreeNode*NextNode20;/记录这个人的儿女structTreeNode*Parent;/记录这个节点的父节点八、TreeNode;voidCreatTre

2、e(TreeNode*Tree);voidOutPutAll(TreeNode*Tree);TreeNode*SearchTree(TreeNode*Tree,charname,intlength);voidMainMenue(TreeNode*Tree);voidSubMenue1(TreeNode*Tree);voidSubMenue2(TreeNode*Tree);voidChange(TreeNode*Tree);voidAddNew(TreeNode*Tree);voidOutPutMessage(TreeNode*Tree,charname,intlength);/主函数voidm

3、ain()TreeNode*Tree;Tree=(TreeNode*)malloc(sizeof(TreeNode);Tree-Parent=NULL;strcpy(Tree-Name,0);MainMenue(Tree);/添加新的成员voidAddNew(TreeNode*Tree)SubMenue2(Tree);/输出副菜单voidSubMenue2(TreeNode*Tree)charc;intnum;charname20;TreeNode*NewNode;getchar();while(1)-*-请选择你的操作);system(cls);printf(t);printf(nntpri

4、ntf(nt-*-*-*-A:添加某个人的子女的信息);printf(nt-*-*-*-B:添加某个人配偶的信息);printf(nt-*-*-*-C:退nt);c=getchar();switch(c)caseA:printf(nnt请输入那个人的名字:nt);scanf(%s,name);Tree=SearchTree(Tree,name,20);if(Tree=NULL)printf(nnt*该家谱图中没有s这个人的信息请确认是否输入错误*n,name);break;if(Tree-Parent=NULL&Tree-NextNode0=NULL|Tree-Parent!=NULL&Tre

5、e-Name!=Tree-Parent-NextNode0-Name)printf(nnt%s至今还没有配偶请先添加配偶,Tree-Name);break;if(Tree-Parent=NULL&(Tree-Num20|Tree-NumNum=0;if(MATEFLAG=1)Tree=Tree-Parent;NewNode=(TreeNode*)malloc(sizeof(TreeNode);printf(nnt请输入添加人员姓名:nt);scanf(%s,NewNode-Name);printf(nnt请输入添加人员性别女G男B:nt);scanf(%1s,&NewNode-Kind);nu

6、m=Tree-Num;NewNode-NextNode0=(TreeNode*)malloc(sizeof(TreeNode);NewNode-NextNode0=NULL;NewNode-Num=0;NewNode-Parent=Tree;Tree-NextNodenum+1=NewNode;Tree-Num=Tree-Num+1;printf(nnt子女的信息添加成功);break;caseB:printf(nnt请输入那个人的名字:nt);scanf(%s,name);Tree=SearchTree(Tree,name,20);if(Tree-Parent!=NULL&strcmp(Tr

7、ee-Name,Tree-Parent-NextNode0-Name)=0|Tree-NextNode0!=NULL)printf(nnt已经有了配偶);break;if(Tree=NULL)printf(nnt*该家谱图中没有s这个人的信息请确认是否输入错误*n,name);break;NewNode=(TreeNode*)malloc(sizeof(TreeNode);printf(nnt请输入添加人员姓名:nt);scanf(%s,NewNode-Name);printf(nnt请输入添加人员性别女G男B:nt);scanf(%1s,&NewNode-Kind);NewNode-Pare

8、nt=Tree;Tree-NextNode0=NewNode;break;caseC:printf(nnt本项服务到此结束);break;casen:break;default:printf(nnt对不起!你的选择不在服务范围之内!);printf(nt请您再次选择所需的服务项!);printf(nt谢谢合作!nt);break;if(c=C|c=c)/?break;printf(nnt请按Enter键继续操作);getchar();getchar();/修改某个人的信息voidChange(TreeNode*Tree)charname20;TreeNode*NewNode;printf(nt

9、请输入你要修改的人的信息:nt);scanf(%s,name);NewNode=SearchTree(Tree,name,20);if(NewNode=NULL)printf(nnt*该家谱图中没有s这个人的信息请确认是否输入错误*n,name);return;elseSubMenue1(NewNode);/输出副菜单voidSubMenue1(TreeNode*Tree)charc;intflag,i;charname20;charParent220;TreeNode*NewNode;getchar();while(1)system(cls);printf(t);-*-请选择你的操作);pr

10、intf(nt-*-*-*-*-);-*-*-*-*-);-*-*-*-printf(ntprintf(nt);:修改个人的信息B:修改父母的信息C:修改兄弟姐妹的信息printf(nntprintf(nt-*-*-*-D:修改子女的信息-);-);printf(nt-*-*-*-E:修改配偶的信息-);-);printf(nt-*-*-*-F:退出nt);c=getchar();switch(c)caseA:printf(nnt请输入修改的姓名:如果不需要修改就输入O然后按Enter键继续nt);scanf(%s,name);if(strcmp(name,O)!=O)strcpy(Tree-

11、Name,name);printf(nnt是否要修改性别:如果需要就输入1不需要修改就输入O然后按Enter键继续nt);scanf(%d,&flag);if(flag=1)if(Tree-Kind=G|Tree-Kind=g)Tree-Kind=B;elseTree-Kind=G;printf(nnt个人信息修改成功);break;caseB:if(Tree-Parent=NULL)/判断是不是头节点printf(nt是这个家谱图里最顶端的人没有父母信息!,name);break;if(MATEFLAG=1)/判断是不是入赘或加入此间的if(Tree-Kind=G|Tree-Kind=g)p

12、rintf(nnt她是嫁入此间的所以父母信息不在家谱内包括);elseprintf(nnt他是入赘此间的所以父母信息不在家谱内包括);break;if(Tree-Parent-Kind=G|Tree-Parent-Kind=g)strcpy(ParentO,母亲”);strcpy(Parent1,父亲”);elsestrcpy(ParentO,父亲”);strcpy(Parent1,母亲”);printf(nnt请输入s要修改的姓名:如果不需要修改就输入0然后按Enter键继续nt,Parent0);scanf(%s,name);if(strcmp(name,0)!=0)strcpy(Tree-Parent-Name,name);printf(nnt请输入s要修改的姓名:如果不需要修改就输

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号