数据结构课程设计总结报告.docx

数据结构课程设计总结报告.docx

ID:57998207

大小:195.47 KB

页数:29页

时间:2020-04-06

数据结构课程设计总结报告.docx_第1页
数据结构课程设计总结报告.docx_第2页
数据结构课程设计总结报告.docx_第3页
数据结构课程设计总结报告.docx_第4页
数据结构课程设计总结报告.docx_第5页
资源描述:

《数据结构课程设计总结报告.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、郑州轻工业学院课程设计任务书题目家族关系查询系统专业、班级软件外包11-01学号5姓名周朱莉主要内容、基本要求、主要参考资料等:主要内容:建立家族关系数据库,实现对家族成员关系的相关查询。基本要求:(1)建立家族关系并能存储到文件中;(2)实现家族成员的添加。(3)可以查询家族成员的双亲、祖先、兄弟、孩子和后代等信息。课程设计按照教学要求需要一周时间完成,总共要上机调试程序10小时。对每个题目要有需求分析, 在需求分析中,将题目中要求的功能进行叙述分析,并且设计解决此问题的数据存储结构,设计或叙述解决此问题的算法,描述算法建议使用流程图,进行算法分析指明关键语句的时间复杂度。给出实

2、现功能的一组或多组测试数据,程序调试后,将按照此测试数据进行测试的结果列出来。  源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。  程序能够运行,要有基本的容错功能。尽量避免出现操作错误时出现死循环;主要参考资料:数据结构(C语言版),在网上查询的相关资料及部分代码完成期限:2013.6.18-2013.6.20指导教师签名:课程负责人签名:2013年6月18日郑州轻工业学院本科数据结构课程设计总结报告设计题目:家族关系查询系统学生姓名:周朱莉系别:计算机与通信工程专业:软件外包班级:11-01学号:5指导教师:卢冰2013年6月

3、20日一、设计题目(任选其一)家族关系查询系统二、运行环境(软、硬件环境)电脑及VisualC++6.0三、算法设计的思想随着社会发展,人们使用纸质的家谱已经非常不方便而且不利于在家谱里进行添加和修改。而用算法设计一个家族关系查询系统则可以解决这个问题。数据结构的二叉树刚好满足家谱的基本结构。首先建立一个文件作为家谱,然后在文件中输入字符串,实现了在文件中按照数据的逻辑关系进进输入便可建立相应的三叉链表。然后就是进行数据的存储、删除及查找工作。四、算法的流程图家谱的创建:开始输入家谱名称输入家族成员结束开始载入家谱:输入家谱名否家谱打开失败家谱是否存在?是载入成功结束修改家谱:开始

4、选择删除成员返回上一级添加成员输入成员姓名输入成员姓名否请重新输入成员是否存在?是删除成功结束成员查询:开始输入成员名否不在家谱中,请重新输入成员是否存在?是输出成员信息结束一、算法设计分析本次设计研究的是建立家族关系,实现对家族成员关系相关查询的问题。在设计中使用的数据结构为树状结构,树状结构采用三叉链表实现。我们在建立好家族关系后将其存储在文件中,在文件中家族关系是以树的形式存储,运用树的操作使家族关系得以准确建立。家族关系查询系统可分为六大模块,分别是创建、修改、查询、保存、退出等。建立家族关系模块,建立家族关系并存入文件。建立时首先输入家族关系的名称,以此名称为名建立文本文

5、件。接下来按层输入成员姓名,输入一个在文件中写入一个字符串,以回车键结束。打开一个家族关系。在界面输入选项名,以家族关系名为文件名打开文件,如果家族关系不存在,返回空;如果存在,打开文件,读取文件。向家族中添加一个新成员,添加的新成员要根据其父亲确定其在家族中的位置。首先判断该父亲是否在此家族关系中,若存在,则查找其父亲,将新节点插入其父亲的最后一个孩子之后;若没有孩子,直接作为左孩子插入。以写入的方式打开文件,更新数组中的信息,然后将数组中的信息写入文件保存,关闭文件。查找功能模块,查找一个成员的所有祖先及其兄弟,查找一个成员的所有祖先路径,需要从它的父亲一直向上查找带根结点。查

6、找一个成员的兄弟,一个成员的兄弟为其父亲除了该结点以外的所有孩子。对于要操作的结点,先判断它是否是根结点,若是根结点,则无兄弟;若不是根结点,则找到该结点的父亲。接着判断父亲的兄弟是否都存在,如果都不存在,则无兄弟;如果都存在,对父亲的孩子操作。六、源代码#include#include#include#includetypedefcharTElemType;typedefintstatus;typedefstructBiTPNode{TElemTypedata[10];structBiTPNode*par

7、ent,*lchild,*rchild;//父亲及左右孩子指针}BiTPNode,*BiPTree;BiPTreeP;BiPTreeT;//家谱的创建intCre(){system("cls");FILE*fp;//声明指向文件的指针charfilename[40],str[10];printf("请输入家谱名称:");getchar();gets(filename);//输入家谱名称while(filename[0]==NULL){printf("家谱名不能为空,请

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。