家谱管理系统源代码Word下载.docx

上传人:b****3 文档编号:6446623 上传时间:2023-05-06 格式:DOCX 页数:25 大小:18.89KB
下载 相关 举报
家谱管理系统源代码Word下载.docx_第1页
第1页 / 共25页
家谱管理系统源代码Word下载.docx_第2页
第2页 / 共25页
家谱管理系统源代码Word下载.docx_第3页
第3页 / 共25页
家谱管理系统源代码Word下载.docx_第4页
第4页 / 共25页
家谱管理系统源代码Word下载.docx_第5页
第5页 / 共25页
家谱管理系统源代码Word下载.docx_第6页
第6页 / 共25页
家谱管理系统源代码Word下载.docx_第7页
第7页 / 共25页
家谱管理系统源代码Word下载.docx_第8页
第8页 / 共25页
家谱管理系统源代码Word下载.docx_第9页
第9页 / 共25页
家谱管理系统源代码Word下载.docx_第10页
第10页 / 共25页
家谱管理系统源代码Word下载.docx_第11页
第11页 / 共25页
家谱管理系统源代码Word下载.docx_第12页
第12页 / 共25页
家谱管理系统源代码Word下载.docx_第13页
第13页 / 共25页
家谱管理系统源代码Word下载.docx_第14页
第14页 / 共25页
家谱管理系统源代码Word下载.docx_第15页
第15页 / 共25页
家谱管理系统源代码Word下载.docx_第16页
第16页 / 共25页
家谱管理系统源代码Word下载.docx_第17页
第17页 / 共25页
家谱管理系统源代码Word下载.docx_第18页
第18页 / 共25页
家谱管理系统源代码Word下载.docx_第19页
第19页 / 共25页
家谱管理系统源代码Word下载.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

家谱管理系统源代码Word下载.docx

《家谱管理系统源代码Word下载.docx》由会员分享,可在线阅读,更多相关《家谱管理系统源代码Word下载.docx(25页珍藏版)》请在冰点文库上搜索。

家谱管理系统源代码Word下载.docx

TreeNode*SearchTree(TreeNode*Tree,charname[],intlength);

voidMainMenu(TreeNode*Tree);

voidSubMenue1(TreeNode*Tree);

voidSubMenue2(TreeNode*Tree);

voidChange(TreeNode*Tree);

voidAddNew(TreeNode*Tree);

voidOutPutMessage(TreeNode*Tree,charname[],intlength);

//主函数

voidmain()

TreeNode*Tree;

//产生根节点

Tree=(TreeNode*)malloc(sizeof(TreeNode));

Tree->

Parent=NULL;

strcpy(Tree->

Name,"

0"

);

MainMenu(Tree);

//显示主菜单

}

//添加新的成员

voidAddNew(TreeNode*Tree)

SubMenue2(Tree);

//添加新成员界面

//显示添加家庭信息的界面

voidSubMenue2(TreeNode*Tree)

charc;

intnum;

charname[20];

TreeNode*NewNode;

getchar();

while

(1)

system("

cls"

printf("

请选择你的操作\n"

A:

添加某个人的子女的信息\n"

B:

添加某个人配偶的信息\n"

C:

退出\n"

请选择相应功能:

\n"

c=getchar();

switch(c)

case'

A'

:

//添加子女信息

请输入那个人的名字:

scanf("

%s"

name);

Tree=SearchTree(Tree,name,20);

//在家谱里查找这个人

if(Tree==NULL)

该家谱图中没有%s这个人的信息请确认是否输入错误\n"

break;

if(Tree->

Parent==NULL&

&

NextNode[0]==NULL||Tree->

Parent!

=NULL&

N

ame!

=Tree->

Parent->

NextNode[0]->

Name)

至今还没有配偶请先添加配偶\n"

Tree->

Name);

(Tree->

Num>

20||Tree->

Num<

0))

Num=0;

if(MATEFLAG==1)

Tree=Tree->

Parent;

NewNode=(TreeNode*)malloc(sizeof(TreeNode));

请输入添加人员姓名:

NewNode->

请输入添加人员性别女F男M:

%1s"

&

NewNode->

Kind);

num=Tree->

Num;

NextNode[0]=(TreeNode*)malloc(sizeof(TreeNode));

NextNode[0]=NULL;

Parent=Tree;

NextNode[num+1]=NewNode;

Num=Tree->

Num+1;

子女的信息添加成功\n"

B'

strcmp(Tree->

Name,Tree->

Name)==0||T

ree->

NextNode[0]!

=NULL)

已经有了配偶\n"

该家谱图中没有%s这个人的信息请确认\n"

NextNode[0]=NewNode;

C'

本项服务到此结束\n"

\n'

default:

对不起!

你的选择错误\n"

