家谱管理系统设计报告样本

合集下载

家谱系统

家谱系统

《数据结构的课程设计》报告题目:家谱管理系统设计与实现班级:1612401学号:*********姓名:***指导老师:**完成日期:2014.1.3目录一.需求分析.二.程序主要功能.三.程序运行平台.四.程序类说明.五.运行分析六.存在的不足与对策.七.体验感悟八.程序源代码.需求分析实现具有下列功能的家谱管理系统。

程序主要功能(1)输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容:姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡),也可附加其它信息、但不是必需的。

(2)实现数据的存盘和读盘。

(3)以图形方式显示家谱。

(4)显示第n 代所有人的信息。

(5)按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。

(6)按照出生日期查询成员名单。

(7)输入两人姓名,确定其关系。

(8)某成员添加孩子。

(9)删除某成员(若其还有后代,则一并删除)。

(10)修改某成员信息。

(11)按出生日期对家谱中所有人排序。

(12)打开一家谱时,提示当天生日的健在成员。

(13)要求建立至少30个成员的数据,以较为直观的方式显示结果,并提供文稿形式以便检查。

(14)界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

(15)存储结构:根据系统功能要求自行设计,但是要求相关数据要存储在数据文件中。

测试数据:要求使用1、全部合法数据;2、局部非法数据。

进行程序测试,以保证程序的稳定。

程序运行平台该程序是用VC++6.0制做的,使用Microsoft Visual C++ 6.0运行该程序,具体操作是:打开Microsoft Visual C++ 6.0,菜单栏里点文件→打开工作区→找到“图书管理系统.dsw”这个文件→打开,或者在资源管理器中双击该文件,此时,VC++6.0会自动打开,并载入该系统相关资源,点击Run命令菜单或者或用快捷键Ctrl+F5运行该程序。

家谱管理系统设计报告

家谱管理系统设计报告

目录第一章绪论 (2)第二章需求分析 (3)2.1 题目 (3)2.2 设计任务 (3)2.3 数据测试 (3)第三章概要设计 (3)3.1 设计思想 (3)3.2 实现方法 (4)第四章详细设计 (4)4.1 功能构想 (4)4.2 界面设计 (4)4.3 增加成员 (5)4.3.1 添加子女 (5)4.3.2 添加配偶 (5)4.4 修改成员 (6)4.4.1 修改个人信息 (6)4.4.2 修改父母信息 (6)4.4.3 修改兄弟姐妹的信息 (6)4.4.4 修改子女的信息 (7)第五章调试分析 (7)第六章测试结果 (9)致谢 (10)参考文献 (11)附录 (11)第一章绪论目前,很多家庭家谱丢失,家庭一些关系混乱,为了避免这一问题,制定一家谱程序。

家谱用于记录某家族历代家族成员的情况与关系,实现对一个家族所有的资料进行收集整理。

支持对家谱的存储、更新、查询、统计等操作。

并用计算机永久储存家族数据,方便随时调用。

第二章需求分析2.1 题目家谱管理系统2.2 设计任务系统总体说明:以树形结构存储家族信息,只考虑三代(祖父,父亲,叔叔,姑姑,自己,兄弟姐妹,堂兄弟姐妹),只考虑每个人有 0 或者 1个兄弟姐妹的情况。

注意每个结点结构。

统计统计家族成员人数,查询家族成员辈份。

完成功能的详细说明: 1.输入家族成员情况,建立树结构(涉及创建二叉树);2.统计家族成员人数和每一个家庭成员人数(涉及树的遍历);3.查询家族成员辈份情况(任意输入两个家庭成员,查询他们的关系,父子,祖孙,兄弟,堂兄弟,共同的祖先)。

4. 选做,考虑每个人有多个兄弟姐妹的情况。

