家谱管理系统-数据结构大作业_第1页
家谱管理系统-数据结构大作业_第2页
家谱管理系统-数据结构大作业_第3页
家谱管理系统-数据结构大作业_第4页
家谱管理系统-数据结构大作业_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、家谱管理系统-数据结构大作业家谱管理系统-数据结构大作业家谱管理系统-数据结构大作业家谱管理系统-数据结构大作业编制仅供参考审核批准生效日期地址: 电话:传真: 邮编:/* 家谱管理系统任务:实现具有下列功能的家谱管理系统功能要求:1). 输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容:姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡) ,也可附加其它信息、但不是必需的。2). 实现数据的存盘和读盘。3). 以图形方式显示家谱。4). 显示第 n 代所有人的信息。5). 按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息) 。6). 按照出生日期查询成员名单。

2、7). 输入两人姓名,确定其关系。8). 某成员添加孩子。9). 删除某成员(若其还有后代,则一并删除) 。10).修改某成员信息。11).按出生日期对家谱中所有人排序。12).打开一家谱时,提示当天生日的健在成员。要求:建立至少 30 个成员的数据, 以较为直观的方式显示结果, 并提供文稿形式以便检查。界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求相关数据要存储在数据文件中。测试数据:要求使用 、全部合法数据; 2、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;*/#

3、include#include#include#include#include#define MAXN 100#define MAXMEM 100#define Elemtype char=修改姓名n);printf(2. 修改出生年月 n);printf(3. 修改家庭住址 n);printf(4. 修改婚姻状况 n);printf(5. 修改在世情况 n);printf(6. 修改性别n);printf(7. 返回上一级 n);printf( 请输入选项 (1-7): );void DoAmend(BiTree &T)while(1)system(cls);ShowAmend();scan

4、f(%d,&choice);switch(choice)case 1:printf( 请输入修改后的姓名 : );scanf(%s,T-name);break;case 2:printf( 请输入修改后的出生年月 : );scanf(%s,T-birthday);break;case 3:printf( 请输入修改后的住址 : );scanf(%s,T-address);break;case 4:printf( 请输入修改后的婚姻状况 : );scanf(%d,&T-marriage);break;case 5:printf( 请输入修改后的在世情况 : );scanf(%d,&T-live)

5、;if(!T-live)printf( 请输入本人的过世时间 : );scanf(%s,T-livemassage);break;case 6:printf( 请输入修改后的性别( 1 表示男, 0 表示女): );scanf(%d,&T-sex);case 7:return;default:printf( 输入非法,请重新输入 n);break;void AmendInfo(BiTree &T)示今天生日成员 2.显示家谱 n);printf( 3.显示第 n 代所有人的信息 4.按姓名查找成员 n);printf( 5.按出生日期查找成员 6.为成员添加孩子 n);printf( 7.为成

6、员添加妻子 8.删除成员 n);printf( 9.修改成员信息 10.确定两个人的关系 n);printf( 11.按出生年月排序家谱成员 12.退出程序n);printf(n);PrintLine();printf(n);printf( 已经从文件读入初始家谱信息,请输入您的操作 (1-12): );int main(void)int choice;FILE *in;in = fopen(,r);BiTree T;CreatBiTree(T,in);/PreOrderTraverse_recursion(T);while(1)system(cls);ShowMenu();scanf(%d,

7、&choice);getchar();system(cls);switch(choice)case 1:LocateTime();count = 0;BirthToday(T);if(count = 0)printf( 今天家谱中没有成员过生日 n);system(pause);break;case 2:ShowFamilyTree(T);system(pause);break;case 3:printf( 请输入需要查询第几代人 : );count = 0;scanf(%d,&Nth);ShowNth(T);if(count = 0)printf( 第%d代尚未有人。 n,Nth);syst

8、em(pause);break;case 4:printf( 请输入要查询人的姓名 : );scanf(%s,searchname);if(strcmp(T-name,searchname) = 0)printf( 此人为家谱的祖先 ,其信息为:n);printf(%-10s%-10s%-10s%5d%5d%5dn,T-name,T-birthday,T-address,T-marriage,T-live,T-sex);printf( 他妻子的信息为 : n);printf(%-10s%-10s%-10s%5d%5d%5dn,T-lc-name,T-lc-birthday,T-lc-addre

9、ss,T-lc-marriage,T-lc-live,T-lc-sex);temp = T-lc;if(temp-rc)printf( 他孩子的信息为 :n);temp = temp-rc;while(temp)printf(%-10s%-10s%-10s%5d%5d%5dn,temp-name,temp-birthday,temp-address,temp-marriage,temp-live,temp-sex);temp = temp-rc;elsecount = 0;SearchByName(T);if(count = 0)printf( 对不起,不能检测这个人的信息 n);system

10、(pause);break;case 5:printf( 请输入要查询人的生日 : );count = 0;scanf(%s,searchdata);SearchByBirthday(T);if(count = 0)printf(%s 没有人过生日。 n,searchdata);system(pause);break;case 6:count = 0;printf( 请输入要添加孩子成员的姓名 : );scanf(%s,searchname);AddChild(T);if(count = 0)printf( 没有这个人 n);system(pause);break;case 7:count =

11、 0;printf( 请输入要添加妻子成员的姓名 : );scanf(%s,searchname);AddWife(T);if(count = 0)printf( 没有这个人 n);system(pause);break;case 8:count = 0;printf( 请输入要删除成员的姓名 : );scanf(%s,searchname);DeleteByName(T);if(count = 0)printf( 没有这个人 n);system(pause);break;case 9:count = 0;printf( 请输入要修改人的姓名 : );scanf(%s,searchname);AmendInfo(T);if(count = 0)printf( 没有这个人 n);system(pause);break;case 10:FixRelation(T);system(pause);break;case 11:count =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论