基于C语言实现(控制台)校园导游系统
1.软件定位软件的基本功能设计一个校园导游程序为来访的客人提供各种信息查询服务。1设计你所在学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。2为来访客人提供图中任意景点相关信息的查询。3为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。2.运行代码的方法1本程序源代码文件在visual studio code内编辑在学校机房visual c 6.0下编译通过并运行但vc6.0自带Windows控制台运行器无法输入中文在windows10系统下直接运行已编译生成的exe文件正常运行可输入中文。2双击exe文件后若进入主程序失败请参见后面常见问题说明部分第一条。3双击exe文件进入程序主程序后需准确输入命令正常运行如图所示。主程序主菜单(输入1或2或0)功能2准确输入景点名称功能2结果3.简要的说明景点和旅游线路可以构成图状结构景点作为图的顶点旅游线路作为图的边边上的权值作为景点间的距离景点布局如下图所示。查询景点信息就是输出相应顶点的信息给出到景点的最佳路线就是求最短路径问题使用迪杰斯特拉算法即可求出最短路径。创建一个无向图针对游客的需求将校园的景点编号、名称、介绍等信息放入到图的顶点中并保存景点文本文件VexType.txt中将景点间的距离当权值保存在二维数组中利用迪杰斯特拉算法来求从一个景点到另一个景点的最短距离利用queryVexDesc()函数查找景点信息在显示屏上输出相关结果最后按照显示屏上的提示进行相关的操作。创建图的过程是从文件中读入数据写到图结构的过程另外为了方便计算最短路径用了一个矩阵来存储各条边上的权值。4.代码目录结构说明主要函数的作用1数据结构#define MAXVEX 50 //最大顶点个数 #define MAXWEIGHT 5000 //最大权值 typedef struct { int no; //景点编号 char name[20]; //景点名称 char desc[100]; //景点简介 } VexType; //景点结构体 typedef int weight; //权值 typedef struct { weight arcs[MAXVEX][MAXVEX]; //邻接矩阵 VexType vex[MAXVEX]; //顶点信息 int vexNum; //顶点数 } MGraph, * AdjMatrix;2操作实现根据景点名称查询景点信息void queryVexDesc(AdjMatrix graph, char name[]) { int i; for (i 0; i graph-vexNum; i) { if (!strcmp(name, graph-vex[i].name)) { system(cls); //清屏 printf(景点编号[%d],景点名称%s\n简介\n------\n%s\n\n, graph-vex[i].no, graph-vex[i].name, graph-vex[i].desc); return; } } printf(输入错误请检查后重新操作\n\n); }根据景点名称查找景点序号int queryVexNo(AdjMatrix graph, char name[]) { int i; for (i 0; i graph-vexNum; i) if (!strcmp(name, graph-vex[i].name)) return i; return -1; }迪杰斯特拉算法求最短路径void dijkstra(AdjMatrix graph, int v, int dis[], int path[]) { int vset[MAXVEX]; int MinDis, i, j, w; for (i 0; i graph-vexNum; i) { vset[i] 1; dis[i] graph-arcs[v][i]; if (graph-arcs[v][i] MAXWEIGHT) path[i] v; else path[i] -1; } vset[v] 0; path[v] 0; for (i 1; i graph-vexNum; i) { MinDis MAXWEIGHT; for (j 0; j graph-vexNum; j) if (vset[j] dis[j] MinDis) { w j; MinDis dis[j]; } if (MinDis MAXWEIGHT) return; vset[w] 0; for (j 0; j graph-vexNum; j) { if (vset[j] graph-arcs[w][j] MAXWEIGHT dis[w] graph-arcs[w][j] dis[j]) { dis[j] dis[w] graph-arcs[w][j]; path[j] w; } } } }显示最短路径void dispPath(AdjMatrix graph, int path[], int dis[], int start, int end) { int top -1; VexType base[MAXVEX]; int pos; VexType vex; pos path[end]; while (pos ! start) { base[top] graph-vex[pos]; pos path[pos]; } base[top] graph-vex[start]; printf(从[%s]到[%s]的最佳路径为, graph-vex[start].name, graph-vex[end].name); while (top ! -1) { vex base[top--]; printf(%s-, vex.name); } printf(%s, graph-vex[end].name); printf(\n此路径长为%d米,大约需要走%d分钟\n\n, dis[end], dis[end] / 60); }5.常见问题说明1运行前应检查exe文件同级目录下是否存在程序的输入文件VexType.txt若不存在运行后将出现如下情况无法正常进入主程序。若丢失VexType.txt文件可编辑源代码文件使用内部已有的景点信息解除相应注释并注释掉使用外部文件的相关代码后重新编译即可正常运行。2请严格按照提示信息进行命令输入不符合格式要求或输入错误会提示输入错误并返回主程序需要重新操作。功能2中目的景点不能与出发景点相同否则亦会提示输入错误并返回主程序。♻️ 资源大小408KB➡️资源下载https://download.csdn.net/download/s1t16/87415787注更多内容可关注微信公众号【神仙别闹】如当前文章或代码侵犯了您的权益请私信作者删除

