资源描述:
《家谱管理系统-数据结构大作业》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.../*家谱管理系统任务:实现具有下列功能的家谱管理系统功能要求:1).输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容:姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡),也可附加其它信息、但不是必需的。2).实现数据的存盘和读盘。3).以图形方式显示家谱。4).显示第n代所有人的信息。5).按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。6).按照出生日期查询成员名单。7).输入两人姓名,确定其关系。8).某成员添加孩子。9).删除某成员(若其还有后代,则
2、一并删除)。10).修改某成员信息。11).按出生日期对家谱中所有人排序。12).打开一家谱时,提示当天生日的健在成员。要求:建立至少30个成员的数据,以较为直观的方式显示结果,并提供文稿形式以便检查。界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求相关数据要存储在数据文件中。测试数据:要求使用1、全部合法数据;2、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;*/#inclu
3、de#include#include#include#include"map.h"#defineMAXN100#defineMAXMEM100#defineElemtypechar==============================//树typedefstructBiTNode{intmark;//标记intlevel;charname[50];//姓名charbirthday[50];//生日charaddress[
4、MAXN];//住址......boolmarriage;//婚否(true表示结婚,false表示没结婚)boollive;//建在(true表示活着,false表示过世)boolsex;//性别(true表示男,false表示女)charlivemassage[50];//死亡日期(如果其已经死亡)Elemtypedata;//structBiTNode*lc,*rc;}BiTNode,*BiTree;//树的相关操作charnametemp[50];//姓名charbirthdaytemp[5
5、0];//生日charaddresstemp[MAXN];//住址boolmarriagetemp;//婚否(true表示结婚,false表示没结婚)boollivetemp;//建在(true表示或者,false表示过世)boolsextemp;charlivemassagetemp[MAXN];//死亡日期(如果其已经死亡)charch;//额外使用intleveltemp;//人的代数intNth;//显示第n代人时要用charsearchdata[50];charsearchname[50]
6、;intcount;//计数intchoice;//各种选择intuse;BiTreetemp;structBiTNodeList{BiTreedata;BiTNodeList*next;};BiTNodeList*List;//-----------voidCreatBiTree(BiTree&T,FILE*in)//建立双链二叉树{fscanf(in,"%c",&ch);//printf("%c",ch);if(ch=='@'){......T=NULL;fscanf(in,"%c",&ch
7、);}else{T=(BiTree)malloc(sizeof(BiTNode));//fscanf(in,"%s%s%s%d%d",nametemp,birthdaytemp,addresstemp,&marriagetemp,&livetemp);fscanf(in,"%s",nametemp);strcpy(T->name,nametemp);fscanf(in,"%s",birthdaytemp);strcpy(T->birthday,birthdaytemp);fscanf(in,"%s"
8、,addresstemp);strcpy(T->address,addresstemp);fscanf(in,"%d%d%d%d",&marriagetemp,&livetemp,&leveltemp,&sextemp);T->marriage=marriagetemp;T->live=livetemp;T->level=leveltemp;T->sex=sextemp;//printf("%s%s%s%d%d",nametemp,birthdaytemp,add