家谱管理系统1(1).doc

上传人:hw****26 文档编号:2358191 上传时间:2019-05-08 格式:DOC 页数:24 大小:569.67KB
下载 相关 举报
家谱管理系统1(1).doc_第1页
第1页 / 共24页
家谱管理系统1(1).doc_第2页
第2页 / 共24页
家谱管理系统1(1).doc_第3页
第3页 / 共24页
家谱管理系统1(1).doc_第4页
第4页 / 共24页
家谱管理系统1(1).doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、 软件综合设计院 系: 计算机科学技术学院二系 班 级: 计 11 2班 姓 名: 刘文秀(15) 合 作 者: 姜雪(05) 、岳奉宜(33) 指导教师: 薛曼玲 2013 年 12 月 01 日家谱管理系统软件综合设计任务书一、题目:家谱管理系统 二、设计要求(1)刘文秀(组长) 、姜雪和岳奉宜组成课程设计小组。(2)小组成员分工协作完成。要求每个成员有自己相对独立的模块, ,同时要了解其他组员完成的内容。(3)查阅相关资料,自学具体课题中涉及到的新知识。(4)采用结构化、模块化程序设计方法设计,功能要完善,界面美观。(5)所设计的系统应有菜单、动画和音乐。(6)按要求写出课程设计报告,并

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

3、计任务,一般每人的程序量在 400行有效程序行以上,不得抄袭。四、课程设计工作计划2013年 12月 2日,指导教师讲课,学生根据题目准备资料,需求分析;2013年 12月 3日,设计小组进行总体方案设计和任务分工;2013年 12月 4日2013 年 12月 10日,每人完成自己承担的程序模块并通过独立编译;2013年 12月 11日12 日,将各模块集成为一个完整的系统,并录入足够的数据进行调试运行;2013年 12月 13日,验收、开始撰写课程设计报告;2013年 12月 18日前,提交课程设计报告和软件。指导教师签章: 教研室主任签章 指导教师评语与成绩指导教师评语:课程设计验收成绩:

4、 课程设计报告成绩: 课程设计 总成绩: 指导教师签章 年 月 日目 录第 1 章 概述 .11.1 课题研究的目的和技术发展现状 .11.2 课题研究的主要内容 .11.3 课题研究的难点 .1第 2 章 需求分析 .22.1 性能需求 .22.2 功能需求 .2第 3 章 可行性分析 .23.1 经济可行性分析 .23.2 技术可行性分析 .2第 4 章 概要设计 .34.1 程序设计的基本思想 .34.2 总体功能模块图 .34.3相关应用技术 .3第 5 章 详细设计 .45.1日期信息的合法性检验 .45.2 添加成员孩子模块 .55.3 添加成员兄弟模块 .85.4 按照出生日期对

5、家谱排序 .95.5 由兄弟、孩子二叉树生成家谱文件 .125.6 按照姓名、出生日期查找家谱成员 .13第 6 章 调试分析与测试结果 .146.1 测试方法 .146.2 测试过程 .146.3 测试结论 .15第 7 章 结束语 .19参考文献 .20附 录 .200第 1 章 概述1.1 课题研究的目的和技术发展现状本家谱管理系统是以电子家谱的形式记载父系家族世袭、人物为中心。电子能准确记录家族成员出生卒年,以及生活地点、家庭成员等信息。一般情况下是不会出现信息丢失情况。更不需要担心传统家谱随着年代的久远字迹不清晰,有破损等情况的出现。所以本课题的研究目的是让大家不但能够非常容易的记录

6、家族情况,而且能清楚的了解本家族信息,使用起来非常方便。现有的计算机技术足以支撑电子家谱的开发。家谱的科学管理不但有助于民族文化和地方文化的发展,而且有其自身的积极意义。例如本电子家谱是利用 Visval C+ 6.0开发完成的。电子家谱的出现无疑让家谱焕然一新,但是传统家谱更能凸显出历史的韵味,文化的内涵。这是电子家谱所不能够替代的,电子家谱不可能成为文物。开发人员应该清楚的认识到这一点。1.2 课题研究的主要内容家谱,又称族谱、祖谱、宗谱等。一种以表谱形式,记载一个以血缘关系为主题的家族世系繁衍。本课题研究的主要内容是以电子家谱的形式记录、查询父系家族历史信息为主要内容。1.3 课题研究的

7、难点建立输入文件以存放最初家谱中各成员的信息,以及能够对修改后的家谱存盘以备以后使用。用户界面的设计不够完美。功能上的设计难度很大。1第 2 章 需求分析2.1 性能需求系统的核心是利用对话框的连接和文本处理来存储和修改家族管理系统的信息联系,其中的每一个动作都可能影响到其他的功能。使用方便,易于传播,数据共享等性能。易于维护。2.2 功能需求 建立输入文件以存放最初家谱中各成员的信息。 成员的信息中均应包含以下内容:姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡)也可附加其它信息、但不是必需的。 能对修改后的家谱存盘以备以后使用。 能从文件中读出已有的家谱,形成树状关系。 家谱建立

