电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

数据结构家谱课程设计报告VIP免费

数据结构家谱课程设计报告_第1页
1/7
数据结构家谱课程设计报告_第2页
2/7
数据结构家谱课程设计报告_第3页
3/7
家谱(3-1) 一 、题目要求 基本要求:从文件中读入家庭成员建立家谱,以孩子兄弟表示法存储。 基本功能:家谱管理,如: (1) 在家谱中添加新成员,并追加到文件中。 (2) 输出指定家庭的所有成员。 (3) 确定指定成员在家族中的辈份(第几代)。 等等。 二.概要设计 (1 )功能部分: 本程序共实现了6 个功能分别为: 1. 读出家谱并显示 2. 确定指定成员在家族中的辈份 3. 输出指定辈的所有成员 4. 在家谱中添加新成员,并追加到文件中 5. 输出指定家庭的所有成员 6. 退出本系统 (2)各功能的算法思想: 1. 读出家谱并显示 存储结构用栈,按照先显示双亲,然后显示其所有孩子的顺序显示所有的家庭成员。 2. 确定指定成员在家族中的辈份 用求成员所在的二叉树中的层数(按层遍历二叉树)来确定,这里采用的是递归算法 3. 输出指定辈的所有成员 此处定义了一个新的结构体类型(增加存储节点所在的层数),定义如下: struct { BTNode *q; int loc; //存结点所在的层数 }qu[10]; 并用一个队列来比较显示同辈分的所有成员。 4. 在家谱中添加新成员,并追加到文件中 首先,输入一个新成员的名字; 然后,输入其双亲; 之后,再添加到整个存储二叉链表中。 然后,再将新的存储结构写回到文件中。 二叉链表的结点类型为:typedef struct node { ElemType data[10]; //存放成员的名字 struct node *child; //其孩子指针 struct node *brother; //其兄弟指针 }BTNode; 5. 输出指定家庭的所有成员 首先,设一个栈,并设一个标记位,先置1; 然后,找到输入的要待显示的成员,将标记位置0; 再次,显示其孩子和兄弟,依次下去直到显示完其所有的亲戚。 6. 退出本系统 通过一个输入字符q 来控制,每完成一个功能,系统提示是否要继续操作: 当q 为“Y”或者“y”时,显示菜单,程序继续执行; 当 q 为其他字符时,程序执行结束,退出本系统。 三、详细设计: 通过一个do-while 语句来控制各个模块的选择和实现。 1 . 读出家谱并显示 void display(BTNode *b) { BTNode *q[10]; //定义一个栈 int front,rear; int k; BTNode *p; p=b;k=0; front=-1;rear=0; q[rear]=p; //头结点先入栈 while(frontdata ); //头结点出栈,并显示 printf("("); disbr(p->child); printf(")\n"); if(p->ch...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

数据结构家谱课程设计报告

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部