家谱管理系统 -数据结构大作业
/* 家谱管理系统 任务实现具有下列功能的家谱管理系统 功能要求 1. 输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容 姓名、诞生日期、婚否、地址、健在否、死亡日期(若其已死亡),也可附加其它信息、但不是必需的。 2. 实现数据的存盘和读盘。 3. 以图形方式显示家谱。 4. 显示第n 代全部人的信息。 5. 依据姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。 6. 依据诞生日期查询成员名单。 7. 输入两人姓名,确定其关系。 8. 某成员添加孩子。 9. 删除某成员(若其还有后代,则一并删除)。 10.修改某成员信息。 11.按诞生日期对家谱中全部人排序。 12.打开一家谱时,提示当天生日的健在成员。 要求建立至少30个成员的数据,以较为直观的方式显示结果,并供应文稿形式以便检查。 界面要求有合理的提示,每个功能可以设立菜单,依据提示,可以完成相关的功能要求。 存储结构学生自己依据系统功能要求自己设计,但是要求相关数据要存储在数据文件中。 测试数据要求运用1、全部合法数据;2、局部非法数据。进行程序测试,以保证程序的稳定。 测试数据与测试结果请在上交的资料中写明; */ includestdio.h includestdlib.h includestring.h includetime.h includemap.h define MAXN 100 define MAXMEM 100 define Elemtype char //树 typedef struct BiTNode { int mark;//标记 int level; char name[50];//姓名 char birthday[50];//生日 char address[MAXN];//住址 bool marriage;//婚否(true表示结婚,false表示没结婚) bool live;//建在(true表示活着,false表示过世) bool sex;//性别(true表示男,false表示女) char livemassage[50];//死亡日期(假如其已经死亡) Elemtype data;// struct BiTNode *lc,*rc; }BiTNode,*BiTree; //树的相关操作 char nametemp[50];//姓名 char birthdaytemp[50];//生日 char addresstemp[MAXN];//住址 bool marriagetemp;//婚否(true表示结婚,false表示没结婚) bool livetemp;//建在(true表示或者,false表示过世) bool sextemp; char livemassagetemp[MAXN];//死亡日期(假如其已经死亡) char ch;//额外运用 int leveltemp;//人的代数 int Nth;//显示第n代人时要用 char searchdata[50]; char searchname[50]; int count;//计数 int choice;//各种选择 int use; BiTree temp; struct BiTNodeList { BiTree data; BiTNodeList *next; }; BiTNodeList *List; //----------- void CreatBiTreeBiTree T,FILE *in//建立双链二叉树 { fscanfin,c,ch; //printfc\n,ch; ifch { T NULL; fscanfin,c,ch; } else { T BiTreemallocsizeofBiTNode; //fscanfin,sssdd,nametemp,birthdaytemp,addresstemp,marriagetemp,livetemp; fscanfin,s,nametemp; strcpyT-name,nametemp; fscanfin,s,birthdaytemp; strcpyT-birthday,birthdaytemp; fscanfin,s,addresstemp; strcpyT-address,addresstemp; fscanfin,dddd,marriagetemp,livetemp,leveltemp,sextemp; T-marriage marriagetemp; T-live livetemp; T-level leveltemp; T-sex sextemp; //printfs s s d d\n,nametemp,birthdaytemp,addresstemp,marriagetemp,livetemp; iflivetemp { fscanfin,s,livemassagetemp; //printfs\n,livemassagetemp; } ifT-live strcpyT-livemassage,livemassagetemp; fscanfin,c,ch; CreatBiTreeT-lc,in; CreatBiTreeT-rc,in; } } void PrintInfoBiTree T { printf-10s诞生于-10s-10s,T-name,T-birthday,T-address; ifT-marriage