欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据结构家谱管理系统.doc

    • 资源ID:92171380       资源大小:61.50KB        全文页数:38页
    • 资源格式: DOC        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构家谱管理系统.doc

    /题目:家谱资料管理/要求:家谱用于记录某家族历代家族成员得情况与关系。现编制一个家谱资料管理软件,/实现对一个家族所有得资料进行收集整理。支持对家谱得增加,删除,更新,统计等./ilude sdi、h#include <stdlib、hinclude trig、ht MATEFAG=0;tpef uc TreNodei Num; /记录这个人拥有几个儿女ca Name2; /记录这个人得姓名ar nd; /标示节点得种类有女G男BtrutreeNode Ntode; /记录这个人得儿女tct TeNodPren; /记录这个节点得父节点TreNoe;vid Ceatre(TreNode Tree);oi utPutAl(Treodee);TreeNoe Searhee(reeNode Te,char nme,int engh);voi anue(TeNodeTree);o SubMen1(reeNode Tree);vodubMene2(TreNode Tre);voi Cag(Treoe re);voi AddNew(TreNoe Tr);void OuPutMsae(TeeNod Tee,char ame,nt length);主函数void ma()eode Tree;Tree=(reeode*)mlloc(izeof(reeNd);reParen =NU;strp(TreeName,”); MaiMenu(Te);/添加新得成员void AddNew(reeNode * Tr)SubMenue(Tree);/输出副菜单oidubMe2(TrNeTe) hr ;int m;har name2;eeNode* NewNe;getcha();while(1)sstem("cl");prin("); rint(nnt -*-请选择您得操作-*- ");prinf(nt-*A:添加某个人得子女得信息-*- ”);printf(n-B:添加某个人配偶得信息-*-*- ");pintf("nt-*C:退出*-*-t);c=getcha();ih(c)ca A: rint(nt请输入那个人得名字:nt");anf("s",ae);Tree=earhTre(Tree,name,0);if(Tr=NL)prntf(”nn*该家谱图中没有%s这个人得信息请确认就是否输入错误*",name);beak;f(TreeParn=NULre-Nextde0=NUL|TreePant!NULL&&ree>Name!=TrearenNetode0>Nme)rintf(nts至今还没有配偶请先添加配偶”,TreeNme);ak;if(Tree>Parent=UL&&(TNum20reeNm0)Tee-Num=0;f(MATLAG=) TeeTeePae;ewNode=(reNod*)alloc(sieo(Treeode));pritf(”nnt请输入添加人员姓名:nt");scaf(s”,NNde>Nme);pri("nt请输入添加人员性别女G男:nt”);scnf("1”,&NewNoe-Kin);nu=Tre->Num;NewNode>NextNode0=(TreNoe )mallo(sizef(TreNode));wode-NtNoe0NL;woe-N=;NewNoeart=re;Tree-Nexdu1=Newoe;Te-umTr>Num+1; rnt(”t-子女得信息添加成功-");brea;case B: printf(nnt请输入那个人得名字:nt”);scnf(”%s”,ame);re=Searhree(Tree,nam,2);if(Teearet!=NULL&strcmp(Tre-Nam,Tre>Pren>Nxtode0Nae)=0|TrtNod!NUL)prntf("nnt已经有了配偶");brea;i(Tre=NULL)pintf(”nt*该家谱图中没有s这个人得信息请确认就是否输入错误*n”,am);bea;Newoe(TreeNod )malloc(sizeo(TeeNode));prinf(”nn请输入添加人员姓名:nt");scanf(”s",NewN-Nam);prntf("nt请输入添加人员性别女G男:nt”);scaf("%1,NeNode-Kind);NewNode>Pan=ee;Tree>NextNode0NNode;break;case C: intf(”nt-本项服务到此结束-”);brak; csen: bea;efault: print("nnt-对不起!您得选择不在服务范围之内!- ");printf(n-请您再次选择所需得服务项!- ”);rnt(n-谢谢合作!-nt");beak;if (c='|c='c') /?brak; rint(”nnt-请按Ent键继续操作-);getchar();gtcr();/修改某个人得信息oid Cange(TeeNode ree) chr nae0;TeNode* NwNod;it(nt请输入您要修改得人得信息:nt"); sanf("%s,nae);ewNod=Shree(Tre,name,0);if(ewNode=ULL) prtf(”nnt*该家谱图中没有%这个人得信息请确认就是否输入错误*n,nae);etur;elseSubMenue1(ewd);/输出副菜单voi Subnu1(TreNod *ee)cac;it flag,i;cha nae2;char Pant220;TeeNoe NewNde;gethar();hile(1)sytem("cs");printf(”t); printf("nnt *-请选择您得操作-*- ");rint("nt-*-A:修改个人得信息-*-*- );rintf("t-*-*-:修改父母得信息-*-*- ");rin("nt-*-*-:修改兄弟姐妹得信息-*-*-*- ”);pn("nt-*-*-D:修改子女得信息*-*-*- ");rintf(”nt-*-E:修改配偶得信息-*-*-*- ”);prntf(nt-*:退出-*-*-n”);c=gechar();witch()ca A': rinf("nnt请输入修改得姓名:如果不需要修改就输入'然后按Ener键继续n”);can(”%s,ame);if(strcmp(name,"0")!=0) rcy(ree->Name,name);rntf("nn就是否要修改性别:如果需要就输入1'不需要修改就输入0然后按Entr键继续nt); saf("d,flag); f (fa=)if(Tee-Kind='G'Tre-ind='g)TreeKidB;else Treeid=G;printf(”nt个人信息修改成功”);bea;cse B:f(e>aentNULL) /判断就是不就是头节点prit(nt就是这个家谱图里最顶端得人没有父母信息!”,ne); break;if(MATEFA=) /判断就是不就是入赘或加入此间得i(eKidGTree>Kn='g) prntf("n她就是嫁入此间得所以父母信息不在家谱内包括");elseprintf(”nnt她就是入赘此间得所以父母信息不在家谱内包括”);break;f(Tree-Parent>ind='G'|re>retKind='g)trcy(Paet0,"母亲");rcpy(Prnt1,”父亲");lse strcpy(Par0,"父亲");rcpy(Pren1,母亲”);pintf(”nt请输入%s要修改得姓名:如果不需要修改就输入0然后按Ete键继续nt”,Parent);scanf("s,name);f(strcmp(na,"")!=0)stpy(TeParen>Ne,nme);pintf(nnt请输入s要修改得姓名:如果不需要修改就输入然后按Ener键继续t",Parn);scan(”s",name);if(srcmp(name,"0”)!=0)strcp(TrePart>NextNode0-Name,name); pntf(”nnt-父母得信息修改成功-");brek;ce C':NwNoderee-Pret;if(NewN=ULL) /判断就是不就是头节点prinf(就是这个家谱图里最顶端得人没有兄弟姐妹信息!",me); brea; (MAELAG=1) /判断就是不就是入赘或加入此间得i(Tre>Kd=GTree>Kidg') prinf("nn她就是嫁入此间得所以兄弟姐妹信息不在家谱内包括);elserinf(”nn她就是入赘此间得所以兄弟姐妹信息不在家谱内包括);bak;f(Nwode=1)print("nn没有兄弟姐妹”);reak;eseor(i1;iNewNode>Num;+)f(NewNodNextNdeiae!reName)printf("nn请输入%s修改得姓名:如果不需要修改就输入0'然后按Eer键继续nt",Newoe->etNdei>Name);scan(”,nae);if(trmp(name,"0")!0)rcpy(ewNoe-NextNoam,ne);rint("nt就是否要修改性别:如果需要就输入'1'不需要修改就输入0然后按Ener键继续nt);scaf(”d”,flg);if (flg=1)f(NewNodeNtNodeiKind'G'wNde-NextNdend='g')NewNde-NxtNodeiKind=B;s Newod-NexodKind='G'; intf(nt-兄弟姐妹得信息修改成功-");eak;cas 'D:if(Tre-u=0)pritf(nt至今还没有子女);break;if (Tee-Parent !NUL)f (strm(Treame,Te-Parnt-NexNd0>Na)=0) /如果她就是入赘或者就是嫁入得就需用配偶节点完成修改Tree=Tree-Parnt;fo(i=1;i=Tree-Num;i+)pnf(nt请输入%修改得姓名:如果不需要修改就输入0然后按Ente键继续n",ree>NexNoi>Nam);scnf(”s”,ame);if(strp(n,0)!=0)strcpy(Tre->NxNodeNae,n);rinf("nnt就是否要修改性别:如果需要就输入1不需要修改就输入'0然后按Enter键继续nt");canf(%d,flag);if(a=1)if(Tree-NextNdeiind=reeNetNoi-id=g)reeNxtNodeiKnd=B;elsere-NeNoeKnd='G; printf(”n-子女得信息修改成功-");break;cse E:i(reParent!=L)i (TNextNoe0=NL&&strmp(Teeae,Tree->Prent-Nextde0Nme)!=)printf("nt至今还没有配偶);reak;i (p(ee-ame,TParet->Nexoe0Nam)=0)prit(”nt请输入%s修改得姓名:如果不需要修改就输入0然后按Enter键继续nt,Tee-Parent>Nam);cf(”%s,name);if(trcmp(nme,”)!=0)srcpy(ree>Pren-Name,name);elseprint(”nnt请输入%修改得姓名:如果不需要修改就输入0然后按Eer键继续nt",Tree-exNod0ae);scf(”,name);i(strcmp(name,”0)!=0)strpy(TeeNetNde0->Name,name);eleif(T>NextNde0=NULL)print(nnt至今还没有配偶");elepnt("nnt请输入s修改得姓名:如果不需要修改就输入然后按Entr键继续n”,Teextode0>Name);scnf(”s”,nam);(strc(nae,0")!=0)strc(TreextNe0->Nme,name); pint("nt-配偶得信息修改成功-”);brek;case'F: printf("nnt-本项服务到此结束-”);break; cae n': break;daut: prntf(”nnt-对不起!您得选择不在服务范围之内!-");rntf(nt-请您再次选择所需得服务项!-);rintf(”nt-谢谢合作!-nt");brek;if (c=Fc=f)brek; printf(n-请按Enter键继续操作-);getc();gtcar();/输出主菜单void ainMee(reeNoe Tre)char ;char name2;whie(1)sstem(”cs");printf(”t"); rintf("nnt -*-请选择您得操作-*");prinf(nt-A:输入家谱信息建立多叉树-");pintf("n-:在家族中查找某人并输出她或(她)得相应信息-”);tf(nt-C:添加新得成员-");prinf(n-D:输出整个家谱信息-);prinf(”nt-E:修改某个人得信息-");pritf("nt-:退出整个程序-n”);cgetcr();swtc(c)case ':TeNde ewNode;NewNe=(reeode )allo(so(reNo));printf("nt请输入姓名:nt”);scanf("%s,Tree>Name);print(nt请输入性别女G男B:nt);etchar();scanf(",&(Tree>Kind);Tree->Part=NewNo;Treearent=NULL;Createe(Tee);rintf("nt-家谱图已经建立成功-nn");pritf("nnt-请按Ente键继续操作-”);gtcar();break;cse'B':if(strcmp(TreName,"")=0)prnf(”nt家谱图得多叉树尚未建立请先建立树n”);geha();rk;pinf("nt请输入您要查找得人得姓名:");scaf("s",nme);utPuMssg(eacTre(Tee,name,20),name,20); print("nnt-*-*-*-*-*-*-nt”);getchr();break;case':i(strc(Tee-a,"0”)=0)pintf("n家谱图得多叉树尚未建立请先建立树n”);gehar();brek;Addew(ree);getchr();bk;case ':if(tmp(Teeam,"")=0)rinf(nt家谱图得多叉树尚未建立请先建立树n);getchr();beak;pintf("t整个家谱得主要信息如下:”);uPtl(Tee);getr();break;caseE:if(strmp(Tree->Name,”0”)=0)prntf("nt家谱图得多叉树尚未建立请先建立树n");char();beak;Chage(Tre);gtchar();break;caseF: nt("nn-本次服务到此结束-);print(nt-欢迎下次使用-);int(”-谢谢-n”);ba;cae n: break;default: pit(”nnt-对不起!您得选择不在服务范围之内!-");prt(”-请您再次选择所需得服务项!-);rif(nt-谢谢合作!-t);getchar();beak;if (=F'|c=')break;gehar();/创建树vid CreatTr(TreeNo *Node)iti;TeNod NewNode;Newode=(TreeNode )aloc(sizof(TreeNode)); NodeextNod0=eN;N>NextNo=NUL;/deant =NUL;prit("nt请输入得子女得数目:nt”,ode-Name); scaf("d”,&(Nde->Num));printf(nt请输入%s得配偶得姓名:nt”,Nod-Nme);scf(s”,NewNodeNam);if(Nodu)=0&strm(eNoe>Nae,”)=)rur ;f (oe>Kind='G|Node-in=')ewNo>KindB;els NewNode-Kind=G;ewNde->um=0;de-NexNode0=NLL;Noe->NextNode0=NewNode;Node>NextNode0Parntoe;fo(=1;i=Node->Num;i+)Node(Treede )aloc(sieof(TreNe));prif(”nt请输入%s得第%d子女得名字",Nod>Ne,);canf(”%s,NewNdeNm);pif(”t请输入s得第%d子女得性别女G男:nt”,Node>ame,i);etcar();scan("c,&NewodeKid);NewNoeNum=0;NewNdePaet=Nde;Node-NxtNdei=Newod;CreatTee(Node>NexNodi);/遍历并输出树中得内容i OutPul(TreeNod *Tre)t i, flag0;rt(-*-*-*-*-*-*-*-");printf(”nt姓名:s 性别:,reeme);if (T-Ki='|Tre>Kind=g)flag=1;printf("女”);elseinf("男");if (!(TrextNoe0)) printf(”nt至今没有配偶与子女n”);reurn; f(lg=1)pintf("nt丈夫姓名:s",TreeextNod0>Nm);eseprintf(t妻子 姓名:s”,Tr>Nextode0Name);for(=1;i<=TreNum;+)prtf("nt第d个子女得姓名:s性别:",,Tr>NextoName,Tree->NextNode>i);if (TeeNxtNodK=G|TreextNd-Kind='g)intf(”女);e prntf(”男");pint(nt);or(i=1;<=ree-um;+)uPuA(Tree>xtNodi);在树中经过遍历查找某个人TreNode SearchTree(eNo *Tree,chr nam,intlegth)int i;TreeNde *Nwode; if(srcmp(Treeame,nae)=0)if(lengt=0) MTEFAG=;else MTEFLAG=;reur Te;f(ree->NxtNde0=LL)reurn NUL;f(i=0;i=Tre-um;i+)if (i=0) NewNodeearchTree(TreNetde,nam,0);ese NewNode=SearchTree(re>exNodi,nme,0);i (NewNe!=NLL) reuewde; un NL;/输出已经查找到得人得信息vdOtPutMesae(TreNod Tree,ha name,int lngth) int fla=0,i;TreNode *NwNode; rntf("nt*-*-*-*-);if(Tre=NU)pintf(”nt*该家谱图中没有%s这个人得信息请确认就是否输入错误*n",name); reur;rintf("nnt您所要找得人已经找到信息如下所示:”);rn(

    注意事项

    本文(数据结构家谱管理系统.doc)为本站会员(可****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开