实用文库汇编之数据结构课程设计校园导航

合集下载

校园导航程序课程设计

校园导航程序课程设计

校园导航程序课程设计一、课程目标知识目标:1. 学生能理解并掌握校园导航程序的基本原理和功能。

2. 学生能了解并运用编程语言(如Python)实现基本的地图展示、路径规划和信息查询功能。

3. 学生能掌握基础的地理信息系统(GIS)知识,并将其应用于校园导航程序设计。

技能目标:1. 学生能运用编程技能,设计并开发出一个简单的校园导航程序。

2. 学生能通过小组合作,进行需求分析、功能设计和程序测试,提高团队协作能力。

3. 学生能运用问题解决策略,解决在编程和调试过程中遇到的问题。

情感态度价值观目标:1. 学生能培养对编程和地理信息科学的兴趣,激发创新意识。

2. 学生能在课程学习过程中,体验编程带来的成就感,增强自信心。

3. 学生能认识到科技在现实生活中的应用,理解科技对人类生活的积极作用,培养社会责任感。

课程性质:本课程为信息技术与地理学科融合的实践性课程,旨在培养学生的编程能力、地理信息系统应用能力和团队协作能力。

学生特点:六年级学生具有一定的编程基础和地理知识,对新鲜事物充满好奇,喜欢动手实践,具备一定的自主学习能力。

教学要求:注重理论与实践相结合,关注学生个体差异,鼓励学生积极参与,充分调动学生的主观能动性。

将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. 校园导航系统概述:介绍校园导航系统的基本概念、功能和应用场景,让学生对课程内容有一个整体的认识。

相关教材章节:信息技术课本第五章第二节“地理信息系统及其应用”。

2. 编程语言基础:回顾Python编程基础知识,重点复习变量、条件语句、循环语句和函数等基本概念。

相关教材章节:信息技术课本第二章“Python编程基础”。

3. 地理信息系统(GIS)知识:讲解GIS的基本原理,介绍地图坐标系、空间数据结构等基础知识。

相关教材章节:地理课本第八章第三节“地理信息系统及其应用”。

4. 校园导航程序设计:a. 需求分析:组织学生进行小组讨论,明确校园导航程序的功能需求。

数据结构的课程设计

数据结构的课程设计

数据结构的课程设计一、课程目标知识目标:1. 理解数据结构的基本概念,掌握线性表、树、图等常见数据结构的特点与应用场景。

2. 学会分析不同数据结构的存储方式和操作方法,并能运用到实际问题的解决中。

3. 掌握排序和查找算法的基本原理,了解其时间复杂度和空间复杂度。

技能目标:1. 能够运用所学数据结构知识,解决实际问题,提高编程能力。

2. 能够运用排序和查找算法,优化程序性能,提高解决问题的效率。

3. 能够运用数据结构知识,分析并解决复杂问题,培养逻辑思维能力和创新意识。

情感态度价值观目标:1. 培养学生对数据结构学科的兴趣,激发学习热情,形成主动探索和积极进取的学习态度。

2. 增强学生的团队协作意识,培养合作解决问题的能力,提高沟通表达能力。

3. 培养学生的抽象思维能力,使其认识到数据结构在计算机科学中的重要性,激发对计算机科学的热爱。

本课程针对高中年级学生,结合学科特点和教学要求,注重理论与实践相结合,培养学生的编程能力和逻辑思维能力。

通过本课程的学习,使学生能够掌握数据结构的基本知识,提高解决实际问题的能力,同时培养良好的学习态度和价值观。

在教学过程中,将目标分解为具体的学习成果,以便进行后续的教学设计和评估。

二、教学内容1. 数据结构基本概念:介绍数据结构的概念、作用和分类,重点讲解线性结构(线性表、栈、队列)和非线性结构(树、图)的特点。

2. 线性表:讲解线性表的顺序存储和链式存储结构,以及相关操作(插入、删除、查找等)。

3. 栈和队列:介绍栈和队列的应用场景、存储结构及相关操作。

4. 树和二叉树:讲解树的定义、性质、存储结构,二叉树的遍历算法及线索二叉树。