相关新闻

【关于Agent开发的阶段性思考】从基础原理理解到高阶应用实践的谜思解构

【关于Agent开发的阶段性思考】从基础原理理解到高阶应用实践的谜思解构

ljqGitHub 近期在工作闲暇之余一直在反思Agent开发以及相关的方向,Agent智能体开发难吗?在行业不断制造各种概念的今天,说难也难,难在模型本身概率输出的不可控属性,说简单大道至简,一语道破的话&#xff…

2026/5/17 10:20:25 阅读更多 →
毕业论文神器!千笔AI,顶流之选的降AIGC工具

毕业论文神器!千笔AI,顶流之选的降AIGC工具

在AI技术迅速渗透学术写作领域的今天,越来越多的学生开始借助AI工具提升论文写作效率。然而,随之而来的“AI率超标”问题却成为不少学生面临的严峻挑战。随着查重系统对AI生成内容的识别能力不断提升,论文中若存在明显AI痕迹,不仅…

2026/5/17 10:20:24 阅读更多 →
专科生也能用!好评如潮的AI论文网站 —— 千笔·专业论文写作工具

专科生也能用!好评如潮的AI论文网站 —— 千笔·专业论文写作工具

你是否也曾为论文的选题发愁?是否在深夜面对空白文档无从下笔?是否反复修改却总对表达不满意?论文写作不仅是学术能力的考验,更是时间与耐心的挑战。而如今,一款专为学生量身打造的AI论文写作工具——千笔AI&#xff0…

2026/7/3 5:26:05 阅读更多 →

最新新闻

原来网站排名还能“买”到?

原来网站排名还能“买”到?

在传统SEO时代,网站排名确实可以通过竞价排名(SEM)直接“购买”关键词位置,但那种模式本质是付费买流量,一旦停止付费,排名瞬间消失。而在GEO(生成式引擎优化)时代,所谓的…

2026/7/5 2:26:36 阅读更多 →
告别技术空谈:九尾狐AI发布2026年最新企业AI培训体系,主推‘战略到变现‘全周期陪跑模式

告别技术空谈:九尾狐AI发布2026年最新企业AI培训体系,主推‘战略到变现‘全周期陪跑模式

AI短视频矩阵运营:2026企业培训如何实现从战略到变现的全周期陪跑 作为一名长期在一线协助中小企业落地AI应用的博主,我见过太多这样的场景:老板花大价钱请了团队做培训,员工课上听得热血沸腾,回到工位却无从下手&…

2026/7/5 2:26:36 阅读更多 →
西门子S7-1200 PLC轴运动控制配置与优化指南

西门子S7-1200 PLC轴运动控制配置与优化指南

1. 西门子S7-1200 PLC轴运动控制基础架构在工业自动化领域,轴运动控制是PLC应用中最具挑战性的任务之一。西门子S7-1200系列PLC凭借其紧凑的机身设计和强大的运动控制功能,成为中小型自动化项目的首选控制器。这套系统最核心的组件是工艺对象&#xff08…

2026/7/5 2:26:36 阅读更多 →
[MAF预定义ChatClient中间件-05]动态修改ChatOptions和请求消息

[MAF预定义ChatClient中间件-05]动态修改ChatOptions和请求消息

1. 利用ConfigureOptionsChatClient交替使用不同的模型 如下的程序演示了如何利用ConfigureOptionsChatClient中间件来动态地配置ChatOptions的ModelId属性,从而实现交替使用不同的模型来生成响应的功能。如代码片段所示,我们根据OpenAIClient创建了一个…

2026/7/5 2:24:36 阅读更多 →
Linux syslog日志权限出错

Linux syslog日志权限出错

一、Linux syslog日志权限 Linux syslog日志权限出错通常是由于文件权限设置不当或用户权限不足导致的,可通过检查日志文件权限、所有者、用户权限,以及SELinux设置来定位并解决问题。 以下是具体分析和解决步骤: 检查日志文件权限 使用 ls -…

2026/7/5 2:24:36 阅读更多 →
JWT 在线解码、验签、生成一篇讲透:附前端实现、工具架构与在线体验地址

JWT 在线解码、验签、生成一篇讲透:附前端实现、工具架构与在线体验地址

为什么后端说签名不对?HS256、RS256、ES256、PS256 到底怎么切?公钥私钥是 PEM 还是 JWK,到底该贴哪种?改了 payload 之后,怎么重新生成一个能用的 JWT?所以这篇不只讲 JWT 原理,我会直接结合这…

2026/7/5 2:22:35 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