2.3 数据测试第三章概要设计3.1设计思想测试的数据有:田迎新陈瑞英田紫藤田紫恒孙超李美霖创建一棵树,存储家庭关系,数据类型有int Num; // 记录这个人拥有几个儿女char Name[20]; //记录这个人的姓名char Sex; //标示节点的种类有女(0)男(1)struct TreeNode * NextNode[20]; // 记录这个人的儿女 struct TreeNode * Parent; //记录这个节点的父节点3.2 实现方法完成功能的函数有void CreatTree(TreeNode *Tree);// ----------------- 创建树void OutPutAll(TreeNode *Tree);// ----------------- 遍历并输出树中的内容void firstoftxt();// --------------------------- 写入文件的开始信息void ofAll(TreeNode *Tree);// --------------------- 写入文件函数void ifAll();// -------------------------------- 读取文件的函数TreeNode * SearchTree(TreeNode *Tree,char name[],int length);// 查找结点的函数 void MainMenue(TreeNode *Tree);// ---------------------- 主菜单void SubMenue1(TreeNode * Tree);// ---------------- 修改成员信息的菜单void SubMenue2(TreeNode *Tree);// ----------------- 添加新成员菜单void Change(TreeNode * Tree);// ------------------- 修改成员信息void AddNew(TreeNode * Tree);// ------------------- 添加新成员void OutPutMessage(TreeNode * Tree,char name[],int length);// 输出已经查找到的人的信息第四章详细设计4.1 功能构想构想好总体规划之后,便开始设计程序中需要用到的各个功能函数,初步构想是要先实现最基本的几项功能,其中数据操作的有:增加成员,修改成员资料,删除成员;数据存取的有:打开家谱,新建家谱,保存家谱;数据查询的有:查看某代信息,按姓名查找,查看成员关系,等等。

人类族谱管理系统设计报告.doc

人类族谱管理系统设计报告.doc

人类族谱管理系统设计报告.软件学院综合训练项目报告书课程名称数据结构项目名称人类家谱管理系统专业班级软件13-3班组别第五组成员张伟竹王雨柔何惠民任课教师孙宁word 资料目录 1. 设计时间………………………………………………………………12. 设计任务………………………………………………………………13. 设计内容………………………………………………………………13.1问题分析…………………………………………………………….13.2 程序设计……………………………………………………………33.3测试与分析………………………………………………………..103.3.1测试………………………………………………………..……103.3.2分析………………………………………………………..……143.4代码………………………………………………………………..144. 总结与展望………………………………………………………….215. 参考文献…………………………………………………………….22word 资料1 设计时间XXXX年12月16日——XXXX年1月6日2 设计任务树形结构是一种非常重要的非线性结构,它用于描述数据元素之间的层次关系,人类家谱是树形结构的典型体现,通过此项训练让学生掌握树形结构的知识;使学生重点掌握树与二叉树的转换,二叉树的存储和遍历;此项训练要求构造一棵家谱树,并完成任意成员的查找。

3 设计内容3.1问题分析1. 程序所能达到的功能,见功能模块图(图3-1)。

(1)输入家族始祖信息,初始化(或创建)一个家族族谱树。

(2)输入要添加人信息,插入新的家族成员。

(3)输入要查找人姓名,对家族成员进行查找。

(4)输入要修改人姓名,修改某一个家族成员信息。

2.输入的形式和输出的形式。

输入和输出的姓名可以是中文也可以是英文,变量名为char类型,且最多不得多余20字符,对于某一个人所处代数为数字,变量名为int类型,对输入输出的性别,本设计要求是M或F表示,故必须是英文,为char类型的变量。

家谱管理系统设计与实现

家谱管理系统设计与实现

课程设计报告课程名称《数据结构》课题名称排序综合专业班级学号姓名联系方式指导教师20 11 年 12 月 21 日目录1. 问题陈述 (3)2.设计方法阐述 (3)2.1总体规划 (3)2.2功能构想 (4)2.2.1增加成员 (4)2.2.2修改成员资料 (5)2.2.3删除成员 (6)2.2.4打开家谱 (7)2.2.5新建家谱 (8)2.2.6保存家谱 (10)2.2.7查看某代信息 (11)2.2.8按姓名查找 (12)2.2.9按生日查找 (12)2.2.10查看成员关系 (13)2.2.11按出生日期排序 (14)2.3板块整合 (15)2.4调试分析 (19)3.总结 (19)4. 测试结果 (20)1.问题陈述家谱用于记录某家族历代家族成员的情况与关系。

现编制一个家谱资料管理软件,实现对一个家族所有的资料进行收集整理。