5. 图:介绍图的定义、存储结构(邻接矩阵和邻接表)、图的遍历算法(深度优先搜索和广度优先搜索)。

6. 排序算法:讲解常见排序算法(冒泡排序、选择排序、插入排序、快速排序等)的原理、实现及性能分析。

7. 查找算法:介绍线性查找、二分查找等查找算法的原理及实现。

数据结构课程设计_校园导航系统 _课程设计报告

数据结构课程设计_校园导航系统 _课程设计报告

南京工程学院课程设计说明书(论文)题目校园导航系统课程名称数据结构院系通信工程学院专业信息工程班级学生姓名学号设计地点指导教师设计起止时间:2008 年12月29 日至年月日目录1.课程设计题目 (1)2.软件功能描述 (1)3.软件总体设计 (1)3.1数据结构描述与定义 (1)3.2模块设计 (3)4.测试结果与分析 (4)5.课程设计总结 (5)附录:源程序清单 (6)1.课程设计题目校园导航系统2.软件功能描述在近一个星期的努力下,我编写的校园导航系统软件终于能够成功完成。

采用工程思想,将系统共分一下几个模块:数据结构定义模块、导航图建立模块、求最短路径模块、主菜单;下面是具体各功能简单的实际应用:➢数据结构定义模块:模块定义了导航图中各个节点的基本结构类型,主要采用邻接矩阵的存储结构来真实反映各节点到其他所有节点的路径长度(权值大小)。

➢导航图建立模块:采用上述结构体类型对导航图中每个节点进行赋值。

包括:各定点的名称(地点名),各个节点到其他所有节点的真实路径长度(赋权值)。

➢求最短路径模块:本模块的基本思想是采用迪杰斯特拉算法求最短路径。

次模块是本校园导航系统的核心模块,求两点间的最短路径与求一点到其他所有点最短路径两个子功能均是在最短路径算法模块的基础上进行调用,进而实现导航功能。

➢主菜单:主菜单中主要是显示导航图中的所有导航节点,能够快速方便的对各个地点进行导航。

以上程序的几个模块,构成了校园导航系统的基本组成部分,程序运行良好,达到了课程设计的基本要求。

由于所学知识有限,功能各个方面还有欠妥之处,希望得到指出与改正。

3.软件总体设计3.1数据结构描述与定义1.节点数据结构类型:#define MAX_V 30 //最大顶点个数typedef struct{char* vexs[MAX_V]; //顶点向量int arcs[MAX_V][MAX_V];//邻接矩阵int vexnum,arcnum;//图的当前顶点数和弧数}MGraph;2.创建导航图函数:int CreateUDN(MGraph &G)函数描述:主要将每个节点进行命名、每个顶点到其他所有定点的路径值用邻接矩阵进行存储。

数据结构课程设计实例探讨之校园导航设计

