ImageVerifierCode 换一换
格式:DOC , 页数:17 ,大小:60.54KB ,
资源ID:4126600      下载积分:8 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(家谱管理系统--数据结构大作业.doc)为本站上传会员【人****来】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

家谱管理系统--数据结构大作业.doc

1、/* 家谱管理系统 任务:实现具有下列功能的家谱管理系统功能要求:1). 输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容:姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡),也可附加其它信息、但不是必需的。2). 实现数据的存盘和读盘。3)。 以图形方式显示家谱。4). 显示第n 代所有人的信息.5)。 按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。6)。 按照出生日期查询成员名单。7)。 输入两人姓名,确定其关系。8). 某成员添加孩子。9)。 删除某成员(若其还有后代,则一并删除)。10).修改某成员信息.11).按出生日期对家谱中所有人排序。12

2、).打开一家谱时,提示当天生日的健在成员.要求:建立至少30个成员的数据,以较为直观的方式显示结果,并提供文稿形式以便检查。界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求相关数据要存储在数据文件中。测试数据:要求使用1、全部合法数据;2、局部非法数据.进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;*/includeinclude#includestring.h#includesex = sextemp; /printf(”%s s s d %dn”,nametemp,birthday

3、temp,addresstemp,marriagetemp,livetemp); if(!livetemp) fscanf(in,”s”,livemassagetemp); /printf(sn”,livemassagetemp); if(!T-live) strcpy(Tlivemassage,livemassagetemp); fscanf(in,”c”,&ch); CreatBiTree(T-lc,in); CreatBiTree(T-rc,in); void PrintInfo(BiTree T) printf(”%10s出生于:-10s10s,Tname,Tbirthday,T-ad

4、dress); if(Tmarriage) printf(t已婚”); if(!T-marriage) printf(t未婚”); if(Tsex) printf(”t男); if(!Tsex) printf(”t女”); if(Tlive) printf(”t健在n); if(!Tlive) printf(t去世于:sn”,Tlivemassage);void PreOrderTraverse_recursion(BiTree T)/递归 先序遍历(检查建树是否正确)/printf(PreOrderTraverse_recursionn);if(T)/printf(”-10s出生于:%10s

5、10s,Tname,Tbirthday,Taddress); if(Tmarriage) printf(”t已婚”); if(!T-marriage) printf(”t未婚); if(T-sex) printf(t男”); if(!Tsex) printf(t女”); if(Tlive) printf(”t健在n”); if(!Tlive) printf(t去世于:%sn”,Tlivemassage);/ PrintInfo(T);PreOrderTraverse_recursion(T-lc);PreOrderTraverse_recursion(Trc);void ShowFamilyT

