家谱用于记录某家族历代家族成员的情况与关系本课程设.docVIP

  • 21
  • 0
  • 约4.26千字
  • 约 7页
  • 2016-11-27 发布于河南
  • 举报

家谱用于记录某家族历代家族成员的情况与关系本课程设.doc

家谱用于记录某家族历代家族成员的情况与关系本课程设

实习报告 题目: 家谱用于记录某家族历代家族成员的情况与关系。本课程设计要求设计并实现一个计算机软件,支持对家谱的存储、更新、查询、统计等操作。 一.需求分析 要求将家谱信息看作树形结构处理,并可存储在外存。数据可一次读入内存; 家庭成员信息存储:将每个家庭成员的基本信息存储在计算机中(可永久保存)。家庭成员的基本信息至少应包括:(姓名,出生地,出生日期,死亡日期,性别,身高,学历,职业,最高职务/职称,…); 家族关系存储:将各家庭成员之间的关系,存储在计算机中(可永久保存); 更新:家谱数据的更新(修改、删除、加入); 输出:将家谱以较友好的格式输出(显示); 查询:按基本信息查询成员,按亲戚关系查询; 统计:统计并打印(显示)结果,统计的项目有:平均寿命、平均身高、男女比例、家庭平均人口. 二.概要设计 1.设定栈的数据类型定义: Stack{ 数据对象:D={a|a属于familyTree}; 数据关系:R1={a1,a2|a1,a2属于D}; 基本操作: Stack() 操作结果:构造一个空栈 ~Stack() 初始条件:栈已存在; 操作结果:栈被销毁; GetTop(); 初始条件:栈已存在; 操作结果:若栈不空,返回栈顶元素; Push(familyTree*); 操作结果:往栈顶加入一个元素; Pop(); 初始条件:栈已存在; 操作结果:若栈不空,则栈顶元素出栈; Length(); 操作结果:返回栈的元素数目; GetBasePointer(); 操作结果:返回栈底指针; GetTopPointer(); 操作结果:返回栈顶指针; }Stack; 2.日期的定义: struct date{ int year,month,day; }; 3.家谱树的结点定义: struct familyTree { int number; date birthday,deathday; char name[20],birthAdress[10],sex[6],educationLevel[10],occupation[10]; double height; familyTree *firstchild,*nextsibling,*father,*wife,*husband; }; 4.本程序包含三个基本模块. 1)main函数模块:这一模块主要实现操作界面; 2)栈模块:这一模块主要实现栈的操作; 3)主功能模块:该模块实现基本的建树,更新等操作; 5.建立二叉树的伪码算法: While(从文本读入的不为空) { 生成一个结点,把读入内容赋给它; 若已经读入过,刚搜寻其指针所在; 否则新生成的结点添加为上一结点的孩子; } 三.详细设计 1.家谱树的主要结构: class Family{ private: familyTree *head; //这是一个头结点,主要用来定位家谱树的根结点; int length,totalNum; //整型数length用来记录家谱中本姓的人口数; //totalNum用来记录包括妻子在内的所有人口数; public: Family(); //构造函数,初始化整棵树; ~Family(); //析构函数,销毁整棵树; void LoadFamilyTree(); //读取文本建树函数,用来从外存中读取信息,同时建立家谱树 //是整个程序的关键所在; void ModifyInformation(); //修改家谱成员函数; void AddMember(); //增加家谱成员函数; void DeleteMember() //删除家谱成员函数;; void Save(); //保存对家谱的更新的存储函数; void Show(); //用横向树在屏幕上输出家谱树函数; void Traverse(); //遍历所有家谱成员函数; void Inquire(); //查询成员资料函数; void Statistics(); //统计函数; protected: void UpdateNumber(); //更新序号函数,用于更新树之后成员序号的重定位; int NumberOfChild(familyTree *); //计算成员的孩子数目; familyTree * Search(); //定位成员结点在内存中的位置; void DeleteNode(familyTree*); //删除一结点 }; 2.实现过程:该问题最主要难点在于如何建立一棵家谱二叉树.联想到在课程中学习的用先

文档评论(0)

1亿VIP精品文档

相关文档