数据结构课程设计实例探讨之校园导航设计
学 术 论 坛
SIC &T HOoY CNE E NLG E C
数 据 结 构 课 程 设 计 实例 探 讨 之 校 园导 航 设 计
周李 涌 高鹭 ( 内蒙 古科技 大学信 息工程 学院 内蒙古包 头
0 0 ) 1 1 4 0
摘 要 : 据结构课 程设计是 数据蛄构课 程 中的 重要 教 学环 节, 数 本次设计 其 实就是 教据结 构 中圉奏的同题 。 将校 园建 筑作 为圈的顶点 , 将 建 筑 问的路径 作 为圈的边 , 路径 噩 离作 为边 的权 值 。 样 , 两建 筑 间最短路 径 的 问题 就抽 象成 了求 圈中一 顶点 到另一 顶点 的问题 。 这 求 关键 词 : 数据 结构 图 路径 距 离 中 图分 类 号 : 4 3 G 2 文献 标 识 码 : A 文章 编 号 : 6 2 3 9 ( 0 9 1 () 0 0 — 1 1 7 — 7 I 2 0 )0 a 一 2 9 0 数 据 结 构 课 程 设 计 是 数据 结 构 课 程 中 的 重 要 教 学 环 节 , 锻 炼 学 生 理 论 联 系 实 是 际 的 重 要 手 段 。 过 数 据 结 构 课 程 设 计 要 通 求学生掌握 数据结构与算 法的设计方 法 , 具 备 初 步 的 独 立 分 析 和 设 计 能 力 ; 步 掌 初 握 软 件 开 发 过 程 的 问题 分 析 、 系统 设 计 、 程 序 编码 试 等 基 本 方法 和 技 能 ; 高综 合 测 提 运 用 所 学 的 理 论 知 识 和 方 法独 立 分 析 和 解 决 问题 的 能 力 , 练 用 系 统 的 观 点 和 软 件 训 开 发 一 般 规 范 进 行 软 件 开 发 , 养 软 件 工 培 作者所应具 备的科学的工作方法和作风 。 的 子 任 务 , 分 解 出 许 多 子 功 能 模 块 进 行 即 设 计 。 程 序 经 过 分 析 可 划 分 出 9 子 模 本 个 块 :1建 立 图的 信 息 : 邻 接表 存 储 输 入 图 () 按 的 信 息 。2从 文 件 中读 取 图的 信 息 : 文件 () 把 中的原 有 信 息 读 入 , 程 序使 用 。3输入 并 为 () 保 存 景 点 简 介 信 息 : 新 输 入 图 的 景 点 或 重 是 建 筑 信 息 并 保 存 到 文件 中 。4读 取 并 查 () 找 简 介信 息 : 文 件 中读 入 信 息 , 找 指 定 在 查 建筑 的 简 介 信 息 。5输 出 图邻 接 表 : 出 图 () 输 的 邻接 表 信 息 。6 按 广 度优 先 遍 历 图 : 广 () 按 度 优 先 规 则 遍 历 并 输 出遍 历结 果 。7输 出 () 结 点 间 的 距 离 : 入 一 个 节 点 输 出 所 有 节 输 点到 它 的 距 离 。8 输 出结 点 间的 路 径 : 入 () 输 个 节 点 输 出所 有 节 点 到 它 的 距 离 及 其 具 体 路 径 。9 书 写 文 件信 息 : 写有 关 文 件信 () 书 息 。 : 点 或 是 建 筑 简 介 、 的 邻 接 表 信 如 景 图 息、 码。 密

《数据结构》课程设计

《数据结构》课程设计

《数据结构》课程设计一、课程目标《数据结构》课程旨在帮助学生掌握计算机科学中基础的数据组织、管理和处理方法,培养其运用数据结构解决实际问题的能力。

课程目标如下:1. 知识目标:(1)理解基本数据结构的概念、原理和应用,如线性表、栈、队列、树、图等;(2)掌握常见算法的设计和分析方法,如排序、查找、递归、贪心、分治等;(3)了解数据结构在实际应用中的使用,如操作系统、数据库、编译器等。

2. 技能目标:(1)能够运用所学数据结构解决实际问题,具备良好的编程实践能力;(2)掌握算法分析方法,能够评价算法优劣,进行算法优化;(3)能够运用数据结构进行问题建模,提高问题解决效率。

3. 情感态度价值观目标:(1)激发学生对计算机科学的兴趣,培养其探索精神和创新意识;(2)培养学生团队合作意识,学会与他人共同解决问题;(3)增强学生的责任感和使命感,使其认识到数据结构在信息技术发展中的重要性。

本课程针对高中年级学生,结合学科特点和教学要求,将目标分解为具体的学习成果,为后续教学设计和评估提供依据。

课程注重理论与实践相结合,旨在提高学生的知识水平、技能素养和情感态度价值观。

二、教学内容《数据结构》教学内容依据课程目标进行选择和组织,确保科学性和系统性。

主要包括以下部分:1. 线性表:- 线性表的定义、特点和基本操作;- 顺序存储结构、链式存储结构及其应用;- 线性表的相关算法,如插入、删除、查找等。

2. 栈和队列:- 栈和队列的定义、特点及基本操作;- 栈和队列的存储结构及其应用;- 栈和队列相关算法,如进制转换、括号匹配等。

