当前位置:文档之家› (完整word版)家谱树

(完整word版)家谱树

(完整word版)家谱树
(完整word版)家谱树

家谱树

这是实训时候完全自己写的,输入出生日期的时候一定按要求去输入(以防出错),下面是老师给我们的要求:

● 建立输入文件以存放最初家谱中各成员的信息。

● 成员的信息中均应包含以下内容:

● 姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡)

● 也可附加其它信息、但不是必需的。

● 能对修改后的家谱存盘以备以后使用。

● 能从文件中读出已有的家谱,形成树状关系。

● 家谱建立好之后,以图形方式显示出来。

● 显示第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;idata.num;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;idata.num;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;idata.num;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;jdata.num;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;idata.num;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;jdata.num;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;jdata.num;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;idata.num;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;idata.num;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;idata.num;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;idata.num;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;idata.num;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();

}

相关主题
文本预览
相关文档 最新文档