if(c=='

||c=='

c'

请按Enter键继续操作\n"

//修改某个人的信息

voidChange(TreeNode*Tree)

请输入你要修改的人的信息:

NewNode=SearchTree(Tree,name,20);

if(NewNode==NULL)

return;

else

SubMenue1(NewNode);

//输出副菜单

voidSubMenue1(TreeNode*Tree)

intflag,i;

charParent[2][20];

修改个人的信息\n"

修改父母的信息\n"

修改兄弟姐妹的信息\n"

D:

修改子女的信息\n"

E:

修改配偶的信息\n"

F:

请输入修改的姓名:

如果不需要修改就输入'

0'

然后按Enter键继续\n"

if(strcmp(name,"

)!

=0)

Name,name);

是否要修改性别:

如果需要就输入'

1'

不需要修改就输入'

然后按Enter键

继续\n"

%d"

flag);

if(flag==1)

Kind=='

F'

||Tree->

f'

Kind='

M'

;

elseTree->

个人信息修改成功\n"

Parent==NULL)//判断

是不是头节点

是这个家谱图里最顶端的人没有父母信息!

if(MATEFLAG==1)//判断

是不是入赘或加入此间的

她是嫁入此间的所以父母信息不在家谱内包括\n"

他是入赘此间的所以父母信息不在家谱内包括\n"

strcpy(Parent[0],"

母亲"

strcpy(Parent[1],"

父亲"

请输入%s要修改的姓名:

然后按Enter键继续

Parent[0]);

Parent[1]);

父母的信息修改成功\n"

NewNode=Tree->

if(NewNode==NULL)//判断是不

是头节点

是这个家谱图里最顶端的人没有兄弟姐妹信息!

是不是入赘或嫁入这家的

她是嫁入此间的所以兄弟姐妹信息不在家谱内包括\n"

他是入赘此间的所以兄弟姐妹信息不在家谱内包括\n"

if(NewNode->

Num==1)

没有兄弟姐妹\n"

for(i=1;

i<

=NewNode->

i++)

NextNode[i]->

Name!

请输入%s修改的姓名:

然后按

Enter键继续\n"

strcpy(NewNode->

G'

||NewNode->

g'

elseNewNode->

兄弟姐妹的信息修改成功\n"

D'

Num==0)

至今还没有子女\n"

if(Tree->

Parent!

if(strcmp(Tree->

Name)==0)//

如果他是入赘或者是嫁入的就需用配偶节点完成修改

然后按Enter键继

续\n"

子女的信息修改成功\n"

E'

if

NextNode[0]==NULL&

Name)!

至今还没有配偶\n"

Name)==0)

\n\n\t请输入%s修改的姓名:

Enter键继续\n\t"

NextNode[0]==NULL)

配偶的信息修改成功\n"

//输出主菜单

voidMainMenu(TreeNode*Tree)

//用于接受用户输入的选项

//清屏

★★★★★★★★★★★★★欢迎进入家谱管理系统★★★★★★★★★

★★\n\n\n"

◆◆菜单◆◆\n\n"

●输入家谱信息---------------------1\n"

●查找家族成员---------------------2\n"

●添加家族成员---------------------3\n"

●输出家谱信息---------------------4\n"

●修改成员信息---------------------5\n"

●退出-----------------------------6\n"

\n\n★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

★★★★★\n"

请选择相应的功能:

TreeNode*NewNode;

NewNode=(TreeNode*)malloc(sizeof(TreeNode));

//建立新节点printf("

请输入姓名:

"

scanf("

//给节点姓名赋值printf("

请输入性别(女F,男M):

getchar();

//给性别赋值scanf("

%c"

Kind));

//Tree->

Parent=NewNode;

Tree->

Parent=NULL;

CreatTree(Tree);

printf("

家谱图已经建立成功\n"

break;

case'

2'

if(strcmp(Tree->

)==0){printf("

家谱图还未建立请先建立\n"

}printf("

请输入你要查找的人的姓名:

OutPutMessage(SearchTree(Tree,name,20),name,20);

3'

}AddNew(Tree);

4'

}

整个家谱的主要信息如下:

OutPutAll(Tree);

5'

if(strcmp(Tree->

)==0)

Change(Tree);

6'

本程序结束,欢迎下次使用。

exit(0);

您输入错误,请重新输入。

voidCreatTree(TreeNode*Node)

inti;

TreeNode*NewNode;

Node->

//Node->

请输入%s的子女的数目:

Node->

(Node->

Num));

请输入%s的配偶的姓名:

if((Node->

Num)==0&

strcmp(NewNode->

return;

if(Node->

||Node->

)//自动填写其配偶的性别

Parent=Node;

=Node->

请输入%s的第%d子女的名字\n"

Name,i);

请输入%s的第%d子女的性别女F男M:

NextNode[i]=NewNode;

CreatTree(Node->

NextNode[i]);

//遍历并输出树中的内容

voidOutPutAll(TreeNode*Tree)

inti,flag=0;

//flag记录节点的性别

%s性别:

Kind

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2