数据结构课程设计75730汇编Word格式.docx

上传人:b****1 文档编号:13638400 上传时间:2022-10-12 格式:DOCX 页数:11 大小:104.71KB
下载 相关 举报
数据结构课程设计75730汇编Word格式.docx_第1页
第1页 / 共11页
数据结构课程设计75730汇编Word格式.docx_第2页
第2页 / 共11页
数据结构课程设计75730汇编Word格式.docx_第3页
第3页 / 共11页
数据结构课程设计75730汇编Word格式.docx_第4页
第4页 / 共11页
数据结构课程设计75730汇编Word格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

数据结构课程设计75730汇编Word格式.docx

《数据结构课程设计75730汇编Word格式.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计75730汇编Word格式.docx(11页珍藏版)》请在冰豆网上搜索。

数据结构课程设计75730汇编Word格式.docx

Horse管理信息系统+Horse图结构数据应用

完成期限:

自2015年01月6日至2015年01月15日共1周

设计依据、要求及主要内容(可另加附页):

一、建立一个小型的管理信息系统:

1、确认管理信息系统的主题:

(一)主题词汇表:

1.hippopotamus河马2.jackal豺3.kingfisher翠鸟4.leopard豹5.lion狮

6.actor演员7.astronaut太空员8.policeman警察9.firefighter消防员10.mugger强盗

11.farmer农民12.boss老板13.dancer跳舞者14.Ostrich鸵鸟15.pilot飞行员

16.hairdresser理发师17.Mule骡18.waiter服务员19.accountant会计20.monk--和尚

21.dog—狗22.priest--牧师23.director--导演24.model--模特儿25.singer--歌手

26.dentist--牙医27.elephant--象28.nurse--护士29.navigator--航海家30.pilot--飞行员

31.architect建筑师32.peacock孔雀33.baker面包师34.businessman商人35.penguin企鹅36.receptionist接待员37.secretary--秘书38.attorney--律师39.judge--法官40.rabbit兔子

41.carpenter---木匠42.painter--油漆匠43.tailor--裁缝师44.driver--司机45.captain--船长46.fisherman--渔夫47.doctor医师48.gardener园丁49.chemist-药剂师50.engineer工程师51.scientist--科学家52.salesperson售货员53.photographer摄影师54.fox狐55.hourse马56.giraffe长颈鹿57.goat山羊58.Gorilla大猩猩59.Seagull海鸥60.hedgehog刺猬

61.Teacher教师62.professor教授63.cook厨师64.principal校长65.singer歌手

66.monkey猴子

按对应序号,每个同学获取对应词汇

(二)为每个主题词确定具有特征的信息集。

例:

fish:

{id,name,length,Weight,Color,Is_Carnivore,Is_Marine}

意义:

{编号,名字,长度,体重,颜色,是否食肉,是否海鱼}

horse:

{id(编号),name(名字),age(年龄),length(身长),weight(体重),color(颜色),sex(性别)}

(三)为每个主题建立一个信息管理系统

要求:

1.定义结构体存储每个主题词实体的数据;

2.使用单向链表进行多个数据的存储;

3.要求程序有主菜单,执行时显示实例为:

Fish管理系统功能菜单

1.增加Fish;

2.删除Fish;

3.修改Fish;

4.查询Fish信息;

5.统计Fish个数;

6.输出Fish列表;

7.退出;

请输入你的选择(1-7):

请实现以上功能。

二、现在考虑新的应用场景,使得产生多对多的关系,例如:

Fish主题中,一条鱼与另外多条鱼存在相邻的关系;

那么在Fish的基础信息之上,还需要保存相邻的Fish的信息。

为此,需要额外扩充关系数据。

使用邻接链表是一个很好的方式。

其思想是:

先开辟数组存储Fish的基本数据,然后,为每个Fish,构建链表,存储所有的关系(即指向相邻Fish的指针数据);

请按照上述思想,为你的每个主题词实体,建立邻接链表实现,

并且实现以下功能:

Fish图结构数据处理程序

1.创建Fish图)

2.按照深度遍历的方式打印所有的Fish;

3.按照广度遍历的方式打印所有的Fish;

4.退出。

三、直觉上,我们会认为:

图的遍历的编程问题,比给定n个数字的线性序列求最大值问题更难。

我们知道:

面向过程编程的核心问题是:

当处理完当前数据,决定下一个数据是谁。

请回答下面的问题:

(1)图的广度和深度优先遍历中,如何找到下一个要处理的数据?

(2)n个数字线性序列求最大值问题中,如何找到下一个要处理的数据?

(3)结合前述解答,解释为何图的广度和深度优先遍历问题难度直觉上大于线性序列最大值问题。

四、心得和体会