支持对家谱的存储、更新、查询、统计等操作。

并用计算机永久储存家族数据,方便随时调用。

2.设计方法阐述2.1总体规划在动手编制程序之前,先要做好程序的规划,包括程序储存数据所用的结构,数据类型等等,只有确定了数据类型和数据结构,才能在此基础上进行各种算法的设计和程序的编写。

首先是考虑数据类型。

在家谱中,家族成员是最基本的组成部分,对于家族管理中,已经不能再进行细分了,所以选定家族成员作为数据的基本类型,并在程序中定义COperationFamilytree 类。

其中COperationFamilytree 类的各种属性可以根据需要进行添加或删除,从日常生活应用的角度出发,制定了COperationFamilytree 类中包含了一下属性:char name[MAX_CHARNUM]; //姓名Date birthday; //出生日期In tsex; //性别char addr[MAX_CHARNUM]; //基本资料int live; //健在否Date deathday; //死亡日期int ChildNums(Person pNode) ; //返回pNode孩子数intInSiblingPos(Person pNode); //返回pNode在其兄弟中的排行为方便计算机进行比较,在familytree类的某些属性中用数字代替了某些不会改变的字符串,譬如性别(1代表男,0代表女)、判断是否健在(1为是,0为否)。

家谱管理系统实验报告

家谱管理系统实验报告

《家谱管理系统》课程设计报告学院:信息科学与工程学院班级:计算机科学与技术08-4班制作人:邢尚文****:***山东科技大学2011年9月1日需求分析:本系统主要完成对家谱的相关操作和家谱人员信息的管理,包括打开家谱、新加家谱、保存家谱和家谱人员的姓名查找、某代信息查找、信息删除等。

系统的核心是利用对话框的连接和文本处理来存储和修改家谱管理系统的信息联系,其中的每一个动作都可能影响到其他的功能。

本系统实现以下功能:1). 输入文件以存放最初家谱中各成员的信息。

成员的信息中均应包含以下内容:姓名、辈分、父辈姓名、电话。

2). 实现数据的存盘和读盘。

3). 以图形方式显示家谱。

4). 显示第n 代所有人的信息。

5). 按照姓名查询,输出成员信息6). 删除某成员。

本系统的作用不是为了代替家谱,而是为了更好的建立家庭之间成员的联系,提供一个查询的平台,里面的族谱及文化介绍可以有效的介绍家族历史,让成员了解家族历史,向外界展示。