6、ree(BiTree T)/以图形的方式显示家谱 int i,lev; BiTree p; p = T; if(T) lev = Tlevel; for(i=0; ilc; printf( %5sn”,pname); if(p-rc) p = prc; ShowFamilyTree(p); else printf(” (未婚)n); if(T-rc) p = T-rc; ShowFamilyTree(p); void ShowNth(BiTree T)/显示第n代所有人的信息 if(T) if(Tlevel = Nth) PrintInfo(T); /printf(%-10s%-10s10s5

7、d5d5dn”,Tname,Tbirthday,Taddress,Tmarriage,Tlive,T-sex); count+; ShowNth(Tlc);ShowNth(T-rc); void SearchByName(BiTree T)/按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。不能查询祖先信息 if(T)if(Tlc) if(Tlcrc) temp = T-lcrc; while(temp) if(strcmp(temp-name,searchname) = 0) count+; printf(”n此人的信息为: n); PrintInfo(temp); /printf

8、(10s-10s%-10s%5d%5d5dnn”,tempname,tempbirthday,temp-address,tempmarriage,templive,temp-sex); printf(”此人父母的信息为: n”); PrintInfo(T); PrintInfo(T-lc); /printf(”10s10s%10s%5d5d5dn”,T-name,T-birthday,T-address,Tmarriage,T-live,Tsex); /printf(10s-10s%10s5d%5d5dnn”,Tlcname,Tlcbirthday,T-lcaddress,T-lc-marri

9、age,Tlc-live,T-lc-sex); if(!temp-livemassage) printf(”此人还没有妻室n); else printf(此人妻子的信息为: n”); PrintInfo(temp-lc); /printf(”10s%-10s10s5d5d5dnn,temp-lc-name,templc-birthday,temp-lcaddress,templcmarriage,temp-lc-live,templcsex); if(templcrc) printf(”此人孩子的信息为: n”); temp = templcrc; while(temp) PrintInfo(

10、temp); /printf(”10s%10s-10s5d5d%5dn”,tempname,temp-birthday,tempaddress,temp-marriage,templive,temp-sex); temp = temprc; return; else temp = temp-rc; SearchByName(Tlc);SearchByName(T-rc);void SearchByBirthday(BiTree T)/按照出生日期查询成员名单 if(T) if(strcmp(Tbirthday,searchdata) = 0) PrintInfo(T); /printf(10s

11、%10s%-10s%5d5d5dn,Tname,Tbirthday,Taddress,Tmarriage,Tlive,Tsex); count+; SearchByBirthday(Tlc);SearchByBirthday(Trc); void AddChild(BiTree &T)/某成员添加孩子 if(T) if(strcmp(Tname,searchname) = 0) count+; if(!T-lc) printf(该成员还没有结婚,不能添加孩子n”); return; if(!Tsex) printf(不能为该家谱中的女性添加孩子n”); return; else temp =

12、(BiTree)malloc(sizeof(BiTNode)); printf(”请输入添加孩子的姓名n); scanf(”%s,tempname); printf(”请输入添加孩子的出生年月(格式形如: 2010-11)n); scanf(”%s”,tempbirthday); printf(”请输入添加孩子的家庭住址n”); scanf(s”,tempaddress); printf(请输入添加孩子的婚姻状况 0/1 (0表示未婚,1表示已婚)n”); scanf(d,tempmarriage); printf(”请输入添加孩子的在世情况 0/1 (0表示去世,1表示在世)n”); sca

13、nf(%d,&temp-live); if(!templive) printf(请输入添加孩子的去世时间(格式形如: 2010-1-1)n”); scanf(%s”,temp-livemassage); printf(请输入添加孩子的性别 0/1 (0表示女,1表示男)n”); scanf(d,&temp-sex); templevel = Tlevel+1; temprc = T-lc-rc; temp-lc = NULL; Tlcrc = temp; printf(”孩子添加成功n”); return; AddChild(Tlc);AddChild(Trc);void AddWife(Bi

14、Tree T)/某成员添加妻子 if(T) if(strcmp(Tname,searchname) = 0) count+; if(Tlc) printf(该成员已有妻子,可以通过修改的方式替换该妻子n); return; else temp = (BiTree)malloc(sizeof(BiTNode)); printf(请输入添加妻子的姓名n); scanf(”s”,temp-name); printf(”请输入添加妻子的出生年月(格式形如: 201011)n”); scanf(”s,temp-birthday); printf(请输入添加妻子的家庭住址n”); scanf(s,temp

15、address); printf(请输入添加妻子的婚姻状况0/1 (0表示未婚,1表示已婚)n); scanf(”d”,tempmarriage); printf(”请输入添加妻子的在世情况(0表示去世,1表示在世)n); scanf(%d,templive); if(!templive) printf(”请输入添加妻子的去世时间(格式形如: 20101-1)n”); scanf(”%s”,templivemassage); printf(”请输入添加妻子的性别 0/1 (0表示女,1表示男)n); scanf(”%d”,&temp-sex); temp-level = T-level; te

16、mp-lc = NULL; temp-rc = NULL; Tlc = temp; Tmarriage = true; printf(妻子添加成功n); return; AddWife(T-lc);AddWife(Trc);void DeleteByName(BiTree T)/删除某成员(若其还有后代,则一并删除)/printf(”PreOrderTraverse_recursionn);if(T)if(strcmp(Tname,searchname) = 0) count+; T = NULL; return; /printf(%10s%-10s-10s%5d%5d%5dn,Tname,T

17、-birthday,T-address,Tmarriage,T-live,Tsex);DeleteByName(T-lc);DeleteByName(T-rc);void FixLevel(BiTree T) if(T) if(strcmp(Tname,searchname) = 0) count = Tlevel; FixLevel(T-lc); FixLevel(T-rc); void FixRelation(BiTree T)/输入两人姓名,确定其关系 int levo,levt; char levone50,levtwo50; printf(请输入第一个人的姓名n”); scanf(”

18、s,searchname); strcpy(levone,searchname); FixLevel(T); levo = count; if(levo = 1) printf(家谱无此人,请从新进入n”); return; printf(”请输入第二个人的姓名n”); scanf(”%s”,searchname); strcpy(levtwo,searchname); FixLevel(T); levt = count; if(levt = 1) printf(家谱无此人n”); return; if(levo levt) printf(”%s 比 s 大 d 辈n”,levone,levt

19、wo,levt-levo); else if(levo levt) printf(s 比 %s 大 %d 辈n,levtwo,levone,levolevt); else if(levo = levt) printf(”s 和 %s 平辈n”,levone,levtwo);void ShowAmend() printf(1。修改姓名n”); printf(2。修改出生年月n”); printf(3.修改家庭住址n); printf(”4。修改婚姻状况n”); printf(”5。修改在世情况n); printf(6.修改性别n”); printf(”7.返回上一级n”); printf(”请输

20、入选项(1-7): ”);void DoAmend(BiTree T) while(1) system(cls”); ShowAmend(); scanf(”d”,choice); switch(choice) case 1: printf(”请输入修改后的姓名: ”); scanf(s,T-name); break; case 2: printf(”请输入修改后的出生年月: ); scanf(s,Tbirthday); break; case 3: printf(”请输入修改后的住址: ); scanf(%s,Taddress); break; case 4: printf(请输入修改后的婚

21、姻状况: ); scanf(”d,&Tmarriage); break; case 5: printf(”请输入修改后的在世情况: ”); scanf(”d”,&T-live); if(!T-live) printf(请输入本人的过世时间: ”); scanf(”s,Tlivemassage); break; case 6: printf(请输入修改后的性别(1表示男,0表示女): ); scanf(d”,T-sex); case 7: return; default: printf(输入非法,请重新输入n); break; void AmendInfo(BiTree &T)/修改某成员信息。

22、 if(T) if(strcmp(Tname,searchname) = 0) count+; DoAmend(T); return; AmendInfo(T-lc);AmendInfo(Trc); void Sequence(BiTree T)/按出生日期对家谱中所有人排序.if(T) BiTNodeList temp; BiTNodeList p; temp = (BiTNodeList *)malloc(sizeof(BiTNodeList); tempdata = T; /p = List; /while(p) for(p=List; (p-next!=NULL)(strcmp(p-n

23、ext-databirthday,tempdatabirthday)0); p=pnext); tempnext = pnext; p-next = temp;Sequence(Tlc);Sequence(Trc);void PrintSequence(BiTree T) BiTNodeList p; p = List; Sequence(T); printf(tttt排序结果nn); PrintLine(); printf(n”); while(p-next != NULL) printf( ”); PrintInfo(pnextdata); /printf(”t10s-10s-10s%5d

24、5d5dn”,p-nextdata-name,pnext-data-birthday,pnextdata-address,pnextdatamarriage,p-next-datalive,pnextdatasex); p = p-next; printf(”n); PrintLine();void LocateTime() time_t t=time(0); strftime(birthdaytemp,64,Y-md”,localtime(t);void BirthToday(BiTree T)/打开一家谱时,提示当天生日的健在成员。if(T)if(strcmp(Tbirthday,birthdaytemp) = 0) count+; printf(”sn”,T-name); BirthToday(Tlc);BirthToday(Trc); void ShowMenu() PrintBat(); printf(”n”); PrintLine(); printf(”n”); printf(”ttt欢迎进入家谱管理系统nn”); printf(” 1。显示今天生日成员 2.显示家谱n”); printf( 3。显示第n代所有人的信息 4.按姓名查找成员n”); printf( 5。按出生日期查找成员 6。为成员添加孩子n”);

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服