ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:18.66KB ,
资源ID:3200200      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3200200.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(家谱管理系统含源代码x.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

家谱管理系统含源代码x.docx

1、家谱管理系统含源代码x家谱管理系统C语言(数据结构)目的和要求:树形结构是一种非常重要的非线性结构,它用于描述数据元素之间 的层次关系,人类家谱是树形结构的典型体现,通过此项训练让学生掌握树形结 构的知识;使学生重点掌握树与二叉树的转换,二叉树的存储和遍历,和二叉树 相关的一些运算;要求完成家谱信息的录入和保存,任意成员的查找及某一成员 祖先、子孙、兄弟、堂兄弟的查找。排答疑和辅导。完整代码:#in clude#in clude#in cludeintMATEFLAG=O;是否入赘或嫁入这家的, 1表示为是,0表示否tRpedefstructTreeNode/ 树节点定义intNum;/保存此

2、人儿女个数charName20;保存此人姓名charKind;/保存此人性别,男 M,女FstructTreeNodeRNeRtNode20;保存此人的儿女,NeRtNode0里存放配偶的地址 structTreeNodeRParent;保存此节点的父节点TreeNode;voidCreatTree(TreeNodeRTree);/ 创建树 voidOutPutAII(TreeNodeRTree);/ 输出树 TreeNodeRSearchTree(TreeNodeRTree,charname,i ntle ngth);voidMai nMenu (TreeNodeRTree);voidSub

3、Me nue1(TreeNodeRTree);voidSubMe nue2(TreeNodeRTree);voidCha nge(TreeNodeRTree);voidAddNew(TreeNodeRTree); voidOutPutMessage(TreeNodeRTree,charname,i ntle ngth);/主函数voidmai n()TreeNodeRTree;/ 产生根节点Tree=(TreeNodeR)malloc(sizeof(TreeNode);Tree-Pare nt=NULL;strcpR(Tree-Name,0);MainMenu(Tree);/ 显示主菜单/添加

4、新的成员voidAddNew(TreeNodeRTree)SubMenue2(Tree);添加新成员界面/显示添加家庭信息的界面voidSubMe nue2(TreeNodeRTree)charc;intnum;char name20;TreeNodeRNewNode;getchar();while(1)sRstem(cls);printf(”请选择你的操作n”);printf(A:添加某个人的子女的信息n);printf(B:添加某个人配偶的信息n);printf(C:退出 n”);printf(”请选择相应功能:n);c=getchar();switch(c)caseA:/添加子女信息pr

5、intf(”请输入那个人的名字:n);sca nf(%s, name);Tree=SearchTree(Tree ,n ame,20); 在家谱里查找这个人if(Tree=NULL)printf(该家谱图中没有%s这个人的信息请确认是否输入错误 n,name);break;if(Tree-Pare nt=NULL&Tree-NeRtNode0=NULL|Tree-Pare nt!=NULL& Tree-N ame!=Tree-Pare nt-NeRtNode0-Name)printf(”至今还没有配偶请先添加配偶 n,Tree-Name);break;if(Tree-Pare nt=NULL&

6、(Tree-Num20|Tree-NumNum=0;if(MATEFLAG=1)Tree=Tree-Pare nt;NewNode=(TreeNodeR)malloc(sizeof(TreeNode);printf(”请输入添加人员姓名:n);sca nf(%s,NewNode-Name);printf(”请输入添加人员性别女 F男M:n);sca nf(%1s,&NewNode-Ki nd);num=Tree-Num;NewNode-NeRtNode0=(TreeNodeR)malloc(sizeof(TreeNode);NewNode-NeRtNode0=NULL;NewNode-Num=

7、0;NewNode-Pare nt=Tree;Tree-NeRtNode num+1=NewNode;Tree-Num=Tree-Num+1;printf(”子女的信息添加成功n);break;caseB:printf(”请输入那个人的名字:n);sca nf(%s, name);Tree=SearchTree(Tree ,n ame,20);if(Tree-Pare nt!=NULL&strcmp(Tree-Name,Tree-Pare nt-NeRtNode0-Name)=0|T ree-NeRtNode0!=NULL)printf(”已经有了配偶n”);break;if(Tree=NUL

8、L)printf(该家谱图中没有s这个人的信息请确认n,name); break;NewNode=(TreeNodeR)malloc(sizeof(TreeNode);printf(”请输入添加人员姓名:n);sca nf(%s,NewNode-Name);printf(”请输入添加人员性别女 F男M:n);sca nf(%1s,&NewNode-Ki nd);NewNode-Pare nt=Tree;Tree-NeRtNode0=NewNode;break;caseC:printf(”本项服务到此结束n);break;casen:break;default:printf(对不起!你的选择错误

9、n);break;if(c=C|c=c)break;printf(”请按Enter键继续操作n);getchar();getchar();/修改某个人的信息voidCha nge(TreeNodeRTree)char name20;TreeNodeRNewNode;printf(”请输入你要修改的人的信息:n);sca nf(%s, name);NewNode=SearchTree(Tree ,n ame,20);if(NewNode=NULL)n ”, name);printf(该家谱图中没有%s这个人的信息请确认是否输入错误 return;elseSubMe nu e1(NewNode);

10、/输出副菜单voidSubMe nue1(TreeNodeRTree)charc;in tflag,i;char name20;charPare nt220;TreeNodeRNewNode;getchar();while(1)sRstem(cls);printf(”请选择你的操作n”);printf(A:修改个人的信息n);printf(B:修改父母的信息n”);printf(C:修改兄弟姐妹的信息n);printf(D:修改子女的信息n);printf(E:修改配偶的信息n”);printf(F:退出 n);c=getchar();switch(c)caseA:printf(”请输入修改的

11、姓名:如果不需要修改就输入0然后按Enter键继续n);sca nf(%s, name);if(strcmp( name,0)!=0)strcpR(Tree-Name, name);printf(”是否要修改性别:如果需要就输入1不需要修改就输入0然后按Enter键继续n);sca nf(%d, &flag);if(flag=1)if(Tree-K in d=F|Tree-Ki nd=f)Tree-Ki nd=M;elseTree-K in d=F;printf(”个人信息修改成功n);break;caseB:if(Tree-Pare nt=NULL) 判断是不是头节点printf(”是这个家

12、谱图里最顶端的人没有父母信息 !n,name);break;if(MATEFLAG=1)判断是不是入赘或加入此间的if(Tree-K in d=F|Tree-Ki nd=f)printf(”她是嫁入此间的所以父母信息不在家谱内包括 n);elseprintf(”他是入赘此间的所以父母信息不在家谱内包括 n);break;if(Tree-Pare nt-K in d=F|Tree-Pare nt-K in d=f)strcpR(ParentO,母亲);strcpR(Parent1,父亲);elsestrcpR(ParentO,父亲);strcpR(Parent1,母亲);printf(”请输入%

13、s要修改的姓名:如果不需要修改就输入0然后按Enter键继续n,Pare ntO);sca nf(%s, name);if(strcmp( name,O)!=O)strcpR(Tree-Pare nt-Name, name);printf(”请输入%s要修改的姓名:如果不需要修改就输入0然后按Enter键继续n,Pare nt1);sca nf(%s, name);if(strcmp( name,0)!=0)strcpR(Tree-Pare nt-NeRtNode0-Name, name);printf(”父母的信息修改成功n);break;caseC:NewNode=Tree-Pare nt;if(NewNode=NULL) 判断是不是头节点printf(”是这个家谱图里最顶端的人没有兄弟姐妹信息 !n,name);break;if(MATEFLAG=1)判断是不是入赘或嫁入这家的if(Tree-K in d=F|Tree-Ki nd=f)printf(”她是嫁入此间的所以兄弟姐妹信息不在家谱内包括 n);elseprintf(”他是入赘此间的所以兄弟姐妹信息不在家谱内包

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1