- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 2024年中国中式养生水行业发展趋势洞察报告.pdf VIP
- 湘科版科学五年级上册全册教学设计教案.pdf
- 大家的日语 1-9课测试试卷1.doc VIP
- 政府采购评审专家考试题库含答案.docx VIP
- JJF 1593-2016 国家检定校准 规范.docx VIP
- Service invoice 服务发票模板.doc VIP
- 浅谈危险化学品企业安全管理当中存在的问题与建议对策.docx VIP
- 甘肃省兰州市第五十八中学教育集团2024-2025学年高三上学期建档考试物理试题(无答案).docx VIP
- 幼儿园小班妈妈在哪儿课件..pptx VIP
- 建筑工程冬季施工防冻保温实施方案.doc VIP
文档评论(0)