家谱管理系统.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
家谱管理系统
。洛阳科技学院课程设计报告数据结构课程设计课程名称_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _家谱管理系统设计主题_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _计算机科学与技术专业_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ b 150405班级_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ b 15080822学校编号_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _宋世龙的姓氏是_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ x XXX,2006年12月30日。完成日期_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
家谱管理系统设计的内容和要求;
[问题描述]
以下内容:
实现了具有以下功能的家谱树管理系统1)。输入一个文件,将每个成员的信息保存在原始家谱中,每个成员的信息应包括以下内容: 姓名、出生日期、婚姻状况、地址、生活状况和死亡日期(如果
他们已经死亡),可以添加其他信息,但不是必需的。
2)。实现数据保存和读取。3)。展示家谱。4)。根据出生日期查询成员列表。5)。根据姓名查询,输出成员信息(包括自己的、父亲的、孩子的信息)。
6)。修改成员的信息。
[基本要求]
以下内容:
接口要求:
有合理的提示,可以为每个功能设置菜单。根据提示,可以完成相关的功能需求。存储结构:
学生根据系统功能要求自行设计,但要求相关数据存储在数据文件中。测试数据:
需要使用
1.所有法律数据;
2.本地非法数据。
进行程序测试以确保程序的稳定性。请在提交的材料中注明测试数据和测试结果。讲师:
在_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _月日,课程评估结果如下:
讲师:
于_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _.
首先,算法思维这个程序是一个管理家谱的系统。通过这个系统,
可以创建、显示、搜索、修改、保存和读取家庭成员。
系统分为以下模块:
创建一个家谱,显示它,通过名字和生日找到家庭成员,修改它,保存它,阅读它,并退出系统。
本程序中使用的存储形式是多叉树,因为家谱中的每个人都有父母和孩子,孩子的数量是不确定的,所以使用多叉树来存储是最合适的。如果您使用多叉树来存储它,您将使用递归创建和递归遍历多叉树。因为它是一个多分支树,广度优先搜索适合遍历。这个函数的主要思想是递归调用。递归将用于每个子函数。当定义一个结构时,指针数组的最大容量用来指定一个家谱中的最大人数。定义一个家谱的指针变量作为每个子函数的参数,从而将其返回给主函数。以下是算法思想流程图:
系谱树管理系统创建系谱树,显示系谱树,修改系谱树,搜索成员,根据他们的名字读写系谱树,根据他们的生日修改他们自己,修改他们的父母,保存和读取他们的孩子以退出系统。
2.模块1。int main(): main函数2。void CreatTree(树节点*T-省略-ad-儿童编号;i ) { head-NextNode[i]=(树)malloc(sizeof(树节点));如果(head-nextnode[I]==null){ printf(' \ t \ t重建树时内存分配失败!\ n ');返回;fread(head-NextNode[i),sizeof(TreeNode),1,FP);head-下一节点[I]-Parent=head;队列[后方]=头部-下一节点[I];} } f close(FP);fp=空;}
6.总结数据结构课程设计我选择的题目是家谱管理系统,历时四
天,由王月和我一起完成。总的来说,课程设计还是比较难的,我们选择的题目在这些题目中也很难。中间有很多困难,但在我和她讨论以及老师的帮助下,最终顺利完成了。在选题的开始,我没有太注意选择什么。我只是随便选了一个。只是后来我发现很难选择这个话题。经过分析,发现这个主题需要树,我没有学好树,所以很难写。起初,我用二叉树来存储它。后来,我发现我不能把它写成两半。使用递归来创建函数总是不合适的。最后,我不得不放弃。所以我开始在网上搜索信息,但是我发现的大部分信息与这个实验不一致,其中一些也是不可理解的。只有一个。我发现他用的是多分枝的树。我看了一会儿就能理解了。所以我计划把它储存在一棵多叉树里。然而,我不知道如何写它,但是我在检查了在互联网上创建多叉树的递归方法之后开始写它。电脑出现的前一天晚上,王月把他写的程序发给了我。除了保存和读取磁盘,其他功能基本实现。我把他的和我的做了比较,发现我们的写作是相似的,所以我和她结合来改变我的,基本的功能是可以实现的。接下来是最重要的模块,也是最麻烦的,保存磁盘和读取磁盘。王月和我咨询了去年课程设计的保存和阅读。但这是顺序表的保存和读取,与我们使用的不同。这时我们不知道,所以我们向老师求助。老师给我们讲了一些关于储蓄和阅读的知识,让我们看看这本书。我们终于对这一知识有了大致的了解。接下来,我们在互联网上搜索信息,最后写出了存档和读取磁盘。然而,当它运行时,发现还有另一个问题。从表面上看,它似乎只能被存储而不能被读取。所以我们向老师寻求帮助。读完我们的程序后,老师建议我们用不同