家谱管理系统数据结构_第1页
家谱管理系统数据结构_第2页
家谱管理系统数据结构_第3页
家谱管理系统数据结构_第4页
家谱管理系统数据结构_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#defineMAXS100#defineElemtypechartypedefstructBiTNodeintmark;intlevel;charname50;charbirthday50;charaddressMAXS;Elemtypedata;structBiTNode*lc,*rc;BiTNode,*BiTree;charnametemp50;姓名charbirthdaytemp50;/生日chara

2、ddresstempMAXS;/地址charch;intleveltemp;intNth;charsearchdata50;charsearchname50;intcount;BiTreetemp;BiTreeCreateBiTree(FILE*fp);voidPrintInfo(BiTreeT);voidPreOrderTS(BiTreeT);voidShowNth(BiTreeT);voidSearchByName(BiTreeT);voidSearchByBirthday(BiTreeT);voidAddChild(BiTreeT);voidDeleteByName(BiTreeT);v

3、oidsearchmenu();voidmenu();voidinsystem();voidclosefile();#include"my.h"voidSearchByName(BiTreeT)/按照姓名查询,输出成员信息if(T->lc->rc)temp=T->lc->rc;while(temp)if(strcmp(temp->name,searchname)=0)count+;printf("n此人的信息为:n");Printlnfo(temp);printf("此人父兄的信息为:n");Printl

4、nfo(T);if(temp->lc->rc)printf("此人孩子的信息为:n");temp=temp->lc->rc;while(temp)Printlnfo(temp);temp=temp->rc;return;elsetemp=temp->rc;SearchByName(T->lc);SearchByName(T->rc);elseprintf("请先建立家庭关系n");return;voidSearchByBirthday(BiTreeT)/按照出生日期查询成员名单if(T)if(strcmp(

5、T->birthday,searchdata)=0)Printlnfo(T);count+;voidAddChild(BiTreeT)/某成员添加孩子if(T)if(strcmp(T->name,searchname)=0)count+;temp=(BiTree)malloc(sizeof(BiTNode);printf("请输入添加孩子的姓名:n");scanf("%s",temp->name);printf("请输入添加孩子的出生年月:(格式形如:2010-1-1)n");scanf("%s"

6、,temp->birthday);printf("请输入添加孩子的家庭住址:n");scanf("%s",temp->address);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);elseprintf("请先建立家庭关系n");retu

7、rn;voidDeleteByName(BiTreeT)/删除某成员(若其还有后代,则一并删除)if(T)if(strcmp(T->name,searchname)=0)count+;T=NULL;return;DeleteByName(T->lc);DeleteByName(T->rc);BiTreeCreateBiTree(FILE*fp)if(!feof(fp)BiTreeT;T=(BiTree)malloc(sizeof(BiTNode);fscanf(fp,"%s%s%sn",nametemp,birthdaytemp,addresstemp);

8、fscanf(fp,"%d",&leveltemp);if(strcmp(nametemp,"n")=0)&&(strcmp(birthdaytemp,"n")=0)&&(strcmp(addresstemp,"n")=0)T=NULL;returnT;elsestrcpy(T->name,nametemp);strcpy(T->birthday,birthdaytemp);strcpy(T->address,addresstemp);T->level

9、=leveltemp+1;printf("读取成功n");T->lc=CreateBiTree(fp);T->rc=CreateBiTree(fp);returnT;elsereturnNULL;#include"my.h"voidmain()BiTreeT;intchoice;FILE*fp;T=NULL;需操作:");-nn");择:");T=CreateBiTree(fp);父母的姓名:n");n");count=0;printf("请输入要删除成员的姓名:");sc

10、anf("%s",searchname);DeleteByName(T);if(count=0)printf("没有这个人n");fp=fopen("F:family.txt","r");insystem();while(1)system("cls");menu();printf("请根据菜单进行选择所while(scanf("%d”,&choice)!=1)fflush(stdin);printf("n-输入错误printf("请重新输入正确选f

11、flush(stdin);switch(choice)case 1:system("pause");break;case 2:count=0;printf("请输入要添加孩子scanf("%s",searchname);AddChild(T);if(count=0)printf("没有这个人system("pause");break;case 3:system("pause");break;case 4:searchmenu();printf("请输入选择:n");syste

12、m("pause");break;case 5:PreOrderTS(T);system("pause");break;case 6:closefile();case 7:printf("请输入需要查询第几代人:");count=0;scanf("%d",&Nth);ShowNth(T);if(count=0)printf("第d代尚未有人。n",Nth);system("pause");break;case 8:printf("请输入要查询人的姓名:&qu

13、ot;);scanf("%s",searchname);if(strcmp(T->name,searchname)=0)printf("此人为家谱的祖先,其信息为:n");printf("%-10s%-10s%-10sn",T->name,T->birthday,T->address);printf("他兄弟的信息为:n");printf("%-10s%-10s%-10s%n”,T->lc->name,T->lc->birthday,T->lc->

14、;address);temp=T->lc;if(temp->rc)printf("他孩子的信息为:n");temp=temp->rc;while(temp)printf("%-10s%-10s%-10sn",temp->name,temp->birthday,temp->address);temp=temp->rc;elsecount=0;SearchByName(T);if(count=0)printf("对不起,不能检测这个人的信息n");system("pause")

15、;break;case 9:printf("请输入要查询人的生日:");count=0;scanf("%s",searchdata);SearchByBirthday(T);if(count=0)printf("%s没有人过生日。n",searchdata);system("pause");break;default:printf("n-输入错误一n");break;printf("nn");printf("按任意键继续!");getch();#inclu

16、de"my.h"voidinsystem()intflag1,flag2;charname20="student"charpassword10="111111”;charperson20;chara10;printf("tt*欢迎进入家谱管理系统!*nn");printf("ttt用户登录nn");printf("tttt用户名:");gets(person);flag1=strcmp(person,name);printf("tttt密码:");gets(a);f

17、lag2=strcmp(password,a);功!nn");密码错误! nn");您无权使用!nn");if(flag1=0&&flag2=0)printf("tttt登录成elseprintf("ttt用户名或printf("tttexit(0);#include"my.hvoidmenu()printf("*nn");*欢迎使用家谱管理系统*printf("tt1建立家族关系(并保存)n");printf("tt2添加家族成员n");print

18、f("tt3删除家族成员n");printf("tt4查询家族成员n");printf("tt5显示家族关系n");printf("tt6>退出系统n");*n");printf("tt*voidsearchmenu()printf("tt7>按姓名查询n");printf("tt8按出生日期查询n");voidPrintInfo(BiTreeT)printf("%10s%10s%10sn",T->name,T->b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论