数据结构家谱管理系统
数据结构家谱管理系统
////////////////////////////////////////////////////////////
///////////////////
//题目:家谱资料管理
//要求:家谱用于记录某家族历代家族成员的情况与关系。
现编制一个家谱资料管理软件,
//实现对一个家族所有的资料进行收集整理。支持对家谱的
增加,删除,更新,统计等。
////////////////////////////////////////////////////////////
///////////////////
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int MATEFLAG=0;
typedef struct TreeNode
数据结构家谱管理系统
int Num; //记录这个人拥有
几个儿女
名
char Kind; //标示节点的种类有char Name[20]; //记录这个人的姓
女G男B
点
}TreeNode;
void CreatTree(TreeNode *Tree);
void OutPutAll(TreeNode *Tree);
TreeNode * SearchTree(TreeNode *Tree,char name[],int
length);
void MainMenue(TreeNode *Tree);
void SubMenue1(TreeNode * Tree);
void SubMenue2(TreeNode *Tree);
void Change(TreeNode * Tree);
void AddNew(TreeNode * Tree); struct TreeNode * NextNode[20]; //记录这个人的儿女 struct TreeNode * Parent; //记录这个节点的父节
数据结构家谱管理系统
void OutPutMessage(TreeNode * Tree,char name[],int length);
//主函数
void main()
{
TreeNode *Tree; Tree=(TreeNode *)malloc(sizeof(TreeNode)); Tree->Parent =NULL; strcpy(Tree->Name,"0");
MainMenue(Tree);
}
//添加新的成员
void AddNew(TreeNode * Tree)
{
}
//输出副菜单
void SubMenue2(TreeNode *Tree)
{
char c; SubMenue2(Tree);
数据结构家谱管理系统
char name[20]; TreeNode * NewNode; getchar(); while(1) { system("cls"); printf("\t"); printf("\n\n\t ---*****---请选择你的操作
---****--- ");
printf("\n\t---*---*---*---A:添加某个人的子女的信息
---*---*---*---*---- ");
printf("\n\t---*---*---*---B:添加某个人配偶的信息
-*---*---*---*---*---- ");
printf("\n\t---*---*---*---C:退出
-*---*---*---*---*---*---*---*---*----\n\t");
c=getchar(); switch(c) { case 'A':
数据结构家谱管理系统
scanf("%s",name); Tree=SearchTree(Tree,name,20); if(Tree==NULL) { printf("\n\n\t****该家谱图中没有%s这个人的
信息请确认是否输入错误*****\n",name);
if(Tree->Parent==NULL&&Tree->NextNode[0]==NULL||Tree } break;
->Parent!=NULL&&Tree->Name!=Tree->Parent->NextNode[0]-
>Name)
{ printf("\n\n\t%s至今还没有配偶请先添加配偶
",Tree->Name);
if(Tree->Parent==NULL&&(Tree->Num>20||Tree->Num<0)) Tree->Num=0; } break; if(MATEFLAG==1)
数据结构家谱管理系统
NewNode=(TreeNode *)malloc(sizeof(TreeNode)); printf("\n\n\t请输入添加人员姓名:\n\t"); scanf("%s",NewNode->Name); printf("\n\n\t请输入添加人员性别女G男B:\n\t"); scanf("%1s",&NewNode->Kind); num=Tree->Num; NewNode->NextNode[0]=(TreeNode
*)malloc(sizeof(TreeNode));
printf("\n\n\t-------------子女的信息添加成功 Tree->Num=Tree->Num+1; NewNode->NextNode[0]=NULL; NewNode->Num=0; NewNode->Parent=Tree; Tree->NextNode[num+1]=NewNode;
----------------");
break; case 'B': printf("\n\n\t请输入那个人的名字:\n\t");
数据结构家谱管理系统
Tree=SearchTree(Tree,name,20); if(Tree->Parent!=NULL&&strcmp(Tree->Name,Tree->Parent
->NextNode[0]->Name)==0||Tree->NextNode[0]!=NULL)
{ } if(Tree==NULL) { printf("\n\n\t****该家谱图中没有%s这个人的printf("\n\n\t已经有了配偶"); break;
信息请确认是否输入错误*****\n",name);
} NewNode=(TreeNode *)malloc(sizeof(TreeNode)); printf("\n\n\t请输入添加人员姓名:\n\t"); scanf("%s",NewNode->Name); printf("\n\n\t请输入添加人员性别女G男B:\n\t"); scanf("%1s",&NewNode->Kind); NewNode->Parent=Tree; Tree->NextNode[0]=NewNode; break;
数据结构家谱管理系统
case 'C': printf("\n\n\t----------------本项服务到此结束
-----------------");
break; case '\n': break; default: printf("\n\n\t--------对不起!你的选择不在服务范围
之内!--------- ");
printf("\n\t-----------请您再次选择所需的服务
项!------------- ");
printf("\n\t------------------谢谢合
作!----------------------\n\t");
} if (c=='C'||c=='c') //?? break; break; printf("\n\n\t--------------请按Enter键继续操作
--------------");
getchar(); getchar();
数据结构家谱管理系统
} //修改某个人的信息
void Change(TreeNode * Tree)
{
char name[20];
TreeNode * NewNode; printf("\n\t请输入你要修改的人的信息:\n\t");
scanf("%s",name);
NewNode=SearchTree(Tree,name,20); if(NewNode==NULL)
{
printf("\n\n\t****该家谱图中没有%s这个人的信息请
确认是否输入错误*****\n",name);
} else { } SubMenue1(NewNode); return;
数据结构家谱管理系统
//输出副菜单
void SubMenue1(TreeNode * Tree)
{
char c; int flag,i; char name[20]; char Parent[2][20]; TreeNode * NewNode; getchar(); while(1) { system("cls"); printf("\t"); printf("\n\n\t ---*****---请选择你的操作
---****--- ");< …… 此处隐藏:4403字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [公文资料]市场营销专员岗位职责
- [公文资料]综合部经理岗位职责
- [公文资料]会计助理岗位职责
- [公文资料]林业站站长职责
- [公文资料]菜品研发部岗位职责
- [公文资料]街道综治办工作职责
- [公文资料]酒店前台的工作职责
- [公文资料]销售部经理岗位职责
- [公文资料]工程部副经理岗位职责
- [公文资料]手术室护士工作职责
- [公文资料]银行客户经理职责
- [公文资料]汽车4s店市场专员职责
- [公文资料]服装店长工作职责
- [公文资料]采购总监岗位职责
- [公文资料]大学行政秘书工作职责
- [公文资料]学校财务人员岗位职责
- [公文资料]财务统计员岗位职责
- [公文资料]物业工程主管工作职责
- [公文资料]公司后勤工作职责
- [公文资料]采矿工程师岗位职责
- 门面出租合同样板(门面出租的合同)
- 自用房屋租赁合同 自住房租房合同(汇总
- 最新酒店劳动合同管理制度(11篇)(酒店
- 2025年无产权车库买卖合同实用(14篇)(
- 建筑工程农民工劳动合同十五篇(通用)(
- 最新深圳标准劳动合同 深圳劳动合同如
- 解除劳动合同通知书(实用6篇)(解除劳动
- 2025年二手房屋买卖合同范围精选(二十
- 最新融资贷款居间合同大全(22篇)(融资
- 2025年个人二手房屋买卖合同协议书四篇
- 2025年果树苗木买卖合约书 签订果树苗
- 广东省劳动合同书填写(21篇)(广东省劳
- 最新餐饮行业没有劳动合同 劳动法餐饮
- 农村土地买卖合同(汇总21篇)(农村土地
- 最新房屋转租合同模版21篇(通用)(标准
- 2025年进口合同号查询五篇(大全)(进口
- 农村建房包工包料合同(通用8篇)(农村建
- 2025年安装监控合同协议书(15篇)(2025
- 2025年企业租赁经营合同(模板9篇)(2025
- 最新郊区土地租赁合同(优质23篇)(最新




