数据结构课程实训任务书--家谱
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构实训任务书
一、实训目标
通过项目实战,掌握常用数据结构及其实现方法,能够将现实中的问题转换成计算机的数据形式,通过程序语言解决问题。
课程要求从两个方面的能力目标实现,素养目标要求学员在通过学习具备相对应的学习技能、素养要求;技术目标要求学员必须掌握课程产品所定义的知识与技能。
(1)素养目标
分析实现问题的能力;
实际问题与数据结构之间进行映射的能力。
(2)技术目标
复习C语言的使用;
复习数据结构中数组的排序、查找、顺序栈、队列和树的应用;
重点:排序、查找、栈、队列和树的应用
以树为应用目标实现项目之———家谱。
二、实训内容(见附录)
三、实训进度安排
按教学计划规定,该设计总学时数为30课时,其进度及时间大致分配如下:
四、考核评定
集宁师范学院
《数据结构实训》
题目家谱项目
指导教师:徐美娇
姓名:张婷琪
学号:201310521135
班级:信息一班
专业:信息与计算科学
地点:集宁师范学院
时间:2014.12.8—2014.12.12
一、项目名称
家谱项目
二、功能要求
使用树的形式,实现一个家谱功能的操作,要求可以:
A: 输入家谱信息建立多叉树
B: 在家族中查找某人并输出他或(她)的相应信息
C: 添加新的成员
a)添加配偶信息
b)添加子女信息
D: 输出整个家谱信息
E: 修改某个人的信息
a)修改个人信息
b)修改父母信息
c)修改兄弟姐妹信息
d)修改配偶信息
e)修改子女信息
F: 退出整个程序
三、需求分析
项目介绍:基于windows命令控制台的程序。
程序语言:C/C++语言;
开发工具:VC++6.0 或VS各版式本。
项目功能:实现多叉树的建立、遍历、添加元素元素等操作。
四、设计思想
A、建立一个多叉树。
B、实现建立多叉树操作。
C、实现遍历操作。
D、实现查找操作。
E、实现查找现实操作。
F、实现添加元素操作。
五、具体实现
1、技术思路:
A、实现一个多叉树;
B、做好多叉树的创建、遍历,元素添加等到操作。
C、根据输入的操作功能,进入分支选择,调用相应的方法实现功能。
六、附录
列出源程序的文件名清单或需附加的文档
1.创建家谱树
//创建家谱树函数
void createTree(Treelink &T)
{
char name1[20];
printf("请输入一个名字:");
fflush(stdin);
gets(name1);
if(strcmp(name1,"#")!=0)
{
strcpy(T->name,name1);
printf("请输入一个性别:");
fflush(stdin);
gets(T->sex);
}
//创建配偶
char xz;
printf("是否有配偶?(Y or N)");
fflush(stdin);
scanf("%c",&xz);
if(xz=='N'||xz=='n')
{
T->num=0;
return;
}
else
{
Treelink newNode=(Treelink)malloc(sizeof(Treenode));
printf("请输入配偶的姓名: ");
fflush(stdin);
gets(newNode->name);
if(strcmp(T->sex,"男")==0)
{
strcpy(newNode->sex,"女");
}
else
{
strcpy(newNode->sex,"男");
}
T->nextNode[0]=newNode;
newNode->parent=T;
newNode->nextNode[0]=NULL;
//输入孩子数
printf ("请输入孩子数:");
fflush(stdin);
scanf("%d",&T->num);
T->nextNode[0]->num=T->num;
if(T->num==0)
return;
//有孩子,递归创建孩子信息
for (int i=1;i<=T->num;i++)
{
newNode=(Treelink)malloc(sizeof(Treenode));
T->nextNode[i]=newNode;
newNode->parent=T;
newNode->nextNode[0]=NULL;
printf("请输入%s的第%d个孩子的信息:\n",T->name,i);
createTree(T->nextNode[i]);
}
}
}
2.显示家谱树中所有成员信息