新版家谱管理系统(含源代码).docVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
新版家谱管理系统(含源代码).doc

天天快乐 家谱管理系统——C语言(数据结构) 目的和要求:树形结构是一种非常重要的非线性结构,它用于描述数据元素之间 的层次关系,人类家谱是树形结构的典型体现,通过此项训练让学生掌握树形结 构的知识;使学生重点掌握树与二叉树的转换,二叉树的存储和遍历,和二叉树 相关的一些运算;要求完成家谱信息的录入和保存,任意成员的查找及某一成员 祖先、子孙、兄弟、堂兄弟的查找。 排答疑和辅导。 完整代码: #include stdio.h #include stdlib.h #include string.h int MATEFLAG=0; //是否入赘或嫁入这家的,1表示为是,0表示否 typedef struct TreeNode//树节点定义 { int Num; //保存此人儿女个数 char Name[20]; //保存此人姓名 char Kind; //保存此人性别,男M,女F struct TreeNode * NextNode[20]; //保存此人的儿女,NextNode[0]里存放配偶的地址 struct TreeNode * Parent; //保存此节点的父节点 }TreeNode; void CreatTree(TreeNode *Tree);//创建树 void OutPutAll(TreeNode *Tree);//输出树 TreeNode * SearchTree(TreeNode *Tree,char name[],int length); void MainMenu(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); MainMenu(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(请选择你的操作\n); printf(A:添加某个人的子女的信息\n); printf(B:添加某个人配偶的信息\n); printf(C:退出\n); printf(请选择相应功能:\n); c=getchar(); switch(c) { case A: //添加子女信息 printf(请输入那个人的名字:\n); scanf(%s,name); Tree=SearchTree(Tree,name,20);//在家谱里查找这个人 if(Tree==NULL) { printf(该家谱图中没有%s这个人的信息请确认是否输入错误\n,name); break; } if(Tree-Parent==NULLTree-NextNode[0]==NULL||Tree-Parent!=NULLTree-N ame!=Tree-Parent-NextNode[0]-Name) { printf(至今还没有配偶请先添加配偶\n,Tree-Name); break; } if(Tree-Parent==NULL(Tree-Num20||Tree-Num0)) Tree-Num=0; if(MATEFLAG==1) Tree=Tree-Parent; NewNode=(TreeNode *)malloc(sizeof(TreeNode)); printf(请输入添加人员姓名:\n); scanf(%s,NewNode-Name); printf(请输入添加人员性别女F男M:\n); scanf(%1s,NewNode-Kind); num=Tree-Num; NewNode-NextNode[0]=(TreeNode *)malloc(sizeof(TreeNode)); NewNod

文档评论(0)

liuxiaoyu99 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档