- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课 程 设 计 任 务 书题目 家族关系查询系统 专业、班级 学号 姓名 主要内容、基本要求、主要参考资料等:主要内容:建立家族关系数据库,实现对家族成员关系的相关查询。基本要求:(1)建立家族关系并能存储到文件中;(2)实现家族成员的添加。(3)可以查询家族成员的双亲、祖先、兄弟、孩子和后代等信息。课程设计按照教学要求需要一周时间完成,总共要上机调试程序10小时。对每个题目要有需求分析,?在需求分析中,将题目中要求的功能进行叙述分析,并且设计解决此问题的数据存储结构,设计或叙述解决此问题的算法,描述算法建议使用流程图,进行算法分析指明关键语句的时间复杂度。给出实现功能的一组或多组测试数据,程序调试后,将按照此测试数据进行测试的结果列出来 。?源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。?程序能够运行,要有基本的容错功能。尽量避免出现操作错误时出现死循环; 主要参考资料:数据结构(C语言版),在网上查询的相关资料及部分代码完 成 期 限: 2013.6.18-2013.6.20指导教师签名: 课程负责人签名: 2013年6 月 18 日郑州轻工业学院本科数据结构课程设计总结报告设计题目:家族关系查询系统学生姓名: 系 别:计算机与通信工程专 业:软件外包班 级: 学 号: 指导教师: 2013年 6 月 20 日设计题目(任选其一) 家族关系查询系统运行环境(软、硬件环境)电脑 及Visual C++ 6.0算法设计的思想随着社会发展,人们使用纸质的家谱已经非常不方便而且不利于在家谱里进行添加和修改。而用算法设计一个家族关系查询系统则可以解决这个问题。数据结构的二叉树刚好满足家谱的基本结构。首先建立一个文件作为家谱,然后在文件中输入字符串,实现了在文件中按照数据的逻辑关系进进输入便可建立相应的三叉链表。然后就是进行数据的存储、删除及查找工作。算法的流程图家谱的创建:开始 输入家谱名称 输入家族成员结束开始载入家谱: 输入家谱名否 家谱打开失败家谱是否存在?是 载入成功结束修改家谱:开始 选择 删除成员返回上一级添加成员 输入成员姓名输入成员姓名 否请重新输入成员是否存在?是删除成功结束成员查询:开始 输入成员名否 不在家谱中,请重新输入成员是否存在?是 输出成员信息结束算法设计分析本次设计研究的是建立家族关系,实现对家族成员关系相关查询的问题。在设计中使用的数据结构为树状结构,树状结构采用三叉链表实现。我们在建立好家族关系后将其存储在文件中,在文件中家族关系是以树的形式存储,运用树的操作使家族关系得以准确建立。 家族关系查询系统可分为六大模块,分别是创建、修改、查询、保存、退出等。建立家族关系模块,建立家族关系并存入文件。建立时首先输入家族关系的名称,以此名称为名建立文本文件。接下来按层输入成员姓名,输入一个在文件中写入一个字符串,以回车键结束。打开一个家族关系。在界面输入选项名,以家族关系名为文件名打开文件,如果家族关系不存在,返回空;如果存在,打开文件,读取文件。向家族中添加一个新成员,添加的新成员要根据其父亲确定其在家族中的位置。首先判断该父亲是否在此家族关系中,若存在,则查找其父亲,将新节点插入其父亲的最后一个孩子之后;若没有孩子,直接作为左孩子插入。以写入的方式打开文件,更新数组中的信息,然后将数组中的信息写入文件保存,关闭文件。查找功能模块,查找一个成员的所有祖先及其兄弟,查找一个成员的所有祖先路径,需要从它的父亲一直向上查找带根结点。查找一个成员的兄弟,一个成员的兄弟为其父亲除了该结点以外的所有孩子。对于要操作的结点,先判断它是否是根结点,若是根结点,则无兄弟;若不是根结点,则找到该结点的父亲。接着判断父亲的兄弟是否都存在,如果都不存在,则无兄弟;如果都存在,对父亲的孩子操作。六、源代码#include stdio.h #include stdlib.h #include string.h #includeconio.h typedef char TElemType; typedef int status; typedef struct BiTPNode{ TElemType data[10]; struct BiTPNode *parent,*lchild,*rchild; //父亲及左右孩子指针}BiTPNode,*BiPTree; BiPTree P; BiPTree T; //家谱的创建int Cre() { system(cls); FILE *fp; //声明指向文件的指针 char filename[40],str[10]; printf(请输入家谱名称:); getchar(); gets(file
您可能关注的文档
最近下载
- TCCIAT0003-2019建筑施工承插型轮扣式模板支架安全技术规程.pdf
- T∕CTCA 6-2019 劳动防护手套.pdf
- 注册单元划分膝关节假体vlc g02.pdf VIP
- JTG5220—2020公路养护工程质量检验评定标准第一册土建工程全面解读.pptx
- 教育部留服务中心国(境)外学历学位认证评估程序和标准(试行)之附则.doc
- 土方工程课件.ppt
- 《医学细胞生物学》课件 第七章 细胞骨架与细胞运动.pptx
- 《排球正面双手垫球》教案排球正面双手垫球公开课教案1水.docx VIP
- 教育法学课件.ppt VIP
- 2023年人教版七年级语文下册期中试卷附参考答案 .pdf VIP
文档评论(1)