- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
长春大学数据结任务书
目 录
一、设计题目 1
二、设计目的 1
三、设计分析 1
四、总体设计 2
五、详细设计 2
六、系统调试 3
七、结论 4
一、设计题目
家谱管理系统
二、设计目的
用已经学过的知识设计一个简单的应用程序,方便家谱的管理。
了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
家谱用于记录某家族历代家族成员的情况与关系。本课程设计要求设计并实现一个计算机软件,支持对家谱的存储、更新、查询、统计等操作。
培养大家的由理论到实践的学习能力,增强同学们的团队合作精神。
三、设计分析
内部要求:要求将家谱信息看作树形结构处理,并可存储在外存。数据可一次读入内存;
外部要求:这一级要求系统具备下列基本功能:
1、家庭成员信息存储:将每个家庭成员的基本信息存储在计算机中(可永久保存)。家庭成员的基本信息至少应包括:
(姓名,出生地,出生日期,死亡日期,性别,身高,学历,职业,最高职务/职称,…);
2、家族关系存储:将各家庭成员之间的关系,存储在计算机中(可永久保存);
3、更新:家谱数据的更新(修改、删除、加入);D)输出:将家谱以较友好的格式输出(显示);
4、查询:按基本信息查询成员,按亲戚关系查询;
四、总体设计
对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图。
五、详细设计
家庭成员基本信息用线性表表示,程序结束后存储在磁盘上,程序开始是从磁盘读出;
家庭成员之间的关系,用树形结构(家族树)表示;
家族树在程序结束后存储在磁盘上,程序开始是从磁盘读出;
树在内存中的存储结构:邻接表或孩子兄弟链,带父指示器;
家庭成员基本信息设置数字编号,用于唯一地标识记录;
树结点用家庭成员的编号标识。通过编号,建立家庭成员的基本信息与树结点的联系;
树在磁盘文件中的存储结构:存储串行化结果,如“根-叶序列”;
所谓“根-叶序列”,是指,从树根到每个叶子结点的路径。路径的排列次序表示兄弟的次序。例如,下图表示的树的“根-叶序列”为:
1, 2, 4
1, 2, 6
1, 2, 8, 5(这三行的次序,表示4,6,8的次序,即4,6,8分别是2的第1,2,3个孩子)
1, 7
1, 3, 9
1, 3, 10
六、系统调试
系统的所有功能:如图1
图1
建立家谱:如图2
图2
七、结论
在设计的初期,首先通过文档的整理,初步定了一下本系统主要实现的功能:建立新的家庭系谱图,在家谱中增加新成员以及其基本信息,更新一个成员的信息,删除和查看一个人的信息,通过亲属寻找一个成员。
在设计中期,进行算法设计,代码编写。
最后进行上机调试,并在调试过程中改进代码。撰写说明书。
此次设计使我学的知识得到了升华。
附源代码:
#include iostream.h
#include fstream.h
#include string.h
#include stdlib.h
#include genealogy.h
void main()
{
GEnealogy ged;
person pnode=new CSNode;
person resultname=new CSNode;
int choice1;
char Name[max_char_num],tag[max_char_num];
strcpy(tag,-1);
while(1)
{
//输出主画面选择菜单
cout***************************Genealogy System***************************endl;
cout1.Build a new Genealogy endl;
cout2.Read Genealogy Data from a binary dat fileendl;
cout3.Save Genealogy Data into diskendl;
cout4.Add a person to the Genealogyendl;
cout5.Modify a person in the Genealogyendl;
cout6.Delete a person and his
文档评论(0)