家谱树
这是实训时候完全自己写的,输入出生日期的时候一定按要求去输入(以防出错),下面是老师给我们的要求:
● 建立输入文件以存放最初家谱中各成员的信息。
● 成员的信息中均应包含以下内容:
● 姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡)
● 也可附加其它信息、但不是必需的。
● 能对修改后的家谱存盘以备以后使用。
● 能从文件中读出已有的家谱,形成树状关系。
● 家谱建立好之后,以图形方式显示出来。
● 显示第n代所有人的信息。
● 按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。
● 按照出生日期查询成员名单。
● 输入两人姓名,确定其关系。
● 某人添加孩子。
● 删除某人(若其还有后代,则一并删除)。
● 修改某人信息。
● 按出生日期对家谱中所有人排序。
● 打开一家谱时,若家谱中某人的生日在打开家谱的那一天,应给出提示。
下面是程序代码(用文本过滤一下粘贴到工程中就可用):
#include
#include
#include
#include
#define OK 1
#define FALSE 0
#define ERROR -1
typedef int status;
typedef struct {
int num;//孩子个数
char name[20];///姓名
char sex;//性别
//bool is_spouse;//配偶是否存在
char spouse[20];//配偶的姓名,性别取反
}DataType;
typedef struct TNode{
DataType data;//数据域
struct TNode* nextstr[10];//指针域,指向孩子
struct TNode* parent;//指针域,指向父亲
}PedTNode,*PedTree;//家谱树
void OutMenu();//输出家谱菜单
void CreateNewPedTreeNode(PedTree Tree);//创建孩子,递归调用
void CreatePedTree(PedTree Tree);//创建Pedigree树
void OutOneInfor(PedTree Tree);//递归调用实现输出整个家谱树
void OutAllPedTree(PedTree Tree);//输出整个家谱信息
//PedTree SearchPedTree(PedTree Tree,char Name[]);//在树中查找
bool SearchPedTree(PedTree Tree,char Name[],PedTree* DrawTree);//在树中查找
bool SearchPedTree2(PedTree Tree,char Name[],PedTree* DrawTree);//在树中查找配偶是否匹配void ShowMenu1(PedTree Tree);//显示要查找人的信息
//void ShowSelfInfor(PedTree Tree,char Name[],int Length);//显示个人信息
void ShowMenu2();//显示添加信息的菜单
int AddNewInfor(PedTree Tree);//添加新的家谱信息
void AddChildInfor(PedTree Tree);//添加子女的信息
void AddPouseInfor(PedTree Tree);//添加配偶信息
int ChangeInfor(PedTree Tree);//修改家谱信息
void ShowMenu3();//显示修改信息的菜单
int main()
{
char choice;
system("color 1f");
PedTNode TreeNode;
PedTree Tree=&TreeNode;
bool flag=false;//标志是否执行建立家谱
//PedTree Tree=NULL;
while(1)
{
fflush(stdin);//清除键盘缓冲区
system("cls");
OutMenu();
printf("\n");
printf("\t\t请您选择:");
choice=getchar();
switch(choice)
{
case'1':
if(!flag)
{
CreatePedTree(Tree);//创建Pedigree树
flag=true;
}
else
{
printf("\n\t\t家谱不能多次建立\n");
printf("\n\t\t按任意键继续:");
fflush(stdin);
getch();
}
break;
case'2':
if(flag)
ShowMenu1(Tree);//显示要查找人的信息
else
{
printf("\n\t\t家谱未建立,请您先建立家谱\n");
printf("\n\t\t按任意键继续:");
fflush(stdin);
getch();
}
break;
case'3':
if(flag)
AddNewInfor(Tree);//添加新的家谱信息
else
{
printf("\n\t\t家谱未建立,请您先建立家谱\n");
printf("\n\t\t按任意键继续:");
fflush(stdin);
getch();
}
break;
case'4':
if(flag)
OutAllPedTree(Tree);//输出整个家谱信息else
{
printf("\n\t\t家谱未建立,请您先建立家谱\n");
printf("\n\t\t按任意键继续:");
fflush(stdin);
getch();
}
break;
case'5':
if(flag)
ChangeInfor(Tree);//修改家谱信息
else
{
printf("\n\t\t家谱未建立,请您先建立家谱\n");
printf("\n\t\t按任意键继续:");
fflush(stdin);
getch();
}
break;
case'6':
return 0;
}
}
//return 0;
}
void OutMenu()
{
printf("\t\t* * * * * * * * * * * * * * * * * * * * * * *\n");
printf("\t\t* *\n");
printf("\t\t* 家谱信息管理菜单 *\n");
printf("\t\t* *\n");
printf("\t\t* 1:输入家谱信息 *\n");
printf("\t\t* 2:查找并输出某人信息 *\n");
printf("\t\t* 3:添加新的家庭成员 *\n");
printf("\t\t* 4:输出整个家谱信息 *\n");
printf("\t\t* 5:修改某个人的信息 *\n");
printf("\t\t* 6:退出整个程序 *\n");
printf("\t\t* *\n");
printf("\t\t* * * * * * * * * * * * * * * * * * * * * * *\n"); }
void CreatePedTree(PedTree Tree)//创建Pedigree树
{
fflush(stdin);//清除键盘缓冲区
system("cls");
/*Tree=(PedTree)malloc(sizeof(PedTNode));
if(!Tree)
{
printf("Insufficient Memory!\n");
exit(-1);
}*/
printf("\t\t请输入姓名:");
scanf("%s",Tree->https://www.doczj.com/doc/988686129.html,);
printf("\t\t请输入性别(G女B男):");
//scanf("%c",&(Tree->data.sex));
fflush(stdin);
(Tree->data.sex)=getchar();
printf("\t\t请输入%s子女的个数:",Tree->https://www.doczj.com/doc/988686129.html,);
scanf("%d",&(Tree->data.num));
printf("\t\t请输入%s配偶的名字(配偶不存在,请输入):",Tree->https://www.doczj.com/doc/988686129.html,);
scanf("%s",Tree->data.spouse);
if(strcmp(Tree->data.spouse,"0")==0 && Tree->data.num!=0)
{
printf("\t\t%s的配偶不存在,不能有孩子!\n",Tree->https://www.doczj.com/doc/988686129.html,);
Tree->data.num=0;
}
Tree->parent=NULL;
for(int i=0;i
{
printf("\n");
PedTree ChildTree=(PedTree)malloc(sizeof(PedTNode));
if(!ChildTree)
{
printf("Insufficient Memory!\n");
exit(-1);
}
Tree->nextstr[i]=ChildTree;//指向子女
printf("\t\t请输入%s的第%d个子女的姓名:",Tree->https://www.doczj.com/doc/988686129.html,,i+1);
scanf("%s",ChildTree->https://www.doczj.com/doc/988686129.html,);
printf("\t\t请输入%s的第%d个子女的性别(G女B男):",Tree->https://www.doczj.com/doc/988686129.html,,i+1);
fflush(stdin);//清除键盘缓冲区
scanf("%c",&(ChildTree->data.sex));
printf("\t\t请输入%s的第%d个子女的个数:",Tree->https://www.doczj.com/doc/988686129.html,,i+1);
scanf("%d",&(ChildTree->data.num));
printf("\t\t请输入%s的第%d个子女的配偶的姓名(配偶不存在,请输入):
",Tree->https://www.doczj.com/doc/988686129.html,,i+1);
scanf("%s",ChildTree->data.spouse);
if(strcmp(ChildTree->data.spouse,"0")==0 && ChildTree->data.num!=0)
{
printf("\t\t%s的配偶不存在,不能有孩子!\n",ChildTree->https://www.doczj.com/doc/988686129.html,);
ChildTree->data.num=0;
}
ChildTree->parent=Tree;//将孩子指向父母
CreateNewPedTreeNode(ChildTree);
}
fflush(stdin);//清除键盘缓冲区
printf("\n\n\t\t- - - - 家谱建造成功- - - - - \n");
printf("\n\t\t按任意键继续:");
getch();
}
void CreateNewPedTreeNode(PedTree Tree)//创建孩子,递归调用
{
for(int i=0;i
{
printf("\n");
PedTree ChildTree=(PedTree)malloc(sizeof(PedTNode));
if(!ChildTree)
{
printf("\t\tInsufficient Memory!\n");
exit(1);
}
Tree->nextstr[i]=ChildTree;//指向子女
printf("\t\t请输入%s的第%d个子女的姓名:",Tree->https://www.doczj.com/doc/988686129.html,,i+1);
scanf("%s",ChildTree->https://www.doczj.com/doc/988686129.html,);
printf("\t\t请输入%s的第%d个子女的性别(G女B男):",Tree->https://www.doczj.com/doc/988686129.html,,i+1);
fflush(stdin);//清除键盘缓冲区
scanf("%c",&(ChildTree->data.sex));
printf("\t\t请输入%s的第%d个子女的个数:",Tree->https://www.doczj.com/doc/988686129.html,,i+1);
scanf("%d",&(ChildTree->data.num));
printf("\t\t请输入%s的第%d个子女的配偶的姓名(配偶不存在,请输入):
",Tree->https://www.doczj.com/doc/988686129.html,,i+1);
scanf("%s",ChildTree->data.spouse);
if(strcmp(ChildTree->data.spouse,"0")==0 && ChildTree->data.num!=0)
{
printf("\t\t%s的配偶不存在,不能有孩子!\n",ChildTree->https://www.doczj.com/doc/988686129.html,);
ChildTree->data.num=0;
}
ChildTree->parent=Tree;//将孩子指向父母
CreateNewPedTreeNode(ChildTree);
}
}
void OutAllPedTree(PedTree Tree)//输出整个家谱信息
{
fflush(stdin);//清除键盘缓冲区
system("cls");
printf("\n\n\t\t整个家谱主要的信息如下:\n");
printf("\t\t---***---***---***---***---***---***---\n");
//puts(Tree->https://www.doczj.com/doc/988686129.html,);
printf("\t\t姓名:%s ",Tree->https://www.doczj.com/doc/988686129.html,);
if(Tree->data.sex=='b'||Tree->data.sex=='B')
{
printf("性别:男\n");
printf("\t\t太太姓名:%s\n",Tree->data.spouse);
}
else
{
printf("性别:女\n");
printf("\t\t丈夫姓名:%s\n",Tree->data.spouse);
}
for(int i=0;i
{
printf("\t\t第%d个子女的姓名:%s ",i+1,(Tree->nextstr[i])->https://www.doczj.com/doc/988686129.html,);
if(((Tree->nextstr[i])->data.sex)=='b'||((Tree->nextstr[i])->data.sex)=='B') printf("性别:男\n");
else
printf("性别:女\n");
}
for(int j=0;j
{
//if((Tree->nextstr[j])->data.num!=0)
OutOneInfor(Tree->nextstr[j]);
}
fflush(stdin);//清除键盘缓冲区
printf("\n\t\t按任意键继续:");
getch();
}
void OutOneInfor(PedTree Tree)//递归调用实现输出整个家谱树
{
printf("\t\t---***---***---***---***---***---***---\n");
printf("\t\t姓名:%s ",Tree->https://www.doczj.com/doc/988686129.html,);
if(Tree->data.sex=='b'||Tree->data.sex=='B')
{
printf("性别:男\n");
printf("\t\t太太姓名:%s\n",Tree->data.spouse);
}
else
{
printf("性别:女\n");
printf("\t\t丈夫姓名:%s\n",Tree->data.spouse);
}
for(int i=0;i
{
printf("\t\t第%d个子女的姓名:%s ",i+1,(Tree->nextstr[i])->https://www.doczj.com/doc/988686129.html,);
if(((Tree->nextstr[i])->data.sex)=='b'||((Tree->nextstr[i])->data.sex)=='B') printf("性别:男\n");
else
printf("性别:女\n");
}
for(int j=0;j
//if((Tree->nextstr[j])->data.num!=0)
OutOneInfor(Tree->nextstr[j]);
}
void ShowMenu1(PedTree Tree)//显示要查找人的信息
{
PedTree TempTree=NULL;
char Name[20];
fflush(stdin);//清除键盘缓冲区
system("cls");
printf("\t\t请输入你要查找的人的姓名:");
scanf("%s",Name);
/*if((TempTree=SearchPedTree(Tree,Name))!=NULL)*/
if(SearchPedTree(Tree,Name,&TempTree))//在树中查找
printf("\n\n\t\t----*----*----*----*----*----*----*----*----*----*----\n");
if(TempTree->parent!=NULL)
{
printf("\t\t姓名:%s ",TempTree->https://www.doczj.com/doc/988686129.html,);
if((TempTree->data.sex)=='b'||(TempTree->data.sex)=='B')
printf("性别:男\n");
else
printf("性别:女\n");
//输出父母亲的姓名
if((TempTree->parent->data.sex)=='b'||(TempTree->parent->data.sex)=='B') {
printf("\t\t父亲姓名:%s \n",TempTree->parent->https://www.doczj.com/doc/988686129.html,);
printf("\t\t母亲姓名:%s \n",TempTree->parent->data.spouse);
}
else
{
printf("\t\t父亲姓名:%s \n",TempTree->parent->data.spouse);
printf("\t\t母亲姓名:%s \n",TempTree->parent->https://www.doczj.com/doc/988686129.html,);
}
}
else
{
printf("\t\t姓名:%s ",TempTree->https://www.doczj.com/doc/988686129.html,);
if((TempTree->data.sex)=='b'||(TempTree->data.sex)=='B')
printf("性别:男\n");
else
printf("性别:女\n");
}
//输出配偶信息
if((TempTree->data.sex)=='b'||(TempTree->data.sex)=='B')
printf("\t\t太太姓名:%s \n",TempTree->data.spouse);
else
printf("\t\t丈夫姓名:%s \n",TempTree->data.spouse);
//输出孩子信息
if((TempTree->data.num)!=0)
printf("\t\t孩子信息:\n");
for(int j=0;j
{
PedTree ChildTree;
ChildTree=TempTree->nextstr[j];
printf("\t\t姓名:%s ",ChildTree->https://www.doczj.com/doc/988686129.html,);
if((ChildTree->data.sex)=='b'||(ChildTree->data.sex)=='B')
printf("性别:男\n");
else
printf("性别:女\n");
}
printf("\t\t----*----*----*----*----*----*----*----*----*----*----\n\n");
}//if(SearchPedTree(Tree,Name,&TempTree))//在树中查找
else if(SearchPedTree2(Tree,Name,&TempTree))//在配偶中查找
{
printf("\n\n\t\t----*----*----*----*----*----*----*----*----*----*----\n");
printf("\n\t\t你要找的人已找到,信息如下:\n");
printf("\t\t姓名:%s ",TempTree->data.spouse);
if((TempTree->data.sex)=='b'||(TempTree->data.sex)=='B')
{
printf("性别:女\n");
printf("\n\t\t她已成为本家族的媳妇,所以父母信息不存在家谱中\n");
printf("\n\t\t丈夫姓名:%s\n",TempTree->https://www.doczj.com/doc/988686129.html,);
}
else
{
printf("性别:男\n");
printf("\n\t\t他入赘本家族,所以父母信息不存在家谱中\n");
printf("\n\t\t太太姓名:%s\n",TempTree->https://www.doczj.com/doc/988686129.html,);
}
printf("\t\t----*----*----*----*----*----*----*----*----*----*----\n\n");
}//else if(SearchPedTree2(Tree,Name,&TempTree))//在配偶中查找
else
{
printf("\n\n\t\t----*----*----*----*----*----*----*----*----*----*----\n\n");
printf("\t\t***该家谱图中没有%s这个人的信息请确认是否输入正确***\n\n",Name);
printf("\t\t----*----*----*----*----*----*----*----*----*----*----\n\n");
}
fflush(stdin);//清除键盘缓冲区
printf("\n\t\t按任意键继续:");
getch();
}
bool SearchPedTree(PedTree Tree,char Name[],PedTree* DrawTree)//在树中查找
{
//if(strcmp(Tree->https://www.doczj.com/doc/988686129.html,,Name)==0)
// return Tree;
//else
//{
// for(int i=0;i
// {
// if(SearchPedTree(Tree->nextstr[i],Name)==NULL)
// SearchPedTree(Tree->nextstr[i],Name);//没找到继续找
// else
// return Tree->nextstr[i];
// }
// return NULL;
//}
if(strcmp(Tree->https://www.doczj.com/doc/988686129.html,,Name)==0)
{
*DrawTree=Tree;
return true;
}
else
{
for(int i=0;i
{
if(SearchPedTree(Tree->nextstr[i],Name,DrawTree))
return true;
}
return false;
}
}
bool SearchPedTree2(PedTree Tree,char Name[],PedTree* DrawTree)//在树中查找配偶是否匹配{
if(strcmp(Tree->data.spouse,Name)==0)
{
*DrawTree=Tree;
return true;
}
else
{
for(int i=0;i
{
if(SearchPedTree2(Tree->nextstr[i],Name,DrawTree))
return true;
}
return false;
}
}
int AddNewInfor(PedTree Tree)//添加新的家谱信息
{
fflush(stdin);//清除键盘缓冲区
char choice;
while(1)
{
fflush(stdin);//清除键盘缓冲区
system("cls");
ShowMenu2();//显示添加信息的菜单
printf("\n");
printf("\t 请您选择:");
choice=getchar();
switch(choice)
{
case'1':
AddChildInfor(Tree);//添加子女的信息
break;
case'2':
AddPouseInfor(Tree);//添加配偶信息
break;
case'3':
return 0;
}
}
}
void AddChildInfor(PedTree Tree)//添加子女的信息
{
fflush(stdin);//清除键盘缓冲区
system("cls");
char Name[20];
PedTree TempTree=NULL;
printf("\n\t\t请输入要添加子女的父母的名字:");
scanf("%s",Name);
/*if((TempTree=SearchPedTree(Tree,Name))==NULL)*/
if(SearchPedTree(Tree,Name,&TempTree)||SearchPedTree2(Tree,Name,&TempTree))//在树中查找{
if(strcmp(TempTree->data.spouse,"0")!=0)
{
PedTree ChildTree;
int num=TempTree->data.num;
TempTree->nextstr[num]=(PedTree)malloc(sizeof(PedTNode));//父母指向孩子
ChildTree=TempTree->nextstr[num];
if(!ChildTree)
{
printf("\t\tInsufficient Memory!\n");
exit(1);
}
printf("\n\t\t请输入要填家的子女的姓名:");
scanf("%s",ChildTree->https://www.doczj.com/doc/988686129.html,);
fflush(stdin);//清除键盘缓冲区
printf("\n\t\t请输入添加子女的性别(女G 男B):");
scanf("%c",&(ChildTree->data.sex));
(TempTree->data.num)++;//父母孩子数加1
ChildTree->parent=TempTree;//孩子指向父母
strcpy(ChildTree->data.spouse,"0");//将配偶初始为
printf("\n\n\t\t- - - - 子女信息添加成功- - - - - \n");
}
else
{
printf("\n\t\t配偶不存在,不能添加子女信息\n");
}
}
else
{
printf("\n\n\t\t不存在该父母!\n");
}
fflush(stdin);//清除键盘缓冲区
printf("\n\t\t按任意键继续:");
getch();
}
void AddPouseInfor(PedTree Tree)//添加配偶信息
{
fflush(stdin);//清除键盘缓冲区
system("cls");
char Name[20];
bool flag=false;
PedTree TempTree=NULL;
printf("\n\t\t请输入要添加人的配偶的名字:");
scanf("%s",Name);
if(!SearchPedTree(Tree,Name,&TempTree))//在树中查找
{
printf("\n\n\t\t不存在该人!\n");
flag=true;
}
else
{
if(strcmp(TempTree->data.spouse,"0")==0)
{
printf("\n\t\t请入要填加的人的姓名:");
scanf("%s",TempTree->data.spouse);
}
else
{
printf("\n\n\t\t配偶已存在!\n");
flag=true;
}
}
fflush(stdin);//清除键盘缓冲区
if(!flag)
printf("\n\n\t\t- - - - 配偶信息添加成功- - - - - \n");
printf("\n\t\t按任意键继续:");
getch();
}
void ShowMenu2()//显示添加信息的菜单
{
printf("\n\n\t\t-----****----请选择你的操作----****-----\n\n");
printf("\t ----****----1.添加某个人的子女的信息----****----\n");
printf("\t ----****----2.添加某个人的配偶的信息----****----\n");
printf("\n\t ----****---***---3.退出---***----****-----\n"); }
int ChangeInfor(PedTree Tree)//修改家谱信息
{
fflush(stdin);//清除键盘缓冲区
system("cls");
char Name[20];
char choice;//
char tempch;
char TempName[20];
PedTree TempTree;
printf("\n\t\t请输入要修改人的姓名:");
scanf("%s",Name);
if(SearchPedTree(Tree,Name,&TempTree))
{
PedTree TempParent=TempTree->parent;
while(1)
{
fflush(stdin);//清除键盘缓冲区
system("cls");
ShowMenu3();
printf("\n");
printf("\t\t请您选择:");
choice=getchar();
switch(choice)
{
case'1':
//printf("\n\t\t");
printf("\n\t\t请输入要修改人的姓名:(不需要修改输入)\n\t\t");
scanf("%s",TempName);
if(strcmp(TempName,"0")!=0)
{
strcpy(TempTree->https://www.doczj.com/doc/988686129.html,,TempName);
}
fflush(stdin);//清除键盘缓冲区
printf("\n\t\t请输入要修改人的性别:(不需要修改输入)\n\t\t");
scanf("%c",&tempch);
if(tempch!='0')
TempTree->data.sex=tempch;
printf("\n\t\t----****---***---信息修改成功---***----****-----");
fflush(stdin);//清除键盘缓冲区
printf("\n\t\t按任意键继续:");
getch();
break;
case'2':
if(TempTree->parent==NULL)
printf("\n\t\t这是家谱中最顶端得人,不存在父母的信息!\n");
else
{
printf("\n\t\t请输入该人的父母的姓名:(不需要修改输入)\n\t\t");
scanf("%s",TempName);
if(strcmp(TempName,"0")!=0)
{
strcpy(TempParent->https://www.doczj.com/doc/988686129.html,,TempName);
}
fflush(stdin);//清除键盘缓冲区
printf("\n\t\t请输入该人的父母的性别:(不需要修改输入)\n\t\t");
scanf("%c",&tempch);
if(tempch!='0')
TempParent->data.sex=tempch;
printf("\n\t\t----****---***---信息修改成功---***----****-----");
}
fflush(stdin);//清除键盘缓冲区
printf("\n\t\t按任意键继续:");
getch();
break;
case'3':
if(TempTree->parent==NULL)
printf("\n\t\t这是家谱中最顶端得人,不存在兄弟姐妹的信息!\n");
//PedTree TempParent=TempTree->parent;
else
{
for(int i=1;i
{
printf("\n\t\t请输入%s 修改后的姓名:(不需要修改输入)
\n\t\t",TempParent->nextstr[i]->https://www.doczj.com/doc/988686129.html,);
scanf("%s",TempName);
if(strcmp(TempName,"0")!=0)
{
strcpy(TempParent->nextstr[i]->https://www.doczj.com/doc/988686129.html,,TempName);
}
fflush(stdin);//清除键盘缓冲区
printf("\n\t\t请输入%s 修改后的性别:(不需要修改输入)
\n\t\t",TempParent->nextstr[i]->https://www.doczj.com/doc/988686129.html,);
scanf("%c",&tempch);
if(tempch!='0')
TempParent->nextstr[i]->data.sex=tempch;
}
printf("\n\t\t----****---***---信息修改成功---***----****-----");
}
fflush(stdin);//清除键盘缓冲区
printf("\n\t\t按任意键继续:");
getch();
break;
case'4':
if(TempTree->data.num<=0)
{
printf("\n\t\t%s还没有子女,请先添加\n",TempTree->https://www.doczj.com/doc/988686129.html,);
}
else
{
for(int i=0;i
{
printf("\n\t\t请输入%s 修改后的姓名:(不需要修改输入)
\n\t\t",TempTree->nextstr[i]->https://www.doczj.com/doc/988686129.html,);
scanf("%s",TempName);
if(strcmp(TempName,"0")!=0)
{
strcpy(TempTree->nextstr[i]->https://www.doczj.com/doc/988686129.html,,TempName);
}
fflush(stdin);//清除键盘缓冲区
printf("\n\t\t请输入%s 修改后的性别:(不需要修改输入)
\n\t\t",TempTree->nextstr[i]->https://www.doczj.com/doc/988686129.html,);
scanf("%c",&tempch);
if(tempch!='0')
TempTree->nextstr[i]->data.sex=tempch;
}
printf("\n\t\t----****---***---信息修改成功---***----****-----");
}
fflush(stdin);//清除键盘缓冲区
printf("\n\t\t按任意键继续:");
getch();
break;
case'5':
if(strcmp(TempTree->data.spouse,"0")==0)
{
printf("\n\t\t%s还没有配偶,请先添加\n",TempTree->https://www.doczj.com/doc/988686129.html,);
}
else
{
printf("\n\t\t请输入%s 修改后的姓名:(不需要修改输入)
\n\t\t",TempTree->data.spouse);
scanf("%s",TempName);
if(strcmp(TempName,"0")!=0)
{
strcpy(TempTree->data.spouse,TempName);
}
fflush(stdin);//清除键盘缓冲区
printf("\n\t\t请输入%s 修改后的性别:(不需要修改输入)
\n\t\t",TempTree->data.spouse);
scanf("%c",&tempch);
if(tempch!='0')
TempTree->data.sex=tempch;
}
printf("\n\t ----****---***---信息修改成功---***----****-----");
fflush(stdin);//清除键盘缓冲区
printf("\n\t\t按任意键继续:");
getch();
break;
case'6':
return 0;
}
}
}
else
{
printf("\n\t\t找不到你要查找的人!\n");
}
fflush(stdin);//清除键盘缓冲区
printf("\n\t\t按任意键继续:");
getch();
}
void ShowMenu3()//显示修改信息的菜单
{
printf("\n\n\t\t-----****----请选择你的操作----****-----\n\n");
printf("\t ----****------1.修改个人的信息--------****----\n");
printf("\t ----****------2.修改父母的信息--------****----\n");
printf("\t ----****------3.修改兄弟姐妹的信息----****----\n");
printf("\t ----****------4.修改子女的信息--------****----\n");
printf("\t ----****------5.修改配偶的信息--------****----\n");
printf("\n\t ----****---***---6.退出---***----****-----\n");
//getch();
}