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

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3024619.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、局部非法数据。进行程序测试,以确保程序稳定。测试数据及测试结果请在上交资料中写明;*/#include#include#include#include#includemap.h#define MAXN 100#define MAXMEM 100#define Elemtype char=/树ty

3、pedef struct BiTNodeint mark;/标识 int level; char name50;/姓名 char birthday50;/生日 char addressMAXN;/住址 bool marriage;/婚否(true表示结婚,false表示没结婚) bool live;/建在(true表示活着,false表示过世) bool sex;/性别(true表示男,false表示女) char livemassage50;/死亡日期(假如其已经死亡) Elemtype data;/ struct BiTNode *lc,*rc; BiTNode,*BiTree;/树相关操

4、作char nametemp50;/姓名char birthdaytemp50;/生日char addresstempMAXN;/住址bool marriagetemp;/婚否(true表示结婚,false表示没结婚)bool livetemp;/建在(true表示或,false表示过世)bool sextemp;char livemassagetempMAXN;/死亡日期(假如其已经死亡)char ch;/额外使用int leveltemp;/人代数int Nth;/显示第n代人时要用char searchdata50;char searchname50;int count;/计数int c

5、hoice;/多种选择int use;BiTree temp;struct BiTNodeList BiTree data; BiTNodeList *next;BiTNodeList *List;/-void CreatBiTree(BiTree &T,FILE *in)/建立双链二叉树 fscanf(in,%c,&ch); /printf(%cn,ch); if(ch = ) T = NULL; fscanf(in,%c,&ch); else T = (BiTree)malloc(sizeof(BiTNode); /fscanf(in,%s%s%s%d%d,nametemp,birthda

6、ytemp,addresstemp,&marriagetemp,&livetemp); fscanf(in,%s,nametemp); strcpy(T-name,nametemp); fscanf(in,%s,birthdaytemp); strcpy(T-birthday,birthdaytemp); fscanf(in,%s,addresstemp); strcpy(T-address,addresstemp); fscanf(in,%d%d%d%d,&marriagetemp,&livetemp,&leveltemp,&sextemp); T-marriage = marriagete

7、mp; T-live = livetemp; T-level = leveltemp; T-sex = sextemp; /printf(%s %s %s %d %dn,nametemp,birthdaytemp,addresstemp,marriagetemp,livetemp); if(!livetemp) fscanf(in,%s,livemassagetemp); /printf(%sn,livemassagetemp); if(!T-live) strcpy(T-livemassage,livemassagetemp); fscanf(in,%c,&ch); CreatBiTree(

8、T-lc,in); CreatBiTree(T-rc,in); void PrintInfo(BiTree T) printf(%-10s出生于:%-10s%-10s,T-name,T-birthday,T-address); if(T-marriage) printf(t已婚); if(!T-marriage) printf(t未婚); if(T-sex) printf(t男); if(!T-sex) printf(t女); if(T-live) printf(t健在n); if(!T-live) printf(t逝世于:%sn,T-livemassage);void PreOrderTra

9、verse_recursion(BiTree T)/递归 先序遍历(检验建树是否正确)/printf(PreOrderTraverse_recursionn);if(T)/*printf(%-10s出生于:%-10s%-10s,T-name,T-birthday,T-address); if(T-marriage) printf(t已婚); if(!T-marriage) printf(t未婚); if(T-sex) printf(t男); if(!T-sex) printf(t女); if(T-live) printf(t健在n); if(!T-live) printf(t逝世于:%sn,T

10、-livemassage);*/ PrintInfo(T);PreOrderTraverse_recursion(T-lc);PreOrderTraverse_recursion(T-rc); void ShowFamilyTree(BiTree T)/以图形方法显示家谱 int i,lev; BiTree p; p = T; if(T) lev = T-level; for(i=0; iname); if(p-lc) p = T-lc; printf( %5s%n,p-name); if(p-rc) p = p-rc; ShowFamilyTree(p); else printf( (未婚)

11、n); if(T-rc) p = T-rc; ShowFamilyTree(p); void ShowNth(BiTree T)/显示第n代全部些人信息 if(T) if(T-level = Nth) PrintInfo(T); /printf(%-10s%-10s%-10s%5d%5d%5dn,T-name,T-birthday,T-address,T-marriage,T-live,T-sex); count+; ShowNth(T-lc);ShowNth(T-rc); void SearchByName(BiTree T)/根据姓名查询,输出组员信息(包含其本人、父亲、孩子信息)。不能查

12、询祖先信息 if(T)if(T-lc) if(T-lc-rc) temp = T-lc-rc; while(temp) if(strcmp(temp-name,searchname) = 0) count+; printf(n此人信息为: n); PrintInfo(temp); /printf(%-10s%-10s%-10s%5d%5d%5dnn,temp-name,temp-birthday,temp-address,temp-marriage,temp-live,temp-sex); printf(此人父母信息为: n); PrintInfo(T); PrintInfo(T-lc); /

13、printf(%-10s%-10s%-10s%5d%5d%5dn,T-name,T-birthday,T-address,T-marriage,T-live,T-sex); /printf(%-10s%-10s%-10s%5d%5d%5dnn,T-lc-name,T-lc-birthday,T-lc-address,T-lc-marriage,T-lc-live,T-lc-sex); if(!temp-livemassage) printf(此人还没有妻室n); else printf(此人妻子信息为: n); PrintInfo(temp-lc); /printf(%-10s%-10s%-1

14、0s%5d%5d%5dnn,temp-lc-name,temp-lc-birthday,temp-lc-address,temp-lc-marriage,temp-lc-live,temp-lc-sex); if(temp-lc-rc) printf(此人孩子信息为: n); temp = temp-lc-rc; while(temp) PrintInfo(temp); /printf(%-10s%-10s%-10s%5d%5d%5dn,temp-name,temp-birthday,temp-address,temp-marriage,temp-live,temp-sex); temp =

15、temp-rc; return; else temp = temp-rc; SearchByName(T-lc);SearchByName(T-rc);void SearchByBirthday(BiTree T)/根据出生日期查询组员名单 if(T) if(strcmp(T-birthday,searchdata) = 0) PrintInfo(T); /printf(%-10s%-10s%-10s%5d%5d%5dn,T-name,T-birthday,T-address,T-marriage,T-live,T-sex); count+; SearchByBirthday(T-lc);Se

16、archByBirthday(T-rc); void AddChild(BiTree &T)/某组员添加孩子 if(T) if(strcmp(T-name,searchname) = 0) count+; if(!T-lc) printf(该组员还没有结婚,不能添加孩子n); return; if(!T-sex) printf(不能为该家谱中女性添加孩子n); return; else temp = (BiTree)malloc(sizeof(BiTNode); printf(请输入添加孩子姓名n); scanf(%s,temp-name); printf(请输入添加孩子出生年月(格式形如:

17、-1-1)n); scanf(%s,temp-birthday); printf(请输入添加孩子家庭住址n); scanf(%s,temp-address); printf(请输入添加孩子婚姻情况 0/1 (0表示未婚,1表示已婚)n); scanf(%d,&temp-marriage); printf(请输入添加孩子在世情况 0/1 (0表示逝世,1表示在世)n); scanf(%d,&temp-live); if(!temp-live) printf(请输入添加孩子逝世时间(格式形如: -1-1)n); scanf(%s,temp-livemassage); printf(请输入添加孩子性

18、别 0/1 (0表示女,1表示男)n); scanf(%d,&temp-sex); temp-level = T-level+1; temp-rc = T-lc-rc; temp-lc = NULL; T-lc-rc = temp; printf(孩子添加成功n); return; AddChild(T-lc);AddChild(T-rc);void AddWife(BiTree &T)/某组员添加妻子 if(T) if(strcmp(T-name,searchname) = 0) count+; if(T-lc) printf(该组员已经有妻子,能够经过修改方法替换该妻子n); return

19、; else temp = (BiTree)malloc(sizeof(BiTNode); printf(请输入添加妻子姓名n); scanf(%s,temp-name); printf(请输入添加妻子出生年月(格式形如: -1-1)n); scanf(%s,temp-birthday); printf(请输入添加妻子家庭住址n); scanf(%s,temp-address); printf(请输入添加妻子婚姻情况0/1 (0表示未婚,1表示已婚)n); scanf(%d,&temp-marriage); printf(请输入添加妻子在世情况(0表示逝世,1表示在世)n); scanf(%d

20、,&temp-live); if(!temp-live) printf(请输入添加妻子逝世时间(格式形如: -1-1)n); scanf(%s,temp-livemassage); printf(请输入添加妻子性别 0/1 (0表示女,1表示男)n); scanf(%d,&temp-sex); temp-level = T-level; temp-lc = NULL; temp-rc = NULL; T-lc = temp; T-marriage = true; printf(妻子添加成功n); return; AddWife(T-lc);AddWife(T-rc);void DeleteBy

21、Name(BiTree &T)/删除某组员(若其还有后代,则一并删除)/printf(PreOrderTraverse_recursionn);if(T)if(strcmp(T-name,searchname) = 0) count+; T = NULL; return; /printf(%-10s%-10s%-10s%5d%5d%5dn,T-name,T-birthday,T-address,T-marriage,T-live,T-sex);DeleteByName(T-lc);DeleteByName(T-rc);void FixLevel(BiTree T) if(T) if(strcm

22、p(T-name,searchname) = 0) count = T-level; FixLevel(T-lc); FixLevel(T-rc); void FixRelation(BiTree T)/输入两人姓名,确定其关系 int levo,levt; char levone50,levtwo50; printf(请输入第一个人姓名n); scanf(%s,searchname); strcpy(levone,searchname); FixLevel(T); levo = count; if(levo = -1) printf(家谱无此人,请从新进入n); return; printf

23、(请输入第二个人姓名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,levtwo,levone,levo-levt); else if(levo = levt) printf(%s 和 %s 平辈n,levone,levtwo);void ShowAmend() printf(1.修改姓名n); printf(2.修改出生年月n); p

24、rintf(3.修改家庭住址n); printf(4.修改婚姻情况n); printf(5.修改在世情况n); printf(6.修改性别n); printf(7.返回上一级n); printf(请输入选项(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,T-b

25、irthday); break; case 3: printf(请输入修改后住址: ); scanf(%s,T-address); break; case 4: printf(请输入修改后婚姻情况: ); scanf(%d,&T-marriage); break; case 5: printf(请输入修改后在世情况: ); scanf(%d,&T-live); if(!T-live) printf(请输入本人过世时间: ); scanf(%s,T-livemassage); break; case 6: printf(请输入修改后性别(1表示男,0表示女): ); scanf(%d,&T-se

26、x); case 7: return; default: printf(输入非法,请重新输入n); break; void AmendInfo(BiTree &T)/修改某组员信息。 if(T) if(strcmp(T-name,searchname) = 0) count+; DoAmend(T); return; AmendInfo(T-lc);AmendInfo(T-rc); void Sequence(BiTree T)/按出生日期对家谱中全部些人排序。if(T) BiTNodeList *temp; BiTNodeList *p; temp = (BiTNodeList *)mall

27、oc(sizeof(BiTNodeList); temp-data = T; /p = List; /while(p-) for(p=List; (p-next!=NULL)&(strcmp(p-next-data-birthday,temp-data-birthday)next); temp-next = p-next; p-next = temp;Sequence(T-lc);Sequence(T-rc);void PrintSequence(BiTree T) BiTNodeList *p; p = List; Sequence(T); printf(tttt排序结果nn); Print

28、Line(); printf(n); while(p-next != NULL) printf( ); PrintInfo(p-next-data); /printf(t%-10s%-10s%-10s%5d%5d%5dn,p-next-data-name,p-next-data-birthday,p-next-data-address,p-next-data-marriage,p-next-data-live,p-next-data-sex); p = p-next; printf(n); PrintLine();void LocateTime() time_t t=time(0); strf

29、time(birthdaytemp,64,%Y-%m-%d,localtime(&t);void BirthToday(BiTree T)/打开一家谱时,提醒当日生日健在组员。if(T)if(strcmp(T-birthday,birthdaytemp) = 0) count+; printf(%sn,T-name); BirthToday(T-lc);BirthToday(T-rc); void ShowMenu() PrintBat(); printf(n); PrintLine(); printf(n); printf(ttt欢迎进入家谱管理系统nn); printf( 1.显示今天生日组员 2.显示家谱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 

客服