3. 树和二叉树:- 树的定义、基本术语和性质;- 二叉树的定义、性质、存储结构及遍历算法;- 线索二叉树、哈夫曼树及其应用。

4. 图:- 图的定义、基本术语和存储结构;- 图的遍历算法,如深度优先搜索、广度优先搜索;- 最短路径、最小生成树等算法。

5. 排序和查找:- 常见排序算法,如冒泡、选择、插入、快速等;- 常见查找算法,如顺序、二分、哈希等。

数据结构课程设计-校园导航

数据结构课程设计-校园导航

课程设计报告课程名称数据结构课程设计题目校园导航指导教师设计起始日期学院计算机学院系别计算机科学与工程学生姓名班级/学号成绩一、需求分析本次实验设计的任务是实现一个简易的北京信息科技大学的校园导航平面图。

设计要包括下列要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。

本课题实现校园多个场所(至少10个)的最短路径求解。

(1)输入的形式和输入值的范围:本系统主要数据类型为字符型char及整形int,char型主要包括单位编号,单位名称,单位简介,功能编号;输入功能编号与单位编号进行操作。

(2 ) 输出的形式:输出则通过已有的信息数据,通过相关的操作输出相应信息。

(3) 程序所能达到的功能:本程序可供任何人使用,主要功能 1.浏览各单位及简介;2.查看所有游览路线;3.选择出发点和目的地求出最佳路径;4.查看某一单位信息。

(4)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。

a.首先看到的是校园导航系统的菜单:b.查看浏览路线等待输入起始景点:C.选择出发点与目的地等待输入起始景点与目的地编号:d.参看景点信息等待输入景点编号:二、概要设计本系统包含一个文件。

设计分有菜单,显示信息,弗洛伊德算法,迪杰斯特拉算法,查找景点信息等程序段。

主程序为整系统的入口处,菜单主要实现显示系统功能,显示信息主要实现显示景点信息,弗洛伊德算法主要实现求两景点之间最短路径,迪杰斯特拉算法实现求两景点之间最短路径,查找景点信息主要实现显示某一景点信息。

系统首先通过主程序调用void main( );进入系统主菜单函数,根据用户的选择可分别进入:1.浏览各景点及简介;2.查看所有游览路线;3.选择出发点和目的地求出最佳路径;4.查看景点信息;5.退出系统。

选择“浏览各景点及简介”项,显示十个景点的有关信息,包括景点编号,景点名称,景点简介。

《校园导航系统》课程设计报告

《校园导航系统》课程设计报告

《校园导航系统》课程设计报告姓名:郭璇学号:110263100129 班级:10网络专业:网络工程指导教师:唐轶媛蒋荣萍时间:2012/6/25-2012/7/6信息科学与工程学院目录摘要 (1)1.题目 (1)2.概要设计 (1)3.调试分析 (15)4.参考文献 (15)1.题目校园导航系统设计一个校园导游程序,后台操作:1、操作员信息管理如修改密码等2、能根据学校的规模进行添加景点信息、修改景点信息等功能,3、若临时有交通管制,能进行交通管制的设置和撤销(如某某时间段那条路进行那个方向的交通管制等)前台为来访的客人提供各种信息查询服务:1、设计学校的校园平面图,所含景点不少于10个。

以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。

2、为来访客人提供图中任意景点相关信息的查询。

3、提供途中任意景点问路查询,即求任意两个景点间的一条最短的简单路径。

1.1 需求分析设计一个校园导航系统,导航系统又分为游客和管理员。

要进行管理操作还是游客操作由用户自己选择管理员的操作:修改景点信息、增加景点信息、交通管制等。

游客的操作:查看景点信息和查最短路径。

2.概要设计景点的信息由一维数组存放,景点关系由二维数据来存放景点的信息和关系从文件读取,进而初始化typedef struct //保存单个景点信息的结构体{char code[10]; //存放景点代码char name[20]; //存放景点名称char instruction[100]; //存放景点简介}ViewPoint;typedef struct //存放景点关系的二维数组{int edges[MAXV][MAXV]; //两景点间的距离int number; //景点的数量ViewPoint V[MAXV]; //保存景点信息的结构体数组}MGraph;2.1 流程图↓↓↓↓↓↓↓2.2详细设计void MainMenu(); 主菜单,写界面操作的函数。

