家谱管理系统含源代码xWord文件下载.docx
- 文档编号:16109947
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:18
- 大小:18.66KB
家谱管理系统含源代码xWord文件下载.docx
《家谱管理系统含源代码xWord文件下载.docx》由会员分享,可在线阅读,更多相关《家谱管理系统含源代码xWord文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
structTreeNodeRNeRtNode[20];
〃保存此人的儿女,NeRtNode[0]里存放配偶的地址structTreeNodeRParent;
〃保存此节点的父节点
}TreeNode;
voidCreatTree(TreeNodeRTree);
//创建树voidOutPutAII(TreeNodeRTree);
//输出树TreeNodeRSearchTree(TreeNodeRTree,charname[],intlength);
voidMainMenu(TreeNodeRTree);
voidSubMenue1(TreeNodeRTree);
voidSubMenue2(TreeNodeRTree);
voidChange(TreeNodeRTree);
voidAddNew(TreeNodeRTree);
voidOutPutMessage(TreeNodeRTree,charname[],intlength);
//主函数
voidmain()
TreeNodeRTree;
//产生根节点
Tree=(TreeNodeR)malloc(sizeof(TreeNode));
Tree->
Parent=NULL;
strcpR(Tree->
Name,"
0"
);
MainMenu(Tree);
//显示主菜单
}
//添加新的成员
voidAddNew(TreeNodeRTree)
SubMenue2(Tree);
〃添加新成员界面
//显示添加家庭信息的界面
voidSubMenue2(TreeNodeRTree)
charc;
intnum;
charname[20];
TreeNodeRNewNode;
getchar();
while
(1)
sRstem("
cls"
printf(”请选择你的操作\n”);
printf("
A:
添加某个人的子女的信息\n"
B:
添加某个人配偶的信息\n"
C:
退出\n”);
printf(”请选择相应功能:
\n"
c=getchar();
switch(c)
case'
A'
:
//添加子女信息
printf(”请输入那个人的名字:
scanf("
%s"
name);
Tree=SearchTree(Tree,name,20);
〃在家谱里查找这个人
if(Tree==NULL)
该家谱图中没有%s这个人的信息请确认是否输入错误\n"
name);
break;
if(Tree->
Parent==NULL&
&
NeRtNode[0]==NULL||Tree->
Parent!
=NULL&
Tree->
Name!
=Tree->
Parent->
NeRtNode[0]->
Name)
printf(”至今还没有配偶请先添加配偶\n"
Tree->
Name);
(Tree->
Num>
20||Tree->
Num<
0))
Num=0;
if(MATEFLAG==1)
Tree=Tree->
Parent;
NewNode=(TreeNodeR)malloc(sizeof(TreeNode));
printf(”请输入添加人员姓名:
NewNode->
printf(”请输入添加人员性别女F男M:
%1s"
&
NewNode->
Kind);
num=Tree->
Num;
NeRtNode[0]=(TreeNodeR)malloc(sizeof(TreeNode));
NeRtNode[0]=NULL;
Parent=Tree;
NeRtNode[num+1]=NewNode;
Num=Tree->
Num+1;
printf(”子女的信息添加成功\n"
B'
strcmp(Tree->
Name,Tree->
Name)==0||Tree->
NeRtNode[0]!
=NULL)
printf(”已经有了配偶\n”);
该家谱图中没有%s这个人的信息请确认\n"
break;
NeRtNode[0]=NewNode;
C'
printf(”本项服务到此结束\n"
\n'
default:
对不起!
你的选择错误\n"
if(c==C||c=='
c'
)
printf(”请按Enter键继续操作\n"
//修改某个人的信息
voidChange(TreeNodeRTree)
printf(”请输入你要修改的人的信息:
NewNode=SearchTree(Tree,name,20);
if(NewNode==NULL)
\n”,name);
该家谱图中没有%s这个人的信息请确认是否输入错误return;
else
SubMenue1(NewNode);
//输出副菜单
voidSubMenue1(TreeNodeRTree)
intflag,i;
charParent[2][20];
修改个人的信息\n"
修改父母的信息\n”);
修改兄弟姐妹的信息\n"
D:
修改子女的信息\n"
E:
修改配偶的信息\n”);
F:
退出\n"
printf(”请输入修改的姓名:
如果不需要修改就输入'
0'
然后按Enter键继续\n"
if(strcmp(name,"
)!
=0)
Name,name);
printf(”是否要修改性别:
如果需要就输入'
1'
不需要修改就输入'
然后按Enter键
继续\n"
%d"
&
flag);
if(flag==1)
Kind=='
F'
||Tree->
Kind=='
f)
Kind='
M'
;
elseTree->
Kind='
printf(”个人信息修改成功\n"
Parent==NULL)〃判断
是不是头节点
printf(”是这个家谱图里最顶端的人没有父母信息!
if(MATEFLAG==1)〃判断
是不是入赘或加入此间的
printf(”她是嫁入此间的所以父母信息不在家谱内包括\n"
printf(”他是入赘此间的所以父母信息不在家谱内包括\n"
strcpR(Parent[O],"
母亲"
strcpR(Parent[1],"
父亲"
printf(”请输入%s要修改的姓名:
然后按Enter键继续
Parent[O]);
O"
=O)
Parent[1]);
printf(”父母的信息修改成功\n"
NewNode=Tree->
if(NewNode==NULL)〃判断是不
是头节点
printf(”是这个家谱图里最顶端的人没有兄弟姐妹信息!
是不是入赘或嫁入这家的
printf(”她是嫁入此间的所以兄弟姐妹信息不在家谱内包括\n"
printf(”他是入赘此间的所以兄弟姐妹信息不在家谱内包
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 家谱 管理 系统 源代码