Skip to content

yejin-cs/campus-guide-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

校园导游系统

一个基于 C 语言实现的校园导游控制台程序。项目以校园平面图为应用场景,将景点抽象为图的顶点,将道路抽象为带权边,通过邻接矩阵存储无向带权图,并使用 Dijkstra 算法完成任意两个景点之间的最短路径查询。

当前示例数据以安徽大学磬苑校区为背景,包含 10 个校园景点和 14 条双向路径。

需求说明

本项目根据数据结构课程实验要求完成,核心任务如下:

  • 设计校园平面图,景点数量不少于 8 个
  • 使用图中顶点表示校园景点,保存景点名称和景点介绍
  • 使用图中边表示校园道路,边权表示道路长度
  • 将景点和道路信息保存到 graph.txt
  • 程序运行时从 graph.txt 读取数据并创建图
  • 提供景点信息查询功能
  • 提供任意两个景点之间的最短路径查询功能

在此基础上,程序还实现了景点新增、景点信息修改和路径新增功能,并会将修改后的数据写回 graph.txt

功能特性

  • 景点信息查询:查看校园景点列表,并查询指定景点的简介
  • 问路查询:输入起点和终点,输出一条最短路径及其总距离
  • 景点维护:新增景点或修改已有景点的名称与简介
  • 路径维护:在两个不同景点之间新增一条双向路径
  • 文件持久化:所有图数据统一保存在 graph.txt
  • 输入校验:对菜单编号、景点编号、路径长度等进行基础检查

技术要点

项目 说明
开发语言 C
图类型 无向带权图
存储结构 邻接矩阵
最短路径算法 Dijkstra
数据文件 graph.txt
最大景点数 20,定义于 MaxVex

编译与运行

环境要求

  • GCC、MinGW-w64 或其他 C 语言编译器
  • 支持中文显示的终端环境
  • 运行时需保证 graph.txt 与可执行文件位于同一工作目录

Windows

gcc Graph_search.c -o Graph_search.exe
.\Graph_search.exe

Linux / macOS

gcc Graph_search.c -o Graph_search
./Graph_search

使用说明

程序启动后会显示如下菜单:

********校园导游系统********
1.查询景点信息
2.问路查询
3.增加一个景点及其相关信息
4.修改一个景点的相关信息
5.增加一条新的路径
6.退出
请选择需要的服务: (1-6)

常见使用流程:

  1. 选择 1,输入景点编号,查看景点名称和简介。
  2. 选择 2,依次输入当前位置和目的地编号,系统输出最短路径和最短距离。
  3. 选择 3,输入新景点名称和简介,新增景点信息。
  4. 选择 4,输入景点编号,并更新该景点的名称和简介。
  5. 选择 5,输入两个景点编号和路径长度,新增一条双向路径。
  6. 选择 6,退出系统。

最短路径查询

问路查询功能以用户选择的起点为源点,调用 ShortestPath_DIJ 计算该点到其他所有景点的最短距离,并通过 path 数组回溯得到到达目标景点的路径。

该实现基于邻接矩阵,适合景点数量较少、边权非负的校园导游场景。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages