数据结构课程设计--家谱管理系统设计与实现.docVIP

数据结构课程设计--家谱管理系统设计与实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计 题目:家谱管理系统设计与实现 姓名:何健良 学号: 200814602013006 需求分析 记录某家族历代的家族成员情况及关系,对家谱的存储、更新、查询、统计等的操作。 存放记录家谱以后缀名为txt的文件形式记录家谱中各成员的信息。 家族成员信息中均包含以下内容:如 姓名、出生地、出生日期、死亡日期、性别、身高、学历、职业、职称。 能对修改后存盘的家谱文件进行随时的修改及更新,方便操作。 文件中打印的家谱及读出的家谱,应该形成树状的关系。 家谱建立好后,以Dos(或windows下的命令行模式)字符方式下运行。 显示第n代人的所有信息(即家谱所有人的信息),并查询家谱中已有姓名的信息。 按亲属关系的方式进行查询,输出上下亲属关系的姓名。 随意出进添加某人的孩子,及删除某人(若其存在后代,则一并删除)。 修改某人的信息。 统计家族中的相关信息(如:平均寿命、平均身高、男女比例、家庭平均人口、平无(最高/低)学历等…..) 概要设计 采用二叉树进行家谱的管理,并以友好的输出形式展示,具有支持鼠标、全屏的可视化操作、树形显示家族,现程序涉及围绕家谱管理软件的类型,但基本操作者在”家谱”类型中。 定义”个人的信息”类型: ADT Person{ 数据对象: D={Pj|Pj={姓名、 出生日期、性别、出生地、出生日期、死亡日期、学历、身高、职业、职称},j=0,1,2,3……n,其中n=0} 数据关系:R={} 基本操作:无 }ADT Person 定义”家谱类型文件”类型 ADT FamilyTypeFile{ 数据对象:D={Aj|Aj属于person,j=1,2,3,……,n其中n=1} 数据关系:D中每个对象用特定的字符隔开, R={Aj,String|Aj属于D,j=1,2,3,……n,其中n=1,String属于字符串类型,为Aj父亲姓名(若String=-1,Aj无父亲,若String=Aj的姓名,表示家谱文件结束)} 基本操作: 打开家谱类型文件(.txt),建立兄弟、孩子二叉树。 从内存读取兄弟、孩子二叉树,并建立家谱类型文件。 }ADT FamilyTypeFile 3.定义”家谱”类型 ADT Family{ 数据对象:D={Aj|Aj属于Person,j=1,2,3……n其中n=0} 数据关系:V={Aj-1,Aj|aj-1,aj属于D,j=2,3,…..n其中n=2,且Aj-1与Aj为祖先与后代关系(parent) ,判断是否有后代,及其兄弟的关系,能过二叉链表表示} 基本操作: 显示某人信息。 修改某人信息。 增加某人孩子。 删除某人。 通过某人查找其双亲、孩子、兄弟。 }ADT Family 详细设计 1.定义”个人信息”类型 struct person { char sex[10],birthaddress[20],birthday[14],deathday[20];//姓名,性别,出生地,生日 char name[20],parentname[30]; char work[15],xueli[10],consort[20], zhiche[15];//职业 学历 配偶 职称; char stature[10]; //身高 }; 2.定义”家谱类型文件”类型 { //一个人的有关信息在磁盘文件中存储结构 DWORD res; HANDLE hIn; INPUT_RECORD mouseRec; hIn = GetStdHandle(STD_INPUT_HANDLE); // 获取标准输入设备句柄 COORD pos={21,16},posa={33,27},posb={52,27}; button a[10],b[2],c[2]; SetConsoleCursorPosition(hOut,pos); a[0].createbutton(pos, 姓 名 ,14,236,hOut); //姓名 pos.X+=30; a[1].createbutton(pos, 性 别 ,14,236,hOut); //性别 pos.X+=12; c[0].createbutton(pos,男,14,236,hOut); pos.X+=4; c[1].createbutton(pos,女,14,236,hOut); pos.Y+=2;pos.X-=46; a[2].createbutton(pos, 身 高 ,14,236,hOut); //身高 pos.X+=20; SetConsoleCursorPosition(hOut,pos); cout

文档评论(0)

beifanglei + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档