数据结构课程实训任务书--家谱

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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.显示家谱树中所有成员信息

相关文档
最新文档