课 程 设 计 报 告课程设计名称:数据结构课程设计 系 : 三系 学 生 姓 名 : 朱强 班 级: 13 软件 学 号: 20250311227 成 绩: 指 导 教 师: 刘杰 开 课 时 间:2025-2025 学年一学期设计题目一:家谱的实现与设计一、 实习目的 通过学习,了解并初步掌握设计、实现较大系统的完整过程,包括系统分析、编码设计、编码集成以及调试分析,熟练掌握数据结构的选择、设计、实现、以及操作方法,为进一步的开发应用打好基础。二、 问题描述家谱的设计主要是实现对家庭成员信息的建立、查找、插入、修改、删除等功能。可。基本功能如下:(1)家谱祖先数据的录入(树的根结点)。(2)家庭成员的添加:即添加某一人的儿女,儿女的数目由控制台端给出,然后输入相应的儿女姓名(此处儿女的姓名不能重名)。(3)家庭成员的修改:可以修改某一成员的姓名。(4)员的查询:查询某一成员在家族中的辈分(第几代),并能查询此成员的所有子女及这一辈的所有成员。(5)家庭成员的删除:删除此成员时,若其有后代,将删除其所有后代成员。三、 需求分析 该程序所做的工作是对家族成员的的管理,为家族成员对各代成员的姓名,性别及子女情况的记录、查询提供方便。此程序规定: 1.在姓名录入时,姓名为 10 个字母以内的字符串;性别以 M/F 表示; 2.程序的输出信息主要为:输出家族成员在家族中的辈分(第几代),并能查询此成员的所有子女及这一辈的所有成员。3.程序的功能主要包括:家谱祖先数据的录入、家庭成员的添加、家庭成员的修改、员的查询、家庭成员的删除;四、 概要设计系统用到的数据有:char name[MAX]; char sex; /int generation;1)typedef struct node{ } //定义 data 存储结构2)typedef struct ft{ } //创建结构体3)ft *search(ft *p,char ch[]) // 搜索指针函数4)ft *parent(ft *p,ft *q,int *flag) //通过 parent 函数得到双亲结点。用flag 标志,-1 为左孩子,1 为右孩子 5)int generation(ft *p,char ch[]) // 获得搜索到的成员的代目的返回值6)void saves(ft *p,char b[],char c,int d) //建立家谱孩子结点 创建结点并对 l 赋值 保存7)void InitTree() //初始化8)void Add() //添加9)void Search() //查询10)void Change() //修改11)void Delete() //删除12)int main() //主函数各程序模块之间的调用关系:主函数...