《数据结构》课程设计报告

《数据结构》课程设计报告

《数据结构》课程设计报告一、课程目标《数据结构》课程旨在帮助学生掌握计算机科学中数据结构的基本概念、原理及实现方法,培养其运用数据结构解决实际问题的能力。

本课程目标如下:1. 知识目标:(1)理解数据结构的基本概念,包括线性表、栈、队列、串、数组、树、图等;(2)掌握各类数据结构的存储表示和实现方法;(3)了解常见算法的时间复杂度和空间复杂度分析;(4)掌握排序和查找算法的基本原理和实现。

2. 技能目标:(1)能够运用所学数据结构解决实际问题,如实现字符串匹配、图的遍历等;(2)具备分析算法性能的能力,能够根据实际问题选择合适的算法和数据结构;(3)具备一定的编程能力,能够用编程语言实现各类数据结构和算法。

3. 情感态度价值观目标:(1)培养学生对计算机科学的兴趣,激发其探索精神;(2)培养学生团队合作意识,提高沟通与协作能力;(3)培养学生面对问题勇于挑战、善于分析、解决问题的能力;(4)引导学生认识到数据结构在计算机科学中的重要地位,激发其学习后续课程的兴趣。

本课程针对高年级学生,课程性质为专业核心课。

结合学生特点,课程目标注重理论与实践相结合,强调培养学生的实际操作能力和解决问题的能力。

在教学过程中,教师需关注学生的个体差异,因材施教,确保课程目标的达成。

通过本课程的学习,学生将具备扎实的数据结构基础,为后续相关课程学习和职业发展奠定基础。

二、教学内容根据课程目标,教学内容主要包括以下几部分:1. 数据结构基本概念:线性表、栈、队列、串、数组、树、图等;教学大纲:第1章 数据结构概述,第2章 线性表,第3章 栈和队列,第4章 串。

2. 数据结构的存储表示和实现方法:教学大纲:第5章 数组和广义表,第6章 树和二叉树,第7章 图。

3. 常见算法的时间复杂度和空间复杂度分析:教学大纲:第8章 算法分析基础。

4. 排序和查找算法:教学大纲:第9章 排序,第10章 查找。

教学内容安排和进度如下:1. 第1-4章,共计12课时,了解基本概念,学会使用线性表、栈、队列等解决简单问题;2. 第5-7章,共计18课时,学习数据结构的存储表示和实现方法,掌握树、图等复杂结构;3. 第8章,共计6课时,学习算法分析基础,能对常见算法进行时间复杂度和空间复杂度分析;4. 第9-10章,共计12课时,学习排序和查找算法,掌握各类算法的实现和应用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

*作者:座殿角*作品编号48877446331144215458创作日期:2020年12月20日实用文库汇编之一、课程设计目的本课程设计的目标就是要达到理论与实际应用相结合,提高学生组织数据及编写大型程序的能力,并培养基本的、良好的程序设计技能以及合作能力。

设计中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握数据结构和算法设计技术,掌握分析、解决实际问题的能力。

通过这次设计,要求在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。

同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。

二、课程设计内容1)问题描述用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。

要求能够回答有关景点介绍、游览路径等问题。

2)基本要求(1)查询各景点的相关信息;(2)查询图中任意两个景点间的最短路径。

(3)查询图中任意两个景点间的所有路径。

(4)增加、删除、更新有关景点和道路的信息三、课程设计过程1.需求分析(1)设计学校的校园平面图,选取出若干的具有代表性的景点构成一个抽象的无向带权图,顶点为景点,边的权值代表了景点间路径的长度。

(2)将景点的序号,名称,介绍存放起来准备查询。