E-R图程序界面与代码:using System;using System.Collections.Generic; using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication12 {public partial class Form1 : Form {public Form1(){InitializeComponent();}private void button4_Click(object sender, EventArgs e){if (textBox1.Text == "" && textBox2.Text == " "){MessageBox.Show("信息不全请重新填写");}if (textBox1.Text == "admin" && textBox2.Text == "admin"){Form2 form = new Form2();form.Show();}else{textBox1.Text = "";textBox2.Text = "";MessageBox.Show("请重新输入用户名密码?");}}private void button1_Click(object sender, EventArgs e){Form6 form = new Form6();form.Show();}private void button3_Click(object sender, EventArgs e){Form7 form = new Form7();form.Show();}private void button2_Click(object sender, EventArgs e){MessageBox.Show("本软件的设¨计?是º?为a了¢?让¨?用®?户¡ì能¨¹够?更¨¹好?地Ì?管¨¹理¤¨ª家¨°谱¡Á以°?及¡ã方¤?便À?家¨°谱¡Á的Ì?修T改?,ê?使º1用®?注Á¡é册¨¢过y的Ì?账?号?的Ì?登Ì?陆?后¨®就¨ª可¨¦以°?使º1用®?本À?软¨¨ª件t!ê?");}}}using System;using System.Collections.Generic; using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication12 {public partial class Form2 : Form {public Form2(){InitializeComponent();}private void祖Á?先¨¨功|德Ì?ToolStripMenuItem_Click(object sender, EventArgs e) {Form3 form = new Form3();form.Show();}private void zToolStripMenuItem_Click(object sender, EventArgs e){Form4 form = new Form4();form.Show();}private void祭¨¤祖Á?文?化¡¥ToolStripMenuItem_Click(object sender, EventArgs e) {Form5 form = new Form5();form.Show();}private void家¨°谱¡Á管¨¹理¤¨ªToolStripMenuItem_Click(object sender, EventArgs e){Form8 form = new Form8();form.Show();}private void dsdfsdToolStripMenuItem_Click(object sender, EventArgs e){Form9 form = new Form9();form.Show();}private void通ª¡§讯?录?添¬¨ª加¨®ToolStripMenuItem_Click(object sender, EventArgs e){Form10 form = new Form10();form.Show();}private void制?作Á¡Â人¨?ToolStripMenuItem1_Click(object sender, EventArgs e) {MessageBox.Show("制?作Á¡Â人¨?计?算?机¨²08-3班㨤:êo李¤?蓟?涛¬?,ê?李¤?赟²S,ê?张?拓ª?,ê?苏?晓t慧?");}private void通ª¡§讯?录?ToolStripMenuItem_Click(object sender, EventArgs e) {MessageBox.Show("要°a做Á?出?修T改?需¨¨要°a提¬¨¢供?管¨¹理¤¨ª员¡À权¨¡§限T!ê?");Form11 form = new Form11();form.Show();}private void制?作Á¡Â人¨?ToolStripMenuItem_Click(object sender, EventArgs e) {Form13 form = new Form13();form.Show();}}}using System;using System.Collections.Generic; using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication12 {public partial class Form3 : Form {public Form3(){InitializeComponent();}}}using System;using System.Collections.Generic; using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication12 {public partial class Form4 : Form {public Form4(){InitializeComponent();}}}using System;using System.Collections.Generic; using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication12 {public partial class Form5 : Form {public Form5(){InitializeComponent();}}}using System;using System.Collections.Generic; using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication12 {public partial class Form6 : Form {public Form6(){InitializeComponent();}}}using System;using System.Collections.Generic; using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication12 {public partial class Form7 : Form {public Form7(){InitializeComponent();}}}using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.OleDb;namespace WindowsFormsApplication12{public partial class Form9 : Form{public Form9(){InitializeComponent();}private void Form9_Load(object sender, EventArgs e){// TODO: 这a行D代䨲码?将?数ºy据Y加¨®载?到Ì?表À¨ª“¡ãdb1DataSet11.表À¨ª2”¡À中D。

数据结构_家谱管理系统方案

数据结构_家谱管理系统方案

宁波大红鹰学院信息工程学院课程设计报项目名称:家谱查询系统项目组长:白钰琦项目成员:徐程凯、徐海域、项鸿伟班级名称:10计科1班专业名称:计算机科学与技术完成时间:2012年12月1日信息工程学院制一、..................................... 案例描述-3 -1总体描述............................. -3 -2、模块描述........................... -4 -二、..................................... 设计思路-5 -三、..................................... 程序设计-5 -1、数据结构描述......................... -5 -2、主函数及其流程图...................... -6 -3、源程序........................... -7 -四、...................................... 调试与分析-7 -1、主菜单............................ -12 -2、显示家谱信息......................... -13 -3、显示家谱中第n代人所有信息................. -13 -4、按姓名查找某人并相应输出................... -13 -5、按出生日期查找家谱成员信息......... 错误!未定义书签。

6、为家谱中成员添加孩子信息.................. -14 -7、为家谱中成员添加妻子信息............ 错误!未定义书签。

8删除家谱中成员及其后代信息............ 错误!未定义书签。

9、修改家谱中成员信息......................................... -15 ................................................................................... -10、确定家谱中两个成员关系 ........... 错误!未定义书签。

家谱管理系统.doc

家谱管理系统。

洛阳科技学院课程设计报告数据结构课程设计课程名称_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _家谱管理系统设计主题_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _计算机科学与技术专业_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ b 150405班级_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ b 15080822学校编号_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _宋世龙的姓氏是_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ x XXX,2006年12月30日。

完成日期_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _家谱管理系统设计的内容和要求;[问题描述]以下内容:实现了具有以下功能的家谱树管理系统1)。

家谱管理系统样本

家谱管理系统一、需求分析本系统实现以下功能:1). 输入文件以存放最初家谱中各成员的信息。

成员的信息中均应包含以下内容:姓名、出生日期、婚否、地址、健在否、死亡日期( 若其已死亡) 也可附加其它信息、但不是必须的。

2). 实现数据的存盘和读盘。

