如何写论文?写好论文?免费论文网提供各类免费论文写作素材!
当前位置:免费论文网 > 范文百科 > 家谱制作软件

家谱制作软件

来源:免费论文网 | 时间:2017-01-18 06:03:06 | 移动端:家谱制作软件

篇一:家谱管理系统

武汉工商学院 信息工程学院

项目名称:家谱管理系统 学生姓名:周光波

学号:班级:14计科本1 指导教师:刘莹

2015年6月23日

目录

1引言 ............................................................................................................................................... 1 2 系统需求分析 ............................................................................................................................... 2

2.1 系统功能概述 .................................................................................................................... 2 2.2 系统模块 ............................................................................................................................ 2 3 系统存储结构说明 ....................................................................................................................... 3

3.1 系统存储信息说明 ............................................................................................................ 3 3.2 系统存储结构设计 ............................................................................................................ 3 4 系统功能设计及实现 ................................................................................................................... 4

4.1 输入家庭成员信息 ............................................................................................................ 4 4.2 输出所有成员 .................................................................................................................... 4 4.3 查找某人的所有孩子 ........................................................................................................ 5 4.4 查找某人的双亲 ................................................................................................................ 6 4.5 查找某人的所有祖先 ........................................................................................................ 7 4.6 查找某人的所有兄弟 ........................................................................................................ 8 5系统测试........................................................................................................................................ 9

5.1 主菜单 ................................................................................................................................ 9 5.2 录入家庭成员信息 ............................................................................................................ 9 5.3 输出家谱中的所有成员 .................................................................................................... 9 5.4 查找相应的家族成员 ...................................................................................................... 10 6 体会 ............................................................................................................................................ 13 参考文献......................................................................................................................................... 14 附录:代码..................................................................................................................................... 15

1引言

树形结构是区别于线性结构的另一大类数据结构,它具有分支性和层次性,在计算机科学的许多领域和日程生活中都具有十分广泛的应用,是数据表示、信息组织和程序设计的基础和有力工具,下面我们将通过树与二叉树的转换来制作家谱管理系统。

2 系统需求分析

2.1 系统功能概述

家谱管理系统将树形结构转换为二叉树结构,通过二叉树链表储存家谱信息,需要初始录入家谱信息,然后即可显示出全面的人员关系,还可查找某人的双亲、孩子、祖先、兄弟。充分利用二叉树的方便性和简洁性。

2.2 系统模块

图2-1 系统功能模块图

(1)录入家庭信息模块

用来初次输入家庭成员姓名,按照提示的亲缘关系来输入相应的人的姓名,没有对应的成员就会提示输入#,输入的家庭成员信息将保存在二叉树链表中,输入完所有信息后将返回主菜单,让用户选择下一步操作。 (2)输出所有家庭成员

进入此功能后会将家谱姓名按代数关系和亲子关系罗列出来,方便用户全面观察整个家谱。

(3)查找相应的家庭成员

进入要查找的成员类型,按提示输入成员姓名,查找到对应亲属会罗列出来,如果没查找到会有相应的提示,然后返回主菜单。如果没有用户输入的那个人,将提示输入错误,返回主菜单。

3 系统存储结构说明

3.1 系统存储信息说明

系统采用二叉链表来保存家庭成员姓名信息。将树形成员关系转化为二叉树结构保存。 用队列辅助暂时储存一些家庭成员。

3.2 系统存储结构设计

typedef char datatype;

