公交线路模拟查询系统
项目简介
这是一个用C语言编写的公交线路模拟查询系统,实现了公交线路查询、换乘方案查询和最短路径计算等功能。
功能特性
- 预设5条公交线路:包含火车站、汽车站、市政府、人民广场等站点
- 换乘方案查询:输入起点和终点,显示直达线路和换乘方案
- 最短路径计算:使用Dijkstra算法计算站点最少的乘车路线
- 线路信息查看:显示所有公交线路和站点信息
系统要求
- Windows 10/11
- GCC编译器
编译和运行
编译程序
bash
gcc -o bus_system bus_system.c
运行程序
bash
./bus_system
带警告信息的编译(推荐)
bash
gcc -Wall -o bus_system bus_system.c
使用说明
主菜单选项
- 查看所有公交线路 - 显示所有5条公交线路的详细信息
- 查看所有站点 - 显示系统中所有站点的列表
- 查询换乘方案 - 输入起点和终点,查询直达和换乘方案
- 查询最短路径 - 输入起点和终点,计算最短乘车路线
- 退出系统 - 退出程序
预设的公交线路
1路公交(8站)
火车站 → 市政府 → 人民广场 → 商业街 → 医院 → 学校 → 公园 → 机场
2路公交(7站)
汽车站 → 市政府 → 图书馆 → 博物馆 → 体育场 → 学校 → 购物中心
3路公交(6站)
火车站 → 汽车站 → 图书馆 → 商业街 → 体育场 → 购物中心
4路公交(8站)
机场 → 公园 → 医院 → 博物馆 → 图书馆 → 体育场 → 购物中心 → 汽车站
5路公交(7站)
火车站 → 人民广场 → 图书馆 → 博物馆 → 体育场 → 购物中心 → 机场
示例查询
- 起点 :火车站,终点:购物中心
- 起点 :汽车站,终点:机场
- 起点 :市政府,终点:医院
技术实现
数据结构
- Station结构体:存储站点信息(名称、ID)
- BusLine结构体:存储公交线路信息(线路ID、名称、站点数组、站点数量)
- 邻接矩阵:存储站点间的连接关系
算法
- Dijkstra最短路径算法:计算站点最少的乘车路线
- 换乘方案算法:查找直达线路和需要换乘的线路组合
知识点
- 二维数组的使用
- 结构体数组
- 字符串处理
- 图论算法(简化版)
- 文件I/O和用户交互
注意事项
- 站点名称输入时请使用中文
- 系统区分大小写
- 如果找不到路径,系统会提示"无法找到从起点到终点的路径"
- 程序支持循环线路和复杂换乘情况
扩展功能建议
- 添加更多公交线路
- 实现多换乘方案
- 添加站点间距离计算
- 实现图形化界面
- 添加数据库支持
