[计算机软件及应用]家谱管理系统

[计算机软件及应用]家谱管理系统

ID:23753833

大小:2.14 MB

页数:50页

时间:2018-11-10

[计算机软件及应用]家谱管理系统_第1页
[计算机软件及应用]家谱管理系统_第2页
[计算机软件及应用]家谱管理系统_第3页
[计算机软件及应用]家谱管理系统_第4页
[计算机软件及应用]家谱管理系统_第5页
资源描述:

《[计算机软件及应用]家谱管理系统》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、江西农业大学科技月月评题目:家谱管理系统小组成员:陈江、易伟、段浩然(1107)汪志民、张馨香(1113)2012、11、30目录1.问题陈述12.设计方法阐述12.1总体规划12.2功能分析与实现32.2.1主界面介绍32.2.2增加成员功能52.2.3显示家族成员信52.2.4删除功能62.2.5查询功能72.2.6查询第n代所有人得信息82.2.7修改成员信息82.2.8连接数据库92.2.9绘制图形家谱102.2.10小结113.总结114.代码125.家族成员46家谱管理系统1.问题陈述

2、家谱用于记录某家族历代家族成员的情况与关系。现编制一个家谱资料管理软件,实现对一个家族所有的资料进行收集整理。支持对家谱的存储、更新、查询、统计等操作。并用计算机永久储存家族数据,方便随时调用。2.设计方法阐述2.1总体规划在动手编制程序之前,先要做好程序的规划,包括程序储存数据所用的结构,数据类型等等,只有确定了数据类型和数据结构,才能在此基础上进行各种算法的设计和程序的编写。首先是考虑数据类型。在家谱中,家族成员是最基本的组成部分,对于家族管理中,已经不能再进行细分了,所以选定家族成员作为数据

3、的基本类型,并在程序中定义Person类。ClassPerson{Stringname;//姓名intage;//年龄Stringsex;//性别Birthdayymd;//出生日期StringfatherName;StringmotherName;StringspouseName;intchildNum;intlevelTemp;//代数BooleanisAlive;//是否健在}为方便计算机进行比较,在Person类的某些属性中用数字代替了某些不会改变的字符串,譬如判断是否健在(true为是,

4、false为否)。在设置日期上,为1家谱管理系统方便以后的计算与比较,也将日期用整型数字表示1999-05-05表示1999年5月5日,这种表示方法只需在输入和输出上作少许的运算便可方便地与日期进行转换。在设计家谱以图谱的形式来显示时,从直观来说,选择树型结构无疑是最直观易懂的,我在一开始构思的时候也是从树型结构去想的,但是二叉树不能满足我的要求,我的家谱中的一个节点有父亲,母亲,孩子(个数任意),配偶,兄弟姐妹(个数任意).于是我自己设计了一个存储结构,一个节点有四个指针域,指向父亲(或母亲),

5、指向配偶,指向兄弟姐妹。节点孩子兄弟姐妹父(母)配偶图(1)这样,要找节点的父母亲则只需访问父亲节点,和父亲节点的配偶节点,其他的类似。于是我设计了节点的类:classFamily{staticintnum=0;//节点的个数Personin;//数据域Familyparents;//指向父亲的引用Familyspouse;//指向配偶的引用Familychild;//指向孩子的引用Familybro_sis;//指向兄弟姐妹StaticFamilyroot;//祖先节点}难题就是如何将所有的家族

6、成员同过祖先节点连接起来。我的思路是先将所2家谱管理系统有的家族成员的信息用一个TXT文本存储起来,然后读出来,用一个数组mem存起来,之后初始化祖先节点,根据祖先节点的数据域的信息来添加,先添加祖先的父(母)亲,若有则从数组中读出来添加,否则添加兄弟姐妹,再添加配偶,最后添加孩子,最重要的是每添加一个节点时应该判断该节点是否已经在家族树中了,若存在则直接重家族树中找出来对其进行相应的操作,若不在则从数组mem中读取,之后遍历创建其兄弟姐妹,配偶,孩子。2.2功能分析与实现构想好总体规划之后,便开

7、始设计程序中需要用到的各个功能函数,初步构想是要先实现最基本的几项功能,其中数据操作的有:增加成员,修改成员资料,删除成员,数据查询的有:查看某代信息,按姓名查找,按生日查找,查看成员关系以及显示查看家族成员信息表,还有就是绘制家谱图以及连接数据库的操作。2.2.1主界面介绍主界面由三部分组成:菜单、生日公告栏以及欢迎封面。下面为主界面图:图1主界面3家谱管理系统图2菜单1图3菜单24家谱管理系统说明:(1)菜单中主要包括三大子菜单:文件、编辑、帮助。其中文件菜单中有连接数据库以及退出的操作,编辑

8、中有所有功能实现操作。(2)生日公告栏为系统自动获取当日时间以判断今日家族中是否有人生日,如果有则会自动发出祝福,本功能为创新功能。(3)特别说明:在每一个功能界面中都设有带图标的快捷功能键,便于操作。(4)主界面的代码位于:FTFrame.java中,下面将一一介绍功能。实现主界面的方法:位于publicclassFTFrame类中2.2.2增加成员功能我设计了两种添加方式,首先,添加进去的人要与家族里的某一个或某几个有联系,比如是某个人的孩子啊,或配偶,不然是无法加入进这个家族

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。