交通咨询程设计(含源代码可以运行).doc
- 文档编号:1650253
- 上传时间:2022-10-23
- 格式:DOC
- 页数:27
- 大小:783.50KB
交通咨询程设计(含源代码可以运行).doc
《交通咨询程设计(含源代码可以运行).doc》由会员分享,可在线阅读,更多相关《交通咨询程设计(含源代码可以运行).doc(27页珍藏版)》请在冰豆网上搜索。
目录
第一章需求分析 1
1.1题目分析 2
1.2实现方法 2
1.2.1图的实现和声明 2
1.2.2程序功能的实现 3
第二章系统功能模块设计 4
第三章流程图 5
第四章运行调试 6
第五章实验总结 9
第六章致谢 10
附录一 11
附录二 12
程序设计综合课程设计
交通咨询模拟
第一章需求分析
设计、实现一个全国大城市间的交通咨询程序,为旅客提供三种最优决策方案:
一是建立交通网络图的存储结构,二实现两个城市间的最短路经问题。
程序所具有的功能特色本程序主要目的是为了给用户提供路径咨询。
实现了帮助用户了解全国各大城市间往来的最短路径问题,第二,可以提供用户查询各大城市的相关信息。
本程序最大的特点是支持用户自己添加城市信息及城市,或添加城市的路径,既就有可扩展性。
该程序所做的工作的是模拟全国交通咨询,为旅客提供三种最优决策的交通咨询。
此程序规定:
(1)在程序中输入城市名称时,需输入10个字母以内的字母串;输入列车或飞机编号时需输入一个整型数据;输入列车或飞机的费用时需输入一个实型数据;输入列车或飞机开始时间和到达时间时均需输入两个整型数据(以hh:
mm的形式);在选择功能时,应输入与所选功能对应的一个整型数据。
(2)程序的输出信息主要是:
最快需要多少时间才能到达,或最少需要多少旅费才能到达,或最少需要多少次中转到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。
(3)程序的功能包括:
提供对城市信息的编辑,提供列车时刻表和飞机航班表的编辑,提供三种最优决策:
最快到达、最省钱到达、最少中转次数到达。
1.1题目分析
1.通过对题目的分析知,是要让我们能够通过利用所学的数据结构的基本知识和技能来解决程序设计问,因此在搞程序设计之前先好好的把书复习一遍,弄清楚各个知识之间的联系。
2.由题目的分析知全国交通咨询管理系统是有对城市信息的增加、删除、修改、保存、查询、有错时提示出错信息等功能,最后对数据进行保存并退出操作系统。
由此可知需要将函数模块化,将它做为一个独立的函数体去实现它的功能。
它可以分为四大功能模块,每个模块需要去各个击破。
其中可能用到C++语言的指针与链表,因此,要先去复习一下C++语言课本。
3.根据这些功能和基本要求,可充分运用我们所学的数据结构的基本知识和技能去逐步的解决。
其中将函数进行模块化。
在数据结构中,通过队列,栈,图的声明来实现系统的各种功能的存储各城市之间乘火车的消耗价格,时间,乘飞机的价格,时间,以及中转站最少。
利用指针和结点来实现城市与城市之间各种操作,而这些知识点都是我们学习数据结构必须掌握和学会运用的。
4.完成程序功能的设置后,应对程序进行调试,以便在调试中能及时地找出错误并加以更正,这样能使程序功能进一步的完善和正确。
这就要求我们在编程和调试过程中养成认真分析和善于发现问题并及时解决的习惯,不懂的及时问老师或者其他同学。
1.2实现方法
1.2.1图的实现和声明
(1)利用带权图,构建交通网络图
(2)根据题目要求,声明了一个图形的数据结构用来存储任意几个城市之间的各种信息,其中是把它们的TTime;TPrice;FTime;FPrice;的各种信息用邻接矩阵存储起来的。
同时运用构造函数,利用特定的值来构造对象。
(3)structCity图的结构,CreateCity建立邻接图,AddCity增加,DelCity删除,EditCity修改,ShortestPath最小路径,ShortestPath_DIJ求源点v0到各点的最短路径1火车时间最小,2火车金钱最小,3飞机时间最小,4飞机金钱最小,来实现的。
1.2.2程序功能的实现
(1)全国交通咨询信息录入和增加的实现
主要是对城市基本信息的输入,包括(乘火车的价格,乘火车的时间,乘飞机的价格,乘飞机的时间,中转站次数最少)在程序中只要用AddCity(输入函数)和ShortestPath(C);来实现。
(2)全国交通咨询信息显示的实现
主要为用户ShortestPath(C);函数显示城市之间的基本信息,包括上面录入的信息和增加的内容。
(3)全国交通咨询信息载入文件的实现
在程序中用LoadCity(C);break()函数来载入文件。
(4)全国交通咨询信息删除的实现
在程序中用DelCity(C)函数来实现对有错的信息进行删除。
(5)全国交通咨询信息修改的实现
在程序中用EditCity(C)(修改函数)来实现,而且可通过按编号或城市名来修改,当找不到要修改的内容时提示用户可能输入有误,重新在输一遍。
(6)全国交通咨询信息的重来
CreateCity(C);break重来,实现对错误的从新输入。
(7)全国交通咨询信息的保存
在程序中用SaveCity(C)保存函数来实现,并提示用户数据已保存。
(8)全国交通咨询信息的增加
ShowCityDat(C);break,case2:
AddCity(C);break增加。
第二章系统功能模块设计
该课题可以分为如下几个模块:
控制选择功能项的main函数、建立邻接图的CreateCity(City*C)函数、增加城市的AddCity(City*C)函数、删除城市的DelCity(City*C)函数、修改资料的EditCity(City*C)函数、求最小路径的ShortestPath(City*C)函数、求其他最值的ShortestPath_DIJ(City*C,intv0,intk)函数、载入文件资料的LoadCity(City*C)函数、保存资料的SaveCity(City*C)函数、显示城市之间关系数据的ShowCityName(City*C,intk)函数。
模块图如下:
图1-1
这个程序由三部分组成:
管理员:
这个模块包含了创建交通网跟增加城市两个,它是这个程序往下运行的前提。
用户:
这个模块的是属于用户的在创建好的交通网上选择自己的需求。
显示交通网:
这个模块是计算机的运算,运算出来的是用户想要的结果。
第三章流程图
图2系统流程图
开始运行程序,输入命令,进入各种不同的功能区,进行各自的功能,分别运行,然后输出结果。
结束后,如果退出就结束,不退出重复上面的功能。
第四章运行调试
登陆界面:
管理界面中有3大模块即我们说的三大功能
图3登陆界面
进入管理员模式进行城市交通网络的创建:
在这个模块中我们选择1创建城市数目是3分别为a、b、c.设ab间的路程是20,ac的潞城市30,bc的路程是40创建建通网络图。
26
图4管理员界面
这块是用户模式,在用户进入系统之后,进行查询:
在用户中我们输入1咨询两个城市间的信息再次选择1咨询最短的路程a到a,a到b的,a到c的。
在界面输入1的前提下分别输入2,3。
结果如下:
图5用户界面
图6交通信息系统界面
图7咨询信息界面
图8交通信息网的的结果
第五章实验总结
第六章致谢
附录一
[1]《数据结构C语言版》严蔚敏、吴伟民,清华大学出版社,2002
[2]《数据结构课程实验》徐孝凯,清华大学出版社,2002
[3]《数据结构程序设计题典》李春葆,清华大学出版社,2002
附录二
//////////**********************////////////
//////////交通咨询系统///////////
//////////////////////
/////////***********************////////////
///////////////////////
//邻接矩阵类
//#include
#ifndefADJMATRIX_H
#defineADJMATRIX_H
#include
#include
usingnamespacestd;
constintMaxValue=100;//最大值
structEdgeType{
intiDistance;//路程
intiCost;//费用
floatfTime;//所花费的时间
};
//城市结构体,包括城市名字以及城市在图中的编号
structCity{
intNumber;
char*Name;
};
//交通网络图,有iVexNum个城市,城市之间有iEdgNum条路线,每条路线上的时间路程费用为
//Route[MaxValue][MaxValue]
classAdjMatrix{
public:
//AdjMatrix();//图的初始化,构造函数
AdjMatrix(intn);
intGetVexNum();//取得交通图的城市个数
intGetEdgNum();//取得交通图的路线数目
char*GetCityName(constinti);//通过序号取得城市的名字
intGetCityNum(char*cityname);//通过城市名字取得城市的编号
//EdgeTypeGetRoute(constintv1,constintv2);
voidCheck(int&i,int&j);//检查输入的边的序号是否越界,若越界就重输
voidCreateGraph();//构造交通图
voidPrintGragh();//**************************供测试用
voidShowRouteLength();//向用户显示路程长度
voidShowRouteCost();//向用户显示路程车票
voidShowRouteTime();//向用户显示路程时间
voidDijkstra(intv,intdist[],intpath[]);//求一个源点到其他点的最短性质
voidDijkstraShortDistance();//一个城市到其他城市的最短距离
voidDijkstraLessTime();//一个城市到其他城市的最少时间
voidDijkstraLessCost();//一个城市到其他城市的最少花费
voidFloyd(intdist[MaxValue][MaxValue],intpath[MaxValue][MaxValue]);
//两个点之间的最短性质
voidFloydShortDistance();//两个城市之间的最段距离
voidFloydLessTime();//两个城市之间的最少时间
voidFloydLessCost();//两个城市之间的最少花费
private:
intiVexNum;//顶点数,即城市个数
intiEdgNum;//边数,即城市间的路线
Citycity[MaxValue];//图的顶点,即城市
EdgeTypeRoute[MaxValue][Max
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通 咨询 设计 源代码 可以 运行
![提示](https://static.bdocx.com/images/bang_tan.gif)