1.如何理解数据结构中的关系?

如果说:

数据结构等同于数据+关系,那么对于编程问题而言,数据更重要还是关系更重要?

为什么?

2.能够预先建立关系,对于编程来说很重要。

能否举例说明:

哪些问题无法事先建立数据的关系?

3.做完本课程设计后,你尚存在的问题是什么?

有所收获的是什么?

指导教师(签字):

系主任(签字):

批准日期:

年月日

Horse管理信息系统+Horse图结构数据应用设计报告

一、Horse信息管理系统

1.属性集及对应意义

数据类型

变量

含义

(整型)int

id

编号

(字符串)string

name

名字

age

年龄

length

身长

weight

体重

color

颜色

sex

性别

2.结构体定义

structhoursenode

{

intid;

//编号

stringname;

//名字

intage;

//年龄

intlength;

//身长

intweight;

//体重

stringcolor;

//颜色

stringsex;

//性别

structhoursenode*next;

};

3.修改Horse功能的实现描述(文字描述和流程图)

YN

YN

文字描述:

输入想要修改的马的id,当p不为NULL并且p的id不等于id时,令p指向下一个结点p->

next;

否则,判断p是否为NULL。

如果p为空,则马不存在;

否则查找成功,输入所要进行的修改进行修改信息。

4.各个功能的界面贴图(每个图都要图名)

主菜单:

增加Hourse:

查询Horse:

统计Horse:

输出Horse:

修改Horse:

删除Horse:

5.画出包含有三个数据的链表示意图

二、Horse图结构数据处理程序

1.描述你的场景主题

在Horse信息系统中,一匹马与其他多匹马存在相邻关系,在保存一匹马的基本信息基础上,还需要保存马匹之间的相邻关系。

在建立信息系统过程中,输入Horse的基本信息后,再建立它的关系属性,用链表的方式存储,建立Horse之间的关系,实现相邻成员之间的链接。

2.画图表示你的样例数据对应的邻接链表,并上方注明结构体的各个域名;

VertexNum

first

next

1

jack

2

190

290

white

m

rose

170

270

red

w

4

3

mary

160

260

jerry

180

280

5

tom

185

3.用自己的话,描述深度遍历或广度遍历的算法思想

深度遍历:

从指定顶点出发,首先访问这个顶点,然后从这个顶点的第一个未被访问过的邻接点出发再次进行深度遍历,直到所有的顶点都被访问过。

广度遍历:

从指定顶点出发,首先访问这个顶点,然后访问这个顶点的所有未被访问过的邻接点,然后从这些邻接点中第一个出发,访问它的未被访问过的邻接点,直到所有顶点都被访问过。

4.广度遍历和深度遍历在存储待处理结点的数目上,哪个更多?

深度遍历在存储待处理结点的数目上多一些。

深度优先遍历一次只遍历一个与指定结点邻接的顶点,如果在递归遍历过程中出现某一个顶点的所有邻接点都已被访问,但还有未被访问过的顶点,就需要回到它的上一个顶点,再找出没有被访问过的顶点,进行深度遍历。

而广度遍历,一次就可把所有与指定顶点的相邻接都访问,然后再访问邻接点的未被访问的顶点。

所以,深度遍历在存储待处理结点的数目较多。

三、程序难度的探索

直觉上,我们会认为:

1.图的广度和深度优先遍历中,如何找到下一个要处理的数据?

在深度遍历时,遍历时,结点以栈的形式存储,通过被访问过的栈来找到下一个处理数据。

在广度遍历中,遍历时,结点以队列的形式存储,通过被访问过的队列来找到下一个处理数据。

2.n个数字线性序列求最大值问题中,如何找到下一个要处理的数据?

线性序列中,数据以线性表形式存储,将一个数据的指针域指向另一个数据存储就可以找到下一个要处理的数据。

 

3.结合前述解答,解释为何图的广度和深度优先遍历问题难度直觉上大于线性序列最大值问题。

线性表中数据之间的关系是一对一的关系,一个结点有唯一一个邻接点,而深度遍历和广度遍历数据之间的关系是多对多,一个结点可以有多个邻接点,感觉上难度大。

数据结构中的关系是数据之间的联系,将原本孤立的点联系起来编程一个整体,一种结构,便于更好地处理数据。

我觉得对于编程问题而言,关系更为重要。

数据是独立的,不能做任何编程,而关系却能处理更多编程问题,所以关系比较重要。

括号匹配问题没法事先建立数据关系。

做完本课程设计后,我感觉自己对知识掌握不是很牢固,没有把课本的知识结合实践,做图结构的时候,只知道深度遍历和广度遍历的原理,却不知道如何将它们转化为计算机语言,从而实现该功能。

这次课程设

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 金融投资

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1