数据结构课程设计之简易家谱

数据结构课程设计之简易家谱

ID:28062178

大小:261.11 KB

页数:13页

时间:2018-12-07

数据结构课程设计之简易家谱_第1页
数据结构课程设计之简易家谱_第2页
数据结构课程设计之简易家谱_第3页
数据结构课程设计之简易家谱_第4页
数据结构课程设计之简易家谱_第5页
资源描述:

《数据结构课程设计之简易家谱》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、学号:**★★****★★*EUEEIPOLYTECHNICUNIVERSITY题@简易家谱系统教学院计算机学院专业计算机科学与技术*1****1**•**1**•*•I•姓名指导教师2012年6月18日~概述2二总体方案设计3三详细设计5四程序的调试与运行结果说明8五课程设计总结9参考文献10概述1.课程设计的目的1.理解和掌握该课程屮的有关基本概念,程序设计思想和方法。2.培养综合运用所学知识独立完成课题的能力。3.培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑何题等科学技术人员应具有的素质。4.掌握从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到

2、解决问题的新途径的悟性,初步培养工程意识和创新能力。2.课程设计的要求设计要求:输入家族成员情况,建立树结构,统计家族成员人数,能查询家族成员辈份情况。系统功能:1.输入、修改与删除家谱信息功能2.查询功能:1)某家谱成员的所有子孙的集合2)某家谱成员的所有祖先的集合3)某家谱成员的所有同辈成员的集合4)求某家谱成员的所有上一辈成员的集合5)给出两个家谱成员,确定他们的关系3.统计功能1)统计家谱成员总人数2)统计从事某种职业的人数二总体方案设计1.简单家谱系统整体设计思路此次课程设计的整体思路是采用遍历算法,整个树的定义使用两个结构体來表示,一个结构体专门用于存放每一个节点的信息,另一个节

3、点中定义了三个指针域,分别为父指针域(兄长指针域),兄弟指针域,子指针域,整个树的输入采用文件导入的方式,首先将文件导入到树屮,文件包含每一个家族成员的信息,以及一个标志位flag,标志位的值为0,1,2,0表示此节点没有兄弟节点,1表示此节点至少有一个子节点,2表示此节点至少有一个兄弟节点,使用的算法是先定义一个链式队列,将文件屮第一个节点的内容读取放入开辟的树的节点的空间里,然后将树节点放入队列中,此时队列不为空,以队列不为空为判断条件,进行while循环,判断flag的值,循环体屮再进行文件读取,循环屮进行判断,若flag为0,则继续判断队列是否为空,为空就结束循环,若不为空,则继续出

4、队列,取标志位进行判断,若标志位为1,则生成新节点,用刚刚出列的节点的子指针域进行指向新节点,新节点的父指针域指向出列的节点,剩余的域为空,然后将新生成的节点插入到队列中,若Hag为1,则进行兄弟节点的插入,继续循环,若flag不为0,则在进行判断,若为2,则继续进行兄弟节点的插入,以此类推,根据文件的读取,将树生成,本程序屮所有的算法都基于以上所介绍的算法。2.简单家谱系统的主要特点及功能本系统的主要特点是算法简洁,易于阅读,用户交互界面良好。主耍实现功能如下:1、查询全部的家谱成员信息;2、查询某一个家谱成员的信息;3、查询某一成员的所有子孙信息;4、查询某一成员的所有祖先信息;5、查询

5、某一成员的所有同辈信息;6、查询某一成员的所有上辈信息;7、统计家谱中所有的人数;8、统计家谱中从事某一职业的人数;9、修改某一成员的家谱信息;10、输入两个人的名字,求其关系;►Z、.罾贾珍1贾府结构图:贾代化贾敬S贾源林黛玉贾迎存贾珠贾元春贾宝玉贾探存三详细设计4.1查询全部的家谱成员信息;该部分程序所完成的具体功能是把贾府屮所有的成员信息按照辈份依次显示出来,首先从贾无名开始,然后下一辈份的贾演、贾源等……最后是贾蓉的信息。每个辈份之间都有间隔。设计思想:利用队列遍历所有的结点,在遍历的同时依次输出每个结点的值(即为家庭成员的信息)。代码如下:voiddisplayElemtoFa

6、mily(LINKFAMILYlfy){intflag=l;LinkQueueslinkq;initLinkQueues(linkq);displayElem(lfy);insertElemtype2Queues(linkq,lfy);while(isQueuesEmpty(linkq)!=0){LINKFAMILYtemp=output2LinkQueues(linkq);if(temp-〉down!=NULL){temp=temp-〉down;if(flag

7、playElem(temp);insertElemtype2Queues(linkq,temp);while(temp->brother!=NULL)temp=temp-〉brother;displayElem(temp);insertElemtype2Queues(linkq,temp);}4.2查询某一个家谱成员的信息;、该部分代码所完成的具体功能是斉询某一个家庭成员的信息。首先手动输入你要査询的那个成员

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

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

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