家谱树管理系统设计.doc
文本预览下载声明
数 据 结 构
——课程设计报告
家谱树管理系统
学生姓名: 张 朝 政
学 号: 0807020218
年级专业: 08级信息与计算科学
班 级: 信计二班
指导老师: 李英龙老师
学 院:数学与计算科学学院
同组成员:夏 鑫 杨贵生 左 斌
起止时间:2010.6.21—2010.6.27
目 录
1 前言 3
2 课程设计的相关说明 3
2.1课程设计的要求 3
2.2课程设计的需求分析 3
2.3课程设计的实验环境 4
3 家谱树管理系统的概要分析 4
4 家谱树管理系统的详细分析 8
4.1函数调用的关系图 8
4.2 系统运行主界面 9
4.3各主要功能的函数实现 10
5 系统各功能的调试分析(附有运行截图) 19
5.1文件操作模块 19
5.11新建家谱 20
5.12打开家谱 20
5.13保存家谱 20
5.2家谱操作模块 21
5.21删除某人 21
5.22增加孩子 22
5.23两人关系与某代信息 22
5.24姓名查找 22
5.25个人修改 23
5.3调试小结 23
6 心得体会 24
6.1.个人感想及不足之处 24
7 参考文献 25
附录 26
家谱树管理系统
张 朝 政
(湖南科技大学 信息与计算科学专业 0807020218)
前 言
本次课程设计任务是通过编写一个简单的《家谱树管理系统》,进一步学习用MFC开发简单的管理系统。采用Visual C++ 6.0软件为主要开发工具,更进一步了解系统开发的需求分析、层次设计、数据结构分析、编码测试、模块组装与整体调试的全过程,加深对树状数据结构的理解与MFC环境的使用,以便逐步熟悉大型程序设计的方法,养成良好的编程习惯。
本系统主要完成对家谱的相关操作和家谱人员信息的管理,包括打开家谱、新建家谱、保存家谱和家谱人员的姓名查找、生日查找、某代信息查找、增加孩子、两人关系、信息修改、信息删除等。
系统的核心是利用对话框的连接和文本处理来存储和修改家谱管理系统的信息联系,其中的每一个动作都可能影响到其它的功能。
2 课程设计的相关说明
2.1 课程设计的要求
题目:家谱树管理系统
1).建立至少30个成员的数据,以较为直观的方式显示结果,并提供文稿形式以便检查。
2).对界面的要求是:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
2.2课程设计的需求分析
1). 输入文件以存放最初家谱中各成员的信息。 成员的信息中均应包含以下内容:
姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡)
2). 实现数据的存盘和读盘。
3). 以图形方式显示家谱。(利用树形控件)
4). 显示第n 代所有人的信息。
5). 按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。
6). 按照出生日期查询成员名单。
7). 输入两人姓名,确定其关系。
8). 某成员添加孩子。
9). 删除某成员(若其还有后代,则一并删除)。
10).修改某成员信息。
11).按出生日期对家谱中所有人排序。
2.3课程设计的实验环境
开发工具: Visual C++
运行环境:Windows 9x、Windows NT/2000、Windows XP
3家谱树管理系统的概要分析
1、抽象数据类型兄弟孩子树的定义如下:
ADT CSNode
{
数据对象: person是兄弟孩子树中的每一个节点,T是整个树的统一体
数据关系: R1={<person,person>|<person,person>表示person和person之间有血缘关系}
基本操作:
CSNode *CreatTree(fstream outfile);
初始条件:已经打开了文本文件PersonInfo.txt
操作结果:创建一个兄弟孩子树T,并把从文件中的数据送到树中,关闭文件。
void CreatParent_step(CSNode *parent);
初始条件:兄弟孩子树T已经存在
操作结果:对所有的孩子节点添加指向父亲的指针
void InOrderTraverse(CSNode *T);
初始条件:兄弟孩子树T已经存在
操作结果:对T进行中序遍历。
bool Today_Brithday(CSNode *T);
初始条件:兄弟孩子树T已经存在
操作结果:根据计算机系统的时间判断几天是否有人过生日,并显示他们的名字。
bool
显示全部