3). 以图形方式显示家谱。

4). 显示第n 代所有人的信息。

5). 按照姓名查询, 输出成员信息( 包括其本人、父亲、孩子的信息) 。

6). 按照出生日期查询成员名单。

7). 输入两人姓名, 确定其关系。

8). 某成员添加孩子。

9). 删除某成员( 若其还有后代, 则一并删除) 。

10).修改某成员信息。

11).按出生日期对家谱中所有人排序。

12).打开一家谱时, 提示当天生日的健在成员。

测试要求:1).建立至少30个成员的数据, 以较为直观的方式显示结果, 并提供文稿形式以便检查。

2).对界面的要求是: 有合理的提示, 每个功能能够设立菜单, 根据提示,能够完成相关的功能要求。

二、设计概要1、抽象数据类型兄弟孩子树的定义如下:ADT CSNode{数据对象: person是兄弟孩子树中的每一个节点, T是整个树的统一体数据关系: R1={<personi-1,personi>|<personi-1,personi>表示personi-1和personi之间有血缘关系}基本操作:CSNode *CreatTree(fstream &outfile);初始条件: 已经打开了文本文件PersonInfo.txt操作结果: 创立一个兄弟孩子树T, 并把从文件中的数据送到树中, 关闭文件。

void CreatParent_step(CSNode *parent);初始条件: 兄弟孩子树T已经存在操作结果: 对所有的孩子节点添加指向父亲的指针void InOrderTraverse(CSNode *T);初始条件: 兄弟孩子树T已经存在操作结果: 对T进行中序遍历。

家谱管理系统设计

家谱管理系统设计(共18页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--《软件综合设计》家谱管理系统院系:计算机科学技术学院二系班级:计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. 数据结构选择在家谱管理系统中,我们选择了树这种数据结构来表示家族关系。

每个节点代表一个家庭成员,节点之间通过指针连接,形成家族的层级结构。

2. 数据模型设计家族成员的信息可以通过一个结构体来表示,包括姓名、性别、出生日期等字段。

每个节点除了包含成员信息外,还包含指向配偶的指针和指向子女的指针。

3. 系统功能设计家谱管理系统提供了以下功能:(1) 添加成员:用户可以输入成员信息,系统根据用户输入创建一个新的节点,并将其插入到适当的位置。

(2) 删除成员:用户可以指定要删除的成员,系统会删除该成员及其所有子孙节点。

(3) 修改成员信息:用户可以选择要修改的成员,然后输入新的信息进行更新。

(4) 查询成员信息:用户可以通过姓名、出生日期等条件查询成员信息。

(5) 统计家族人数:系统可以统计家族的总人数、男性人数、女性人数等信息。

四、系统实现1. 数据结构实现我们使用C语言来实现家谱管理系统。

通过定义一个节点结构体,使用指针来连接各个节点,实现家族关系的表示和管理。

2. 功能实现(1) 添加成员:根据用户输入的信息,创建一个新节点,并将其插入到适当的位置。

插入操作需要遍历树来找到合适的位置。

(2) 删除成员:根据用户指定的成员,删除该节点及其所有子孙节点。

删除操作需要递归地遍历树。

(3) 修改成员信息:根据用户选择的成员,更新其信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录
第一章绪论............................................................... 错误!未定义书签。

第二章需求分析........................................................... 错误!未定义书签。

2.1题目...................................................................... 错误!未定义书签。

2.2设计任务.............................................................. 错误!未定义书签。

2.3数据测试.............................................................. 错误!未定义书签。

第三章概要设计....................................................... 错误!未定义书签。

3.1 设计思想 ........................................................ 错误!未定义书签。

3.2 实现方法 ........................................................ 错误!未定义书签。

第四章详细设计....................................................... 错误!未定义书签。

4.1功能构想.............................................................. 错误!未定义书签。

4.2界面设计.............................................................. 错误!未定义书签。

4.3增加成员.............................................................. 错误!未定义书签。

4.3.1 添加子女 .................................................... 错误!未定义书签。

4.3.2 添加配偶 .................................................... 错误!未定义书签。

4.4修改成员.............................................................. 错误!未定义书签。

4.4.1修改个人信息............................................. 错误!未定义书签。

4.4.2修改父母信息............................................. 错误!未定义书签。

4.4.3修改兄弟姐妹的信息................................. 错误!未定义书签。

4.4.4修改子女的信息......................................... 错误!未定义书签。

第五章调试分析....................................................... 错误!未定义书签。

第六章测试结果....................................................... 错误!未定义书签。

致谢 .............................................................................. 错误!未定义书签。

参考文献 ......................................................................... 错误!未定义书签。

附录........................................................................... 错误!未定义书签。

第一章绪论
当前, 很多家庭家谱丢失, 家庭一些关系混乱, 为了避免这一问题, 制定一家谱程序。

家谱用于记录某家族历代家族成员的情况与关系, 实现对一个家族所有的资料进行收集整理。

支持对家谱的存储、更新、查询、统计等操作。

并用计算机永久储存家族数据, 方便随时调用。

第二章需求分析
2.1题目
家谱管理系统
2.2设计任务
系统总体说明:
以树形结构存储家族信息, 只考虑三代( 祖父, 父亲, 叔叔, 姑姑, 自己, 兄弟姐妹, 堂兄弟姐妹) , 只考虑每个人有0或者1个兄弟姐妹的情况。

注意每个结点结构。

统计统计家族成员人数, 查询家
族成员辈份。

完成功能的详细说明:
1.输入家族成员情况, 建立树结构( 涉及创立二叉树) ;
2.统计家族成员人数和每一个家庭成员人数( 涉及树的遍历) ;
3.查询家族成员辈份情况( 任意输入两个家庭成员, 查询她们的关系, 父子, 祖孙, 兄弟, 堂兄弟, 共同的祖先) 。

4. 选做, 考虑每个人有多个兄弟姐妹的情况。

2.3数据测试
测试的数据有: 田迎新陈瑞英田紫藤田紫恒孙超李美霖……..
第三章概要设计
3.1 设计思想
创立一棵树, 存储家庭关系, 数据类型有
int Num; //记录这个人拥有几个儿女
char Name[20]; //记录这个人的姓名
char Sex; //标示节点的种类有女(0) 男(1)
struct TreeNode * NextNode[20]; //记录这个人的儿女
struct TreeNode * Parent; //记录这个节点的父节点
3.2 实现方法
完成功能的函数有
void CreatTree(TreeNode *Tree);//--------------------------------创立树
void OutPutAll(TreeNode *Tree);//-------------------------------遍历并输出树中的内容
void firstoftxt();//----------------------------------------------------写入文件的开始信息
void ofAll(TreeNode *Tree);//-------------------------------------写入文件函数
void ifAll();//---------------------------------------------------------读取文件的函数
TreeNode * SearchTree(TreeNode *Tree,char name[],int length);//查找结点的函数
void MainMenue(TreeNode *Tree);//-----------------------------主菜单
void SubMenue1(TreeNode * Tree);//----------------------------修改成员信息的菜单
void SubMenue2(TreeNode *Tree);//-----------------------------添加新成员菜单
void Change(TreeNode * Tree);//---------------------------------修改成员信息
void AddNew(TreeNode * Tree);//--------------------------------添加新成员
void OutPutMessage(TreeNode * Tree,char name[],int length);//输出已经查找到的人的信息
第四章详细设计
4.1功能构想
构想好总体规划之后, 便开始设计程序中需要用到的各个功能函数, 初步构想是要先实现最基本的几项功能, 其中数据操作的有: 增加成员, 修改成员资料, 删除成员; 数据存取的有: 打开家谱, 新建家谱, 保存家谱; 数据查询的有: 查看某代信息, 按姓名查找, 查看成员关系, 等等。

4.2界面设计
cout<<"\n\n\t ---*****---请选择你的操作---****---";
cout<<"\n\t--------------1:输入家谱信息建立多叉树----------------------";
cout<<"\n\t--------------2:在家族中查找某人并输出她或(她)的相应信息----";
cout<<"\n\t--------------3:添加新的成员。

相关文档
最新文档