typedef struct node{ //定义二叉树结构 datatype data[10]; struct node *lchild,*rchild; }bintnode;

typedef bintnode *bintree; //定义二叉树指针 typedef struct{ //队列定义 bintree a[MAXSIZE]; int front; int rear; int n; //队列元素个数 int depth; //家谱代数 }queue;

篇二:家谱管理系统1(1)

《软件综合设计》

院 系:计算机科学技术学院二系

班 级: 计11 – 2班

姓 名: 刘文秀(15)

合 作 者: 姜雪(05) 、岳奉宜(33)

指导教师: 薛曼玲

2013 年 12 月 01 日 家谱管理系统

《软件综合设计》任务书

一、题目:家谱管理系统

二、设计要求

(1)刘文秀(组长)、姜雪和岳奉宜组成课程设计小组。

(2)小组成员分工协作完成。要求每个成员有自己相对独立的模块,,同时要了解其他组员完成的内容。

(3)查阅相关资料,自学具体课题中涉及到的新知识。

(4)采用结构化、模块化程序设计方法设计,功能要完善,界面美观。

(5)所设计的系统应有菜单、动画和音乐。

(6)按要求写出课程设计报告,并于设计结束后1周内提交。其主要内容包括:封皮、课程设计任务书,指导教师评语与成绩、目录、概述、软件需求分析、总体设计、详细设计、程序的调试与测试、总结与体会、结束语、程序清单(带中文注释)、参考文献等。报告一律用A4纸打印,正文的中文字体为宋体,西文字体用Time New Roma,一律用小四号字,行距采用“固定值”18磅,首行缩进2字符。1级标题中文字体为黑体,西文字体为Time New Roma,采用三号字;段落为居中、段前18磅、段后12磅、行距采用“固定值”18磅,首行缩进:无,段中不分页,与下段同页。仅一级标题上目录。

三、课程设计工作量

由于是设计小组团结协作完成设计任务,一般每人的程序量在400行有效程序行以上,不得抄袭。

四、课程设计工作计划

2013年12月2日,指导教师讲课,学生根据题目准备资料,需求分析;

2013年12月3日,设计小组进行总体方案设计和任务分工;

2013年12月4日~2013年12月10日,每人完成自己承担的程序模块并通过独立编译;

2013年12月11日~12日,将各模块集成为一个完整的系统,并录入足够的数据进行调试运行;

2013年12月13日,验收、开始撰写课程设计报告;

2013年12月18日前,提交课程设计报告和软件。

指导教师签章: 教研室主任签章

指导教师评语与成绩

目 录

第1章 概述.................................................................................................................. 1

1.1 课题研究的目的和技术发展现状................................................................. 1

1.2 课题研究的主要内容..................................................................................... 1

1.3 课题研究的难点............................................................................................. 1

第2章 需求分析.......................................................................................................... 2

2.1 性能需求......................................................................................................... 2

2.2 功能需求......................................................................................................... 2

第3章 可行性分析...................................................................................................... 2

3.1 经济可行性分析............................................................................................. 2

3.2 技术可行性分析............................................................................................. 2

第4章 概要设计.......................................................................................................... 3

4.1 程序设计的基本思想..................................................................................... 3

4.2 总体功能模块图............................................................................................. 3

4.3相关应用技术.................................................................................................. 3

第5章详细设计...................................................................................................... 4

5.1日期信息的合法性检验.................................................................................. 4

5.2 添加成员孩子模块......................................................................................... 5

5.3 添加成员兄弟模块......................................................................................... 8

5.4 按照出生日期对家谱排序............................................................................. 9

5.5 由兄弟、孩子二叉树生成家谱文件......................................................... 12

5.6 按照姓名、出生日期查找家谱成员......................................................... 13

第6章 调试分析与测试结果.................................................................................... 14

6.1 测试方法..................................................................................................... 14

6.2 测试过程..................................................................................................... 14

6.3 测试结论..................................................................................................... 15

第7章 结束语............................................................................................................ 19

参考文献...................................................................................................................... 20

附 录.......................................................................................................................... 20

第1章 概述

1.1 课题研究的目的和技术发展现状

本《家谱管理系统》是以电子家谱的形式记载父系家族世袭、人物为中心。电子能准确记录家族成员出生卒年,以及生活地点、家庭成员等信息。一般情况下是不会出现信息丢失情况。更不需要担心传统家谱随着年代的久远字迹不清晰,有破损等情况的出现。所以本课题的研究目的是让大家不但能够非常容易的记录家族情况,而且能清楚的了解本家族信息,使用起来非常方便。现有的计算机技术足以支撑电子家谱的开发。家谱的科学管理不但有助于民族文化和地方文化的发展,而且有其自身的积极意义。例如本电子家谱是利用Visval C++ 6.0开发完成的。电子家谱的出现无疑让家谱焕然一新,但是传统家谱更能凸显出历史的韵味,文化的内涵。这是电子家谱所不能够替代的,电子家谱不可能成为文物。开发人员应该清楚的认识到这一点。

1.2 课题研究的主要内容

家谱,又称族谱、祖谱、宗谱等。一种以表谱形式,记载一个以血缘关系为主题的家族世系繁衍。本课题研究的主要内容是以电子家谱的形式记录、查询父系家族历史信息为主要内容。

1.3 课题研究的难点

建立输入文件以存放最初家谱中各成员的信息,以及能够对修改后的家谱存盘以备以后使用。用户界面的设计不够完美。功能上的设计难度很大。

篇三:家谱管理软件设计报告

家谱管理软件设计报告

计算机科学与技术04级(2)班蔡少伟 200433100067

一 问题陈述

1.1 问题提出背景

家谱是记载同一姓氏血缘关系的世系、重要人物、个人事迹、家族历史为主要内容的谱籍,又称“族谱”、“家谱”、“家乘”,还有称作“谱碟”。家谱上可以追本溯源,缅怀先人,下可以辨明关系,联络宗亲,从而启孝梯心,唤德善之本,激励后人,奋发有为,其作用不可尽述。在社会方面,家谱对于海内外华人寻根认祖,增强民族凝聚力起着重要作用。在文史工作者,家谱是研究人口学、社会学、经济学、历史学、氏族学、人物传记,以及研究地方史乃是重要资料。在个人方面家谱又是每个公民身份证明之一。如有些族规有载,某人若不遵法纪,为非作歹者,击鼓鸣公,革出族外,不准入谱。可见家谱无论在社会在个人都起着重要作用。

现在广东省已经是经济大省,正在向文化大省迈开步伐,家谱的科学管理不但有助于民族文化和地方文化的发展,而且有其自身的积极意义。广州作为广东的政治经济文化中心,若家谱管理能在广州得到应用,必会促进广州文化的发展,进一步推广应用,带动广东的文化事业。

1.2 概述设计目标和软件功能

本课程设计正是以家谱管理为课题,力求通过设计并实现一个计算机软件,来支持对家谱的存储、更新、查询、统计,打印等操作。本课程设计要实现的功能详述如下:

一,家谱信息的存储。将家谱成员的基本信息和各成员的关系存储在计算机中,并可永久保存。家谱成员的基本信息包括:编号,辈份,姓名,出生地,出生日期,死亡日期,性别,身高,学历,职业,最高职务/职称,寿命等。 二,家谱信息的更新。主要是对家谱中个人信息的修改,删除成员,添加成员。

三,查询功能。包括按姓名查询,按基本信息查询和按亲戚关系查询。其中按基本信息查询包括按身高,姓别,学历,寿命,职业查询。按亲戚关系查询中亲戚关系有:家人(三代),所有关系(三代),爷爷,奶奶,父亲,母亲,叔伯,姑姑,配偶,兄弟姐妹,堂兄弟姐妹,子女,孙子女等。

四,统计功能。统计的项目有:平均(最长/最短)寿命、平均(最高)身高、男女比例、平均(最高/低)学历、总人口,职业统计等。

五,打印功能。将家谱以较友好的格式在屏幕上显示。

二 设计方法阐述

2.1 软件总体框架

本软件的运行方式是程序开始经登录界面进入家谱管理系统。登录不成功(即登录信息不正确)则退出程序,登录成功则进入家谱管理系统。进入家谱管理系统后首先从磁盘读出家谱信息和各家庭成员的基本信息,以邻接表的形式把各成员结点链成双向链表。生成链表过程中每读出一个成员的信息就生成一新结点,并把该结点加在表尾。信息读取完毕,建立起邻接表形式的双向链表,便可以对家谱进行各种操作。程序结束后再把信息存储在磁盘上。本软件的总体运行框架如下:

注:在打印家谱操作中,实现了支持鼠标的功能。

2.2 软件设计思路

(1)数据结构

在数据结构上,家庭成员之间的关系,用树形结构(家族树)表示,这是本家谱管理系统的逻辑结构;而家族树在内存中的存储结构是采用邻接表。邻接表的实现:家庭成员基本信息设置数字编号,用于唯一地标识记录,树结点用家庭成员的编号标识,通过编号,建立家庭成员的基本信息与树结点的联系;家庭成员基本信息另设置邻接点的数字编号,包括第一个孩子,父亲,配偶和下一个弟弟或妹妹的编号,暂无该关系的则该关系编号为0,通过这些编号可以建立起结一个树结点和其它各结点之间的联系。这样,就建立起邻接表形式的家族树。邻接表的形式如下:

在设计家谱管理系统的时候,最重要的是决定使用何种方式组织家族树,即采用何种数据结构。本系统是采用邻接表来组织家族树的。这是因为邻接表可以以链表的形式来组织,而在链表上进行操作是比较容易实现的,而且链表的组织形式简单,不容易出错。再者,由于邻接表中各结点都记下了其邻接点的编号,通过编号建立各结点的联系,可以表示树。这样,采用邻接表的数据结构,在准确表示家族树的前提下,使得对家谱的操作变得更简便易行。

(2)类分布

本软件的设计和实现是基于面向对象的思想的,为了方便软件的设计和管理,我将它的实体对象和管理实体对象的数据结构相分离。因此,软件的类有实体类和应用类。各个类的具体功能如下:

AppClass 应用程序类,提供软件接口。

Family 家族类,实现家谱管理的各个功能。

person成员类,家族中每一个成员都是成员类的一个实体,实现对成员个人的操作。

String自定义字符串类,提供字符串各种操作,以便使程序对字符串的操

作在各个编译器能编译通过。

Menu菜单类,为了软件的友好,以菜单选择的方式展示给用户。

(3)具体实现

本软件通过应用程序类提供软件的接口。家谱管理系统的整体控制由应用程序类的run函数负责。而应用程序类AppClass中有私有成员Family * sept,对家谱的各种操作就是通过sept 调用Family类中的函数来实现的,应用程序类中的函数只是提供各种操作的接口。run函数首先将用户名和密码从主控文件加载到内存,如果用户登录成功,则从主文件中加载家谱信息和各成员信息到内存,建立以双向链表形式存在的邻接表来表示家族树。接着用户可通过菜单选择进行各种操作,在程序结束运行时,把操作后的家谱信息和各成员信息写回到主文件中。如果用户名和密码有所改动,把新的用户名和密码写回主控文件中。

家谱的具体操作是在Fmily类中实现的,在这之前首先由person类实现成员个人的相关操作,如返回各种个人信息,设置各种个人信息,不同版本的构造函数,输入个人信息,输出个人信息,修改个人信息,删除个人信息,把个人信息写入指定文件等。

其中返回各种个人信息和设置各种个人信息是为了方便对个人进行操作,包

括个人相关信息的获取和赋值。输入个人信息的操作根据实际情况由personinput(),childinput(),deathinput()这三个函数实现。personinput()负责一般成员的信息输入,包括以配偶身分加入家谱的成员的信息输入;childinput()负责刚出生婴儿的信息输入;deathinput()负责已故成员的信息输入。分成三个函数来实现是因为这三种情况所要输入的信息不全一样,如childinput()所需输入的信息较少,而deathinput()所需输入信息最多,连寿命和死亡日期也要输入。删除个人信息是从家谱中删除该成员的操作,函数为delinformation(),删除个人信息时保留指针信息即其在家谱中邻接点的编号,这样才能避免因删除了一个成员导致家谱散落而被破坏。

这样,实现了成员个人的相关操作后,接下来便是在此基础上由Fmily类来实现家谱的各种操作,这也是软件的主体部分。

通过Fmily类实现的家谱操作主要分为六大部分:一,家谱的初始化;二,家谱信息的读取和存储;三,成员管理,包括添加成员,删除成员,成员信息修改;四,查询,包括按姓名查询,按基本信息查询和按亲戚关系查询;五,统计,包括平均(最长/最短)寿命统计、平均(最高)身高统计、男女比例统计、平均(最高/低)学历统计、总人口/在世总人口统计,职业统计;六,打印家谱。

具体实现如下:

一, 家谱的初始化。每次启动程序时的初始化主要是对Fmily类中的私有

成员赋值,其中成员int currentnum记录下一个成员的编号,初始化为1;其它Fmily类中的私有成员成员全是统计数字,全部初始化为0。当从磁盘文件中加载家谱信息时,这些私有成员则赋值为文件中记录

的数字。而这里指的家谱的初始化更着重于指生成家谱,即第一次使用本软件时程序会要求用户先输入家谱中的第一个成员的信息,一般这第一个人往往是家谱记载中家族的始祖宗。

相关方法:

firstperson()

函数:void firstperson()

功能:输入家谱中的第一个成员的信息,并对家谱信息初始化。

二, 家谱信息的读取和存储。进入家谱管理系统后,首先从磁盘文件中读

取家谱信息,生成链表,这样才能进行家谱的其它操作;程序运行结

束时,又将家谱信息写回文件。

相关方法:

(1)write

函数原型:bool Family::write(char*filename)

功能实现:把家谱信息包括家谱统计信息和各个成员信息写入指定的

文件中,若操作成功,return true。

关键语句:person* p=head;

while(p)

{

p->write(file);

p=p->next;

}

(2)read

函数原型:bool Family::read(char *filename)

功能实现:从指定文件中读取家谱信息包括家谱统计信息和各个成员

信息,每读取一个成员的信息就生成一person结点,并以

Family类的私有成员person * head作头指针,将各个成员

链成双向链表,若操作成功,return true。

三, 成员管理。包括添加成员,删除成员,成员信息修改。

添加成员,按新添成员以何种身份加入家谱分为四种情况:按配

偶添加,按一般成员添加,按婴儿添加和按已故成员添加。添加成员的时候,需要输入成员信息,这时是调用person类中输入个人信息的相关函数来实现。再根据成员加入家谱时的身份和关系人,给指针信息即邻接点的编号赋值,最后将该新添成员链在表尾完成成员的添加。调用person类的personinput(),childinput(),deathinput()等函数。

删除成员,用户输入要删除的成员的名字,找到该成员并删除该

成员在家谱中的记录,调用person类的delinformation()函数。

成员信息修改,用户输入要删除的成员的名字,找到该成员并修

改其信息,提供菜单,用户可选择其中一项或若干项进行修改。调用 person类的change()函数。

相关方法:

(1) enterspouse()

函数原型:void Family::enterspouse()

功能实现:按配偶添加成员,并根据新添成员的信息修改相关的家谱

统计信息,如平均身高等。

(2) enterchild()

函数原型:void Family::enterchild()

功能实现:按婴儿添加成员,并根据新添成员的信息修改相关的家谱

统计信息。

(3) entercommon()

函数原型:void Family::entercommon()

功能实现:按一般成员添加成员,并根据新添成员的信息修改相关的

家谱统计信息。

(4) enterdeath()

函数原型:void Family::enterdeath()

功能实现:按已故成员添加成员,并根据新添成员的信息修改相关的

家谱统计信息。

(5) deleteperson()

函数原型:void Family:: deleteperson()

功能实现:删除指定的成员,保留其编号及邻接点编号,并根据新添

成员的信息修改相关的家谱统计信息。


家谱制作软件》由:免费论文网互联网用户整理提供;
链接地址:http://www.csmayi.cn/show/151142.html
转载请保留,谢谢!
相关文章