公交线路管理系统剖析

上传人:壹****1 文档编号:431073978 上传时间:2023-06-13 格式:DOCX 页数:39 大小:62.47KB
返回 下载 相关 举报
公交线路管理系统剖析_第1页
第1页 / 共39页
公交线路管理系统剖析_第2页
第2页 / 共39页
公交线路管理系统剖析_第3页
第3页 / 共39页
公交线路管理系统剖析_第4页
第4页 / 共39页
公交线路管理系统剖析_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《公交线路管理系统剖析》由会员分享,可在线阅读,更多相关《公交线路管理系统剖析(39页珍藏版)》请在金锄头文库上搜索。

1、箍湖炼牛麹酣哗 狡laMH诫锥前蜓肝璋的” *法 琴 14丰一锥 加“淳 颗最加燃言” 普*、箍耳画” 20152016蜓帝|蜓渣设计题目:公交线路管理系统一、实习目的通过学习,了解并初步掌握设计、实现较大系统的完整过程,包括系统分析、编码设计、 编码集成以及调试分析,熟练掌握数据结构的选择、设计、实现、以及操作方法,为进一步 的开发应用打好基础。二、问题描述实现功能:文件初始化交通图、公共汽车路线、城市站点信息;管理员和乘客登录;系统介绍使用 说明;判断输入量路径间是否存在直接到达路径,此函数为录入交通线和添加删除路线中的 辅助判断函数邻接表和邻接矩阵的互化,删除和添加路线,增设交通运行路线

2、,查找公交车 运营路线,查找任意两个城市之间是否有路径,若有则将最短路径输出,操作结束后检测文 件是否被修改,若被更改则自动保存;功能分配:三、需求分析该程序所做的工作是对公交车运行线路及城市交通网络的管理,首先城市交通信息应用 文件形式进行保存,在运行开始前用文件对城市中城市交通图初始化;结束时用文件对程序 各项数据信息进行保存。本程序面向乘客和管理员,故在开始时设计登录界面,只有输入密码获得管理员权限才 可以使用本程序中设计的,增加路线,删除路线,和保存功能;普通乘客只能使用两类信息 查询功能,公交路线查询和路径查询。本程序遵循由路必有车走、有车走必有路的原则设计城市路线和交通网络。四、概

3、要设计#define MaxC 20/最多容纳20站点#define Limit 10000/以10000千米代表两城市之间无站点#define Administrator 1/管理员标志#define Passenger 0/乘客身份标志using namespace std;typedef unsigned int NO_TYPE;/*定义城市类型包含城市编号和城市名称*/typedef struct NO_TYPE no_city;/城市编号string city_name;/城市名称CityType;/*定义邻接边类型*/typedef struct Road /城市节点类型NO_TY

4、PE adjcity;/该边终点城市编号struct Road *NextCity;/顶点城市下一条邻边float Road_length;/路径长度RoadNode;/*定义邻接表表头节点*/typedef struct CityType data;/城市节点信息RoadNode *firstcity;/此城市可通向的第一个城市CitiesNode;/*定义车辆类型*/typedef struct string No_Bus;/车辆编号NO_TYPE num_Cities;/所经过城市的数目NO_TYPE WayMaxC;/所经过路线以城市编号表示BusType;/*定义文件修改标志*/en

5、um Change Yes,No;/*定义城市交通图类*/class TGraph vector CList;/交通图邻接表类型NO_TYPE num_of_city;/城市数量(City)vector Bus_info;/车辆信息short User_id ;/用户身份标志Change m ;/交通图修改标志public:TGraph ();/*文件初始化在运行开始时形成一张邻接表*/bool Init_Graph ( );/初始化交通图/*为简便程序设计和保存方便故设计转化函数让程序中对交通图处理更加灵活*/bool MattoList (float mapMaxC);/转化邻接矩阵voi

6、d ListtoMat (float mapMaxC);/邻接表转化为邻接矩阵void Find_info ();/查询/*采用狄克斯特拉算法求一节点到另一节点最短路径*/void Find_way (string , string);/查询直接路径/*设计用于跟新线路信息、*/void Updata (NO_TYPE , NO_TYPE);/更新/*在两个站点之间插入新路线*/void Insert_rode (NO_TYPE , NO_TYPE);/judge_rode/*判断两城市是否是已有城市*/bool Judge_city (string , string);/*增加路线*/voi

7、d Add_road ();/添加路线/*判断两城市之间有无直接路径*/bool Judge_road (NO_TYPE , NO_TYPE);bool Delete ();/删除操作/*删除添加操作都应调用此函数进行线路同步修改*/void Bus_mend (BusType*);/修 改公交路线void Save ();/存入文件中/*最后将申请的空间都释放*/void Clean ();/释放申请的空间void Display ();/输出当前交通网络bool Land ();/管理员/用户登录;void Mainmenu (TGraph &G , int &k);/主 菜单函数void

8、 Introduced ();/系统使用说明与登录函数一起使用五、详细设计#include decl.h”float mapMaxCMaxC;/使最短路径查询简化/ / /个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个/TGraph:TGraph ()if (!Init_Graph ()cout初始化失败! endl;/*初 始化函数 */bool TGraph:Init_Graph ()int i,j,n;ifstream input;input.open(City.txt);/打开城市文件if (!input)/文件打开

9、出错cerr文件City.txt打开错误! num_of_city;/文件初始化城市基本信息for (i = 0 ; i c.data.no_city c.data.city_name c.firstcity = NULL;CList.push_back(c);/将初始化好的加入向量中input.close();/解绑文件input.clear();/清理输入流已备后用input.open (Bus.txt);if (!input)cerr文件Bus.txt打开错误! b.No_Bus b.num_Cities ;n = b.num_Cities ;/经过城市数量for (i = 0 ; i

10、b.Wayi;Bus_info.push_back (b);input.close ();input.clear();/float mapMaxCMaxC;/接收从文件中读取到的信息 input.open (Map.txt);if (!input)cerr文件Map.txt打开错误endl;return false;for (i=0 ; inum_of_city; i+)/文 件初始化邻接表for (j =0 ; jmapij;/读取文件内容MattoList (map);/将从文件中读取的内容转化为邻接表input.close();/解绑文件return true;/*将文件中读取到的数据转

11、化为临接 表*/bool TGraph:MattoList (float mapMaxC)int i, j;RoadNode *r1 = 0;vector :iterator it_c = CList.begin();for (i = 0; i num_of_city&it_c != CList.end (); it_c+,i+)for (j = 0; j Road_length = mapij;r1-adjcity = j + 1;r1-NextCity = (*it_c).firstcity ;(*it_c).firstcity = r1;return true;/*查询两个城市之间有无路

12、径*/void TGraph:Find info ( )string c1 , c2;cout c1;cout c2;Find_way (c1, c2);早/个个个个个个个个个个个个个个个个个个个个个个个个个匕I IX止什4.个个个个个个个个个个个个个个个个个个个个个个个个个/ void TGraph:Find_way (string Begin, string End)float distMaxC;NO_TYPE pathMaxC;NO_TYPE visitedMaxC;float mindis;int i,j,u,k,d;NO_TYPE n_b, n_e;NO_TYPE apathMaxC;vector:iterator it_c = CList.begin ();while (it_c != CList.end()/获取城市对应编号if (*it_c).data.city_name = Begin)n_b = (*it_c).data.no_city ;if (*it_c).data.city_name = End)n_e = (*it_c).data.no_ci

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号