完整word版家谱树Word格式文档下载.docx
- 文档编号:17827556
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:25
- 大小:20.96KB
完整word版家谱树Word格式文档下载.docx
《完整word版家谱树Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《完整word版家谱树Word格式文档下载.docx(25页珍藏版)》请在冰豆网上搜索。
typedefstruct{
intnum;
//孩子个数
charname[20];
///姓名
charsex;
//性别
//boolis_spouse;
//配偶是否存在
charspouse[20];
//配偶的姓名,性别取反
}DataType;
typedefstructTNode{
DataTypedata;
//数据域
structTNode*nextstr[10];
//指针域,指向孩子
structTNode*parent;
//指针域,指向父亲
}PedTNode,*PedTree;
//家谱树
voidOutMenu();
//输出家谱菜单
voidCreateNewPedTreeNode(PedTreeTree);
//创建孩子,递归调用
voidCreatePedTree(PedTreeTree);
//创建Pedigree树
voidOutOneInfor(PedTreeTree);
//递归调用实现输出整个家谱树
voidOutAllPedTree(PedTreeTree);
//输出整个家谱信息
//PedTreeSearchPedTree(PedTreeTree,charName[]);
//在树中查找
boolSearchPedTree(PedTreeTree,charName[],PedTree*DrawTree);
boolSearchPedTree2(PedTreeTree,charName[],PedTree*DrawTree);
//在树中查找配偶是否匹配
voidShowMenu1(PedTreeTree);
//显示要查找人的信息
//voidShowSelfInfor(PedTreeTree,charName[],intLength);
//显示个人信息
voidShowMenu2();
//显示添加信息的菜单
intAddNewInfor(PedTreeTree);
//添加新的家谱信息
voidAddChildInfor(PedTreeTree);
//添加子女的信息
voidAddPouseInfor(PedTreeTree);
//添加配偶信息
intChangeInfor(PedTreeTree);
//修改家谱信息
voidShowMenu3();
//显示修改信息的菜单
intmain()
{
charchoice;
system("
color1f"
);
PedTNodeTreeNode;
PedTreeTree=&
TreeNode;
boolflag=false;
//标志是否执行建立家谱
//PedTreeTree=NULL;
while
(1)
{
fflush(stdin);
//清除键盘缓冲区
system("
cls"
OutMenu();
printf("
\n"
\t\t请您选择:
"
choice=getchar();
switch(choice)
{
case'
1'
:
if(!
flag)
{
CreatePedTree(Tree);
flag=true;
}
else
printf("
\n\t\t家谱不能多次建立\n"
\n\t\t按任意键继续:
fflush(stdin);
getch();
break;
2'
if(flag)
ShowMenu1(Tree);
\n\t\t家谱未建立,请您先建立家谱\n"
3'
AddNewInfor(Tree);
4'
OutAllPedTree(Tree);
5'
ChangeInfor(Tree);
6'
return0;
}
}
//return0;
}
voidOutMenu()
printf("
\t\t***********************\n"
\t\t**\n"
\t\t*家谱信息管理菜单*\n"
\t\t*1:
输入家谱信息*\n"
\t\t*2:
查找并输出某人信息*\n"
\t\t*3:
添加新的家庭成员*\n"
\t\t*4:
输出整个家谱信息*\n"
\t\t*5:
修改某个人的信息*\n"
\t\t*6:
退出整个程序*\n"
voidCreatePedTree(PedTreeTree)//创建Pedigree树
fflush(stdin);
/*Tree=(PedTree)malloc(sizeof(PedTNode));
if(!
Tree)
InsufficientMemory!
exit(-1);
}*/
\t\t请输入姓名:
scanf("
%s"
Tree->
data.name);
\t\t请输入性别(G女B男):
//scanf("
%c"
&
(Tree->
data.sex));
(Tree->
data.sex)=getchar();
\t\t请输入%s子女的个数:
%d"
data.num));
\t\t请输入%s配偶的名字(配偶不存在,请输入):
data.spouse);
if(strcmp(Tree->
data.spouse,"
0"
)==0&
&
Tree->
data.num!
=0)
\t\t%s的配偶不存在,不能有孩子!
Tree->
data.num=0;
parent=NULL;
for(inti=0;
i<
Tree->
data.num;
i++)
PedTreeChildTree=(PedTree)malloc(sizeof(PedTNode));
if(!
ChildTree)
printf("
exit(-1);
nextstr[i]=ChildTree;
//指向子女
\t\t请输入%s的第%d个子女的姓名:
data.name,i+1);
scanf("
ChildTree->
\t\t请输入%s的第%d个子女的性别(G女B男):
(ChildTree->
\t\t请输入%s的第%d个子女的个数:
\t\t请输入%s的第%d个子女的配偶的姓名(配偶不存在,请输入):
if(strcmp(ChildTree->
ChildTree->
ChildTree->
ChildTree->
parent=Tree;
//将孩子指向父母
CreateNewPedTreeNode(ChildTree);
\n\n\t\t----家谱建造成功-----\n"
getch();
voidCreateNewPedTreeNode(PedTreeTree)//创建孩子,递归调用
\t\tInsufficientMemory!
exit
(1);
voidOutAllPedTree(PedTreeTree)//输出整个家谱信息
\n\n\t\t整个家谱主要的信息如下:
\t\t---***---***---***---***---***---***---\n"
//puts(Tree->
\t\t姓名:
%s"
if(Tree->
data.sex=='
b'
||Tree->
B'
)
性别:
男\n"
\t\t太太姓名:
%s\n"
else
女\n"
\t\t丈夫姓名:
\t\t第%d个子女的姓名:
i+1,(Tree->
nextstr[i])->
if(((Tree->
data.sex)=='
||((Tree->
else
for(intj=0;
j<
j++)
//if((Tree->
nextstr[j])->
OutOneInfor(Tree->
nextstr[j]);
voidOutOneInfor(PedTreeTree)//递归调用实现输出整个家谱树
voidShowMenu1(PedTreeTree)//显示要查找人的信息
PedTreeTempTree=NULL;
charName[20];
\t\t请输入你要查找的人的姓名:
Name);
/*if((TempTree=SearchPedTree(Tree,Name))!
=NULL)*/
if(SearchPedTree(Tree,Name,&
TempTree))//在树中查找
\n\n\t\t----*----*----*----*----*----*----*----*----*----*----\n"
if(TempTree->
parent!
=NULL)
TempTree->
if((TempTree->
||(TempTree->
//输出父母亲的姓名
parent->
\t\t父亲姓名:
%s\n"
\t\t母亲姓名:
//输出配偶信息
if((TempTree->
//输出孩子信息
data.num)!
\t\t孩子信息:
for(intj=0;
TempTree->
PedTreeChildTree;
ChildTree=TempTree->
nextstr[j];
if((ChildTree->
||(ChildTree->
\t\t----*----*----*----*----*----*----*----*----*----*----\n\n"
}//if(SearchPedTree(Tree,Name,&
elseif(SearchPedTree2(Tree,Name,&
TempTree))//在配偶中查找
\n\t\t你要找的人已找到,信息如下:
\n\t\t她已成为本家族的媳妇,所以父母信息不存在家谱中\n"
\n\t\t丈夫姓名:
\n\t\t他
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 家谱
![提示](https://static.bdocx.com/images/bang_tan.gif)