8、好之后,以图形方式显示出来。 显示第 n代所有人的信息。 按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息) 。 按照出生日期查询成员名单。 输入两人姓名,确定其关系。 某人添加孩子。 删除某人(若其还有后代,则一并删除) 。 修改某人信息。 按出生日期对家谱中所有人排序。 打开一家谱时,若家谱中某人的生日在打开家谱的那一天,应给出提示 。第 3 章 可行性分析3.1 经济可行性分析对系统开发规模进行估算属此软件项目属于小规模软件开发。所以开发人员三到五人即可。开发,维护等成本相对较低。所以从经济可行性分析的角度来看此家谱管理系统适于开发。3.2 技术可行性分析根据软件系统功能、性能要

9、求的各项约束条件从技术的角度实现系统的可行性。家谱信息以树的形式一次读入内存,而个人的各种资料虽然目前条目不多,但随着程序的升级,以后可能越来越大。我把树形结构和个人信息记录的文档分为两个文件保存在外存中,一个文件串行化的记录家谱树的结构化信息,保持少量个人信息作为识别标志;另一个文档保存完整的个人信息。索引时,以树形中的少量信息为依据在另一个文件中找到全部个人信息资料。2第 4 章 概要设计4.1 程序设计的基本思想家谱管理系统的总体设计思路是先为程序搭建好一个人结构框架,家庭成员之间的关系,用树形结构(家族树)表示,这是本家谱管理系统的逻辑结构。根据 MFC的特点,采用 Cfamilytr

10、eeDlg类实现用户窗口界面指令对于家谱的各种操作。有文件控制和家谱控制两大模块, 按生日查找、删除成员、文件输入输出、修改成员信息、按名字查找、成员关系显示、按代数显示等各种操作。然后再根据需求分析逐步增强程序的功能和性能。4.2 总体功能模块图4.3相关应用技术1.定义“家谱”类型2.用结构 Date存储日期3.用结构 QuickSortNode存储快速排序数组值(为快速排序而设) 4.根据家谱的特点,采用孩子-兄弟的二叉树链表表示法(链表的基本单位为以结构ersonNode 表示的结点) ,各种操作以 COperationFamilytree类来实现。5.根据 MFC的特点,采用 Cfa

11、milytreeDlg类实现用户窗口界面指令对于家谱的各种操作。3第 5 章 详细设计5.1日期信息的合法性检验 图 5-1 日期信息的合法性检查 Int COperationFamilytree:ReadNode(FILE *fp, Person if(T-info.live=0)fscanf(fp,“%d%d%d“,fscanf(fp,“%s“,parentname);if(!IsDateValid(T-info.birthday) /出生日期合法性检查return FILE_DATA_NOT_PRACTICAL;if(T-info.live=0) /若过世,死亡日期合法性检查if(!Is

12、DateValid(T-info.deathday)return FILE_DATA_NOT_PRACTICAL;return OK;5.2 添加成员孩子模块图 5-2 添加成员孩子流程图5Int COperationFamilytree:CreateFamilytree(CString filename)/本函数建立一新家谱DestroyFamilytree(); /建立一新家谱之前,清空原有家谱FILE* fp;if(fp=fopen(filename,“r“)=0) /打开文件 filenamereturn READ_FILE_ERROR;T=new PersonNode; /定义根结点

13、if(!T)return NOT_ENOUGH_MEMORY;T-child=0;T-sibling=0;T-parent=0;Person parentT, temp; /定义两个临时结点char parentnameMAX_CHARNUM; /定义一个临时字符串数组/读取根结点值,(姓名,出生日期(年,月,日),婚否,地址,健在否,(如过世,还有死亡日期)int result;result=ReadNode(fp,T,parentname);if(result=FILE_DATA_NOT_PRACTICAL)delete T; /若不合法,删除申请的堆空间T=0;return result

14、;if(strcmp(T-info.name,parentname)=0)/根结点名字与其父亲名字相同,说明为空树delete T;T=0;return PEDIGREE_EMPTY;temp=new PersonNode; /申请一结点if(!temp) /申请失败DestroyFamilytree(); /释放申请空间return NOT_ENOUGH_MEMORY;result=ReadNode(fp,temp,parentname);while(strcmp(temp-info.name,parentname)&strcmp(temp-info.name,“end“) /读取信息结束的条件是两个人的名字同为 end

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。