[计算机软件及应用]数据结构家谱管理系统

上传人:自*** 文档编号:80432492 上传时间:2019-02-19 格式:DOC 页数:40 大小:55.72KB
返回 下载 相关 举报
[计算机软件及应用]数据结构家谱管理系统_第1页
第1页 / 共40页
[计算机软件及应用]数据结构家谱管理系统_第2页
第2页 / 共40页
[计算机软件及应用]数据结构家谱管理系统_第3页
第3页 / 共40页
[计算机软件及应用]数据结构家谱管理系统_第4页
第4页 / 共40页
[计算机软件及应用]数据结构家谱管理系统_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《[计算机软件及应用]数据结构家谱管理系统》由会员分享,可在线阅读,更多相关《[计算机软件及应用]数据结构家谱管理系统(40页珍藏版)》请在金锄头文库上搜索。

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

2、eeNode;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(T

3、reeNode * 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 name20;TreeNode * NewNode;get

4、char();while(1)system(cls);printf(t); printf(nnt -*-请选择你的操作-*- );printf(nt-*-*-*-A:添加某个人的子女的信息-*-*-*-*- );printf(nt-*-*-*-B:添加某个人配偶的信息-*-*-*-*-*- );printf(nt-*-*-*-C:退出-*-*-*-*-*-*-*-*-*-nt);c=getchar();switch(c)case A: printf(nnt请输入那个人的名字:nt);scanf(%s,name);Tree=SearchTree(Tree,name,20);if(Tree=NUL

5、L)printf(nnt*该家谱图中没有%s这个人的信息请确认是否输入错误*n,name);break;if(Tree-Parent=NULL&Tree-NextNode0=NULL|Tree-Parent!=NULL&Tree-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(size

6、of(TreeNode);printf(nnt请输入添加人员姓名:nt);scanf(%s,NewNode-Name);printf(nnt请输入添加人员性别女G男B:nt);scanf(%1s,&NewNode-Kind);num=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-子女的信

7、息添加成功-);break;case B: printf(nnt请输入那个人的名字:nt);scanf(%s,name);Tree=SearchTree(Tree,name,20);if(Tree-Parent!=NULL&strcmp(Tree-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

8、(TreeNode);printf(nnt请输入添加人员姓名:nt);scanf(%s,NewNode-Name);printf(nnt请输入添加人员性别女G男B:nt);scanf(%1s,&NewNode-Kind);NewNode-Parent=Tree;Tree-NextNode0=NewNode;break;case C: printf(nnt-本项服务到此结束-);break; case n: break;default: printf(nnt-对不起!你的选择不在服务范围之内!- );printf(nt-请您再次选择所需的服务项!- );printf(nt-谢谢合作!-nt);b

9、reak;if (c=C|c=c) /?break; printf(nnt-请按Enter键继续操作-);getchar();getchar();/修改某个人的信息void Change(TreeNode * Tree) char name20;TreeNode * NewNode;printf(nt请输入你要修改的人的信息:nt); scanf(%s,name); NewNode=SearchTree(Tree,name,20);if(NewNode=NULL) printf(nnt*该家谱图中没有%s这个人的信息请确认是否输入错误*n,name);return;else SubMenue1

10、(NewNode);/输出副菜单void SubMenue1(TreeNode * Tree)char c;int flag,i;char name20;char Parent220;TreeNode * NewNode;getchar();while(1)system(cls);printf(t); printf(nnt -*-请选择你的操作-*- );printf(nt-*-*-*-A:修改个人的信息-*-*-*-*-*-*- );printf(nt-*-*-*-B:修改父母的信息-*-*-*-*-*-*- );printf(nt-*-*-*-C:修改兄弟姐妹的信息-*-*-*-*-*- );printf(nt-*-*-*-D:修改子女的信息-*-*-*-*-*-*- );printf(nt-*-*-*-E:修改配偶的信息-*-*-*-*-*-*- );printf(nt-*-*-*-F:退出-*-*-*-*-*-*-*-*-*-nt);c=getchar();switch(c)case A: printf(nnt请输入修改的姓名:如果不需要修

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

当前位置:首页 > 办公文档 > 规章制度

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