(3)提供任意景点的信息;(4)提供任意经典的路径查询及其最优路线的查询(5)平面图景点的增加及删除,以及边和权值(长度)的改变2.概要设计1:第一点是主界面的设计,首先,为了该系统各个功能的管理,设计出含有多个菜单项的主菜单界面,可以更方便的使用该系统。

2:第二点是存储结构的设计,采取了图结构类型(mgraph)存储校园图的信息,景点信息用结构数组vexs存储,而且利用全局变量:visited[]数组用于存储顶点是否被访问标志;d[]数组用于存放权值和查找路径顶点的编号;campus是一个图结构的全局变量。

3:第三点是设计各个功能的实现,学校景点的介绍通过函数browsecompus()来实现;查询景点间的最段路径通过Floyd(弗洛伊德)算法实现;查询景点间的所有路径通过allpath函数和path函数来实现;更改图的信息可以由主函数changegraph以及其他函数可以实现。

3.详细设计(1)主要的操作界面的显示以及无向网操作void initgraph(graph *ga){int i,j;ga->n=9;ga->e=11;for( i=0;i<ga->n;i++){ga->vexs[i].num=i;}strcpy(ga->vexs[0].name,"西门");strcpy(ga->vexs[0].introduce,"学校的正大门,设有公交站");strcpy(ga->vexs[1].name,"风雨篮球场");strcpy(ga->vexs[1].introduce,"");strcpy(ga->vexs[2].name,"田径场");strcpy(ga->vexs[2].introduce,"举办运动会,平时体育跑步锻炼等");strcpy(ga->vexs[3].name,"京元食堂");strcpy(ga->vexs[3].introduce,"新食堂");strcpy(ga->vexs[4].name,"苍霞湖畔");strcpy(ga->vexs[4].introduce,"戏称“分手湖”,景色宜人");strcpy(ga->vexs[5].name,"思源楼");strcpy(ga->vexs[5].introduce,"学校王牌土木的教学区");strcpy(ga->vexs[6].name,"图书馆");strcpy(ga->vexs[6].introduce,"是大学城最高的标志性建筑");strcpy(ga->vexs[7].name,"北教区");strcpy(ga->vexs[7].introduce,"北校区集中的教学楼");strcpy(ga->vexs[8].name,"禾堂餐厅");strcpy(ga->vexs[8].introduce,"旧食堂");for(i=0;i<ga->n;i++)for(j=0;j<ga->n;j++)ga->edges[i][j]=1000;ga->edges[0][1]=1;ga->edges[1][2]=2;ga->edges[1][3]=5;ga->edges[2][4]=4;ga->edges[3][4]=9;ga->edges[4][5]=1;ga->edges[4][8]=1;ga->edges[5][6]=5;ga->edges[5][7]=7;ga->edges[7][8]=1;ga->edges[6][7]=9;for(i=0;i<ga->n;i++)for(j=0;j<ga->n;j++)ga->edges[j][i]=ga->edges[i][j];}(2)确定顶点是否存在已经顶点是否已经被访问过来确定路径void Create_graph(graph *ga){int i,j,k,w;printf("请输入顶点数和边数:\n");scanf("%d %d",&(ga->n),&(ga->e));printf("请输入景点编号,景点名字,景点介绍,建立信息表:\n");for(i=0;i<ga->n;i++){scanf("%d",&(ga->vexs[i].num));gets(ga->vexs[i].name);gets(ga->vexs[i].introduce);}for(i=0;i<ga->n;i++)for(j=0;j<=ga->n;j++)作者:座殿角作品编号48877446331144215458创作日期:2020年12月20日ga->edges[i][j]=1000;for(k=0;k<ga->e;k++){printf("请输入%d条边的景点序号i,j和长度:",k+1);scanf("%d %d %d",&i,&j,&w);ga->edges[i][j]=w;ga->edges[j][i]=w;}}void print(graph ga){int i,j;for(i=0;i<ga.n;i++)for(j=0;j<ga.n;j++){printf("%d",ga.edges[i][j]);if(j+1==ga.n)printf("\n");}}void visit(graph ga){int a;printf("请输入景点编号:");scanf("%d",&a);int i;for( i=0;i<ga.n;i++){if(a==ga.vexs[i].num){printf("景点编号为%d \n",ga.vexs[i].num);printf("景点名称为");puts(ga.vexs[i].name);printf("景点介绍为");puts(ga.vexs[i].introduce);break;}}if(i==ga.n)printf("无此点\n");}(3)得出景点间的最短路径void shortestpath_djst(graph ga){}void shortestpath_floyd(graph ga){int i,j,k,v,u,w,d[35][35],p[35][35][35];for(v=0;v<ga.n;v++){for(w=0;w<ga.n;w++){d[v][w]=ga.edges[v][w];for(u=0;u<ga.n;u++){p[v][w][u]=0;}if(d[v][w]<1000){p[v][w][v]=1;p[v][w][w]=1;}}}for(u=0;u<ga.n;u++){for(v=0;v<ga.n;v++)for(w=0;w<ga.n;w++)if(d[v][u]+d[u][w]<d[v][w]){d[v][w]=d[v][u]+d[u][w];for(i=0;i<ga.n;i++)p[v][w][i]=p[v][u][i]||p[u][w][i];}}printf("\n请输入出发点和目的地编号:");scanf("%d %d",&k,&j);printf("\n\n");while(k<0||k>ga.n||j<0||j>ga.n){printf("\n输入的编号不存在");printf("\n请重新输入编号:\n\n");scanf("%d %d",&k,&j);printf("\n\n");}printf("%s",ga.vexs[k].name);for(u=0;u<ga.n;u++)if(p[k][j][u] && k!=u &&j!=u)printf("--->%s",ga.vexs[u].name);printf("--->%s",ga.vexs[j].name);printf("\n\n\n总长度为%d千米\n\n\n",d[k][j]); }(4)得到景点之间的所有路径void path(graph c,int m,int n,int k) {作者:座殿角作品编号48877446331144215458创作日期:2020年12月20日int s,x=0;int t;t=k+1;if(d[k]==n && k<8){for(s=0;s<k;s++){printf("%s--->",c.vexs[d[s]].name);}printf("%s\n\n",c.vexs[d[s]].name);}else{s=0;while(s<c.n){if((c.edges[d[k]][s]<1000)&&(visited[s]==0)){visited[s]=1;d[k+1]=s;path(c,m,n,t);visited[s]=0;}s++;}}}void allpath(graph c){int k,i,j,m,n;printf("\n\n请输入您要查询的两个景点的编号:\n\n");scanf("%d %d",&i,&j);printf("\n\n");m=locatevex(c,i);n=locatevex(c,j);d[0]=m;for(k=0;k<c.n;k++)visited[k]=0;visited[m]=1;path(c,m,n,0);}(5)删除边int delarc(graph &ga) {int m,n,v0,v1;if(ga.e<=0){printf("图中已经无顶边,无法删除");return 1;}printf("\n请输入要删除的边的起点和终点的编号:");scanf("%d %d",&v0,&v1);m=locatevex(ga,v0);if(m<0){printf("此顶点%d已删除",v0);return 1;}n=locatevex(ga,v1);if(n<0){printf("此顶点%d已删除",v1);return 1;}ga.edges[m][n]=1000;ga.edges[n][m]=1000;ga.e--;return 1;}int enarc(graph &ga){int m,n,distance;printf("请输入边的起点和终点编号,权值:");scanf("%d %d %d",&m,&n,&distance);while(m<0||m>ga.n||n<0||n>ga.n){printf("输入错误,请重新输入:");scanf("%d %d",&m,&n);}if(locatevex(ga,m)<0){printf("此节点%d已经删除",m);return 1;}if(locatevex(ga,n)<0){printf("此节点%d已经删除",n);return 1;}ga.edges[m][n]=distance;ga.edges[n][m]=ga.edges[m][n];return 1;}4.调试分析作者:座殿角作品编号48877446331144215458创作日期:2020年12月20日内容包括:a.调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;b.算法的时空分析(包括基本操作和其他算法的时间复杂度和空间复杂度的分析)和改进设想;c.经验和体会等。

相关文档
最新文档