99网
您的当前位置:首页大数据结构全国交通模拟系统

大数据结构全国交通模拟系统

来源:99网
实用文档

标准文案

国交通模拟系统课程设计报告

姓名: 唐文龙 班级: 2班 学号: 411417080216 学院: 华信学院 专业: 计算机科学与技术 指导:

日期:2013.06.20

实用文档

目录

1 需求分析 ............................................... 1 1.1 概述 .............................................. 1 1.2 数据需求 .......................................... 1 1.3 功能性需求 ........................................ 1 1.4 其他需求 .......................................... 1 2 概要设计 ............................................... 2 3 详细设计 ............................................... 4 3.1 记录的定义 ........................................ 4 3.2 子程序说明 ........................................ 5 3.3 子程序的算法说明 .................................. 5 3.3.1主函数流程图 ................................................. 6 4 系统实现 ............................................... 7 4.1开发环境 .......................................... 8 4.2运行界面 .......................................... 9 4.3测试用例 ......................................... 10 5 总 结 ................................................. 11 6.参 考 文 献 ........................................... 11 附

序............................................................................

.............................................11

标准文案

实用文档

1 需求分析

出于不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则期望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个全国城市间的交通咨询程序,为旅客提供两种或三种最优决策的交通咨询。

1.1 概述

程序的功能包括: 提供对城市信息的编辑, 提供列车时刻表和飞机航 班表的编辑,提供两种最优决策:最快到达、最省钱到达。

1.2 数据需求

输入列 车或飞机编号时需输入一个整型数据; 输入列车或飞机的费用时需输入一个实型数据;输入列车或飞机开始时间和到达时间时均需输入两个整型数据;在选择功能时,应输入与所选功能对应的一个整型数据。

1.3 功能性需求

总体功能描述

(1) 提供对城市信息进行编辑的功能。 (2) 城市之间有两种交通工具:火车和飞机。提供对列车时刻表和飞机航班进行编辑的功能。 (3) 提供两种最优决策 : 最快到达或最省钱到达。全程只考虑一种交通工具,不考虑回程;(4) 旅途中耗费的总时间应该包括中转站的等候时间。

(5) 咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原 则和交通工具 , 输出信息 : 最快需要多长时间才能到达或者最少需要多少旅费才能到达。

1.4 其他需求

(1)具有可靠性,可用性。

标准文案

实用文档

(2)简单,便捷。 (3)清晰,易懂。

2 概要设计

采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。划分出来的模块相对但又相关,且容易理解。

图1 模块1

标准文案

实用文档

(1) 数据存储。城市信息、交通信息存储于磁盘文件。

(2) 数据的逻辑结构。根据设计任务的描述,其城市之间的旅游交通问题是典型的图结构,可看作为有向图,图的顶点是城市,边是城市之间所耗费的时间或旅费。

标准文案

图2.模块2

实用文档

(3) 数据的存储结构。这里建议采用邻接表作为数据的存储结构。 (4) 用不同的功能模块对城市信息和交通信息进行编辑。 (5) 最优决策功能模块。

① 读入城市信息和交通信息,用邻接表生成含权网络,表头数组中的元素存放城市名及对方城市到达该元素所代表城市的所有信息;表头数组中的元素所对应的单链表存放与该元素所代表的城市有交通联系的城市。

② 根据具体最优决策的要求,用Dijkstra算法求出出发城市到其它各城市的最优值,搜索过程中所经过城市的局部最优信息都保存在邻接表的表头数组中。其目的城市所代表的元素中就保存了所需的最优决策结果。

③ 输出结果。从目的城市出发,搜索到出发城市,所经过的城市均入栈,再逐一出栈栈中的城市,输出保存在表头数组中对应城市的信息及最终结果。即最终所需的最快需要多长时间才能到达及旅费,或者最少需要多少旅费才能到达及时间。 (6) 主程序可以有系统界面、菜单;在程序运行过程中可以反复操作。

3 详细设计

3.1 结构体的定义

本程序运用了关于图这种数据结构。

他的抽象数据类型定义如下: typedef struct unDiGraph {

int numVerts; //结点 costAdj cost; //邻接矩阵 }unDiGraph,*UNG; 基本操作:

unDiGraph* CreateCostG() 操作结果:构造带权(费用)图。 unDiGraph* CreateTimeG() 操作结果:构造带权(时间)图。

PathMat *Floyed(unDiGraph *D)

操作结果:Floyed函数 求任意两点的最短路径。

标准文案

实用文档

3.2基本操作

typedef struct unDiGraph {

int numVerts; //结点 costAdj cost; //邻接矩阵

}unDiGraph,*UNG; //图的定义

costAdj B,L;

void pr(int i)//选择城市 void pri()//输出城市 unDiGraph *CreateCostG()

操作结果:构造带权(费用)图 返回首地址G: unDiGraph *CreateTimeG()

操作结果:构造带权(时间)图 返回首地址G: unDiGraph *CreateFlyG() 操作结果:飞机的相关信息

void Floyed(unDiGraph *D,unDiGraph *M) 操作要求:图G存在

操作结果:Floyed函数 求任意两点的最短路径 void prn_pass(int i,int j) /

基本操作:为了求从i到j的最短路径,只需要调用如下的过程 void time()

操作结果:求最少时间路径。。 void money()

操作结果:求最少花费路径 void administrator() 操作结果:管理员功能

void main()//main函数

3.3 算法说明

利用Floyed函数求带权图两点之间的最短路径。通过对带权费用图和带权时间图求最短路径,就可以最短道从一城市到另一城市之间最省时间和最省费用的走法

3.3.1主函数流程图

标准文案

实用文档

图3.主函数流程图

3.3.2 pri函数流程图

标准文案

实用文档

图4 pri函数流程图 3.3.3 增加城市流程图

标准文案

实用文档

图5 增加城市函数流程图

4 系统实现

本节介绍了系统实现的开发环境,包括硬件环境,软件环境,以及运行界面展示。最后显示了该系统实现后每个功能的实现结果

标准文案

实用文档

4.1开发环境

1.硬件环境

电脑型号: 组装机. 处理器: Pentium G630 2.7GHz 主板: 技嘉H61m—ds2 内存: 4G

显卡: HD Graphics Family 2.软件环境

操作系统:Windows XP.

开发软件:Microsoft Visual C++ 6.0. 4.2运行界面

图6 主菜单界面

图7 查看城市

标准文案

实用文档

图8 石家庄到北京火车

图9 石家庄到北京飞机

图10 管理员界面

图11 飞机花费编辑

4.3测试用例

时间的最少花费和最短时间的铁路乘车路线。

例如:在最短时间路线选择时,如果输入11(北京)和8(广州),系统就会自动给出最短路径为:北京 郑州 武汉 株洲 广州。 当输入出错时,系统会提示出错信息,并返回输入窗口让用户重新输入。

标准文案

实用文档

5. 总 结

.构造带权图CreateFlyG CreateCostG和CreateTimeG:T(MAX)=O((MAX)2)通过实习让我了解到任何事情只有努力之后才能完成的更好。

6.参 考 文 献

[1] 许卓群等,《数据结构》,高等教育出版社,2000年

[2] 刘坤起.张有华.数据结构题型.题集.题解[M].科学出版社 2005

年11月

附录.源程序

#include

#include #include #include #include #include

#define INF 65535 //定义一个最大数定为无穷值 #define MAX 23

static int c_number=14; static int k=0;

static int v=0,z=0,r=0,t=0; typedef struct zhu {

int c_cost; int c_time; int f_cost; int f_time; }zhu;

zhu m[20],x[20],n[20];

typedef int costAdj[MAX+1][MAX+1];//图邻接矩阵从1开始记数 int Path[MAX+1][MAX+1];//图邻接矩阵从1开始记数 typedef struct unDiGraph {

int numVerts; //结点

costAdj cost; //邻接矩阵

标准文案

实用文档

}unDiGraph,*UNG; //图的定义 typedef struct c_edit {

char a[10]; }c_edit;

c_edit add[10]; costAdj B,L;

int pr(int i,int j) {

int h=0; if (j==0) {

h=i; }

else if (j==1) {

cin>>add[i].a; }

switch(h)//运用switch语句。 {

case(0):cout<<\"\"; break;

case(1) : cout<<\"成都 \"; break;

case(2) : cout<<\"西安 \"; break;

case(3) : cout<<\"郑州 \"; break;

case(4) : cout<<\"武汉 \"; break;

case(5) : cout<<\"株洲 \"; break;

case(6) : cout<<\"贵阳 \"; break;

case(7) : cout<<\"柳州 \"; break;

case(8) : cout<<\"广州 \"; break;

case(9) : cout<<\"南宁 \"; break;

case(10) : cout<<\"徐州 \"; break;

标准文案

实用文档

case(11) : cout<<\"北京 \"; break;

case(12) : cout<<\"天津 \"; break;

case(13) : cout<<\"上海 \"; break;

case(14) : cout<<\"石家庄 \"; break; default:

cout<return 1; }

//输出城市列表及相应代码

void pri() {

int i;

cout<<\" 城市及其代码\"<cout<<\" *********************************************************\"<cout<cout<*********************************************************\"<//构造带权(费用)图 返回首地址G:

unDiGraph *CreateCostG(int o)//火车的花费的存贮和编辑功能 {

unDiGraph *G; int i,j;

int a=0,b=0,f,h=1;

if(!(G=(unDiGraph *)malloc(sizeof(unDiGraph)))) //为G分配存储空间。

标准文案

实用文档

{

return(NULL); }

for(i=1;ifor(j=1;jG->cost[i][j]=INF; //初始化使G->cost[i][j]为无穷。 } }

G->numVerts=c_number;

G->cost[1][6]=G->cost[6][1]=96; G->cost[1][2]=G->cost[2][1]=84; G->cost[2][3]=G->cost[3][2]=51; G->cost[3][4]=G->cost[4][3]=53; G->cost[4][5]=G->cost[5][4]=40; G->cost[5][6]=G->cost[6][5]=90; G->cost[5][8]=G->cost[8][5]=67; G->cost[5][7]=G->cost[7][5]=67; G->cost[6][7]=G->cost[7][6]=60; G->cost[7][9]=G->cost[9][7]=25; G->cost[3][11]=G->cost[11][3]=69; G->cost[11][12]=G->cost[12][11]=13; G->cost[12][10]=G->cost[10][12]=67; G->cost[3][10]=G->cost[10][3]=34; G->cost[13][10]=G->cost[10][13]=65; G->cost[13][5]=G->cost[5][13]=118; G->cost[14][11]=G->cost[11][14]=43; G->cost[14][2]=G->cost[2][14]=110; G->cost[14][3]=G->cost[3][14]=60;

if (o) {

while(h==1) {

v=v+1; pri();

cout<<\"火车花费编辑\"<cout<<\"请输入开始城市的代码\"<>a;

cout<<\"请输入结尾城市的代码\"<>b;

cout<<\"请输入你的两地花费\"<标准文案

实用文档

cin>>m[v].c_cost; n[v].c_cost=a; x[v].c_cost=b;

cout<<\"请选择\"<cout<<\"*********************************************************\"<cout<<\"*********************************************************\"<>h;

switch(h) { case 1: h=1; break; case 0: h=0; break; default:{

cout<<\"选择出错\"<f=v+1;

while (v--) {

G->cost[n[v].c_cost][x[v].c_cost]=m[v].c_cost; } v=f;

return(G); }

//构造带权(时间)图 返回首地址G:

unDiGraph *CreateTimeG(int o)//火车的时间的存贮和编辑功能 {

unDiGraph *G;

标准文案

实用文档

int i,j;

int a=0,b=0,f,h=1;

if(!(G=(unDiGraph *)malloc(sizeof(unDiGraph)))) //为G分配存储空间。 {

return(NULL); }

for(i=1;ifor(j=1;jG->cost[i][j]=INF;//初始化使G->cost[i][j]为无穷。 } }

G->numVerts=c_number;

G->cost[1][6]=G->cost[6][1]=9; G->cost[1][2]=G->cost[2][1]=8; G->cost[2][3]=G->cost[3][2]=5; G->cost[3][4]=G->cost[4][3]=5; G->cost[4][5]=G->cost[5][4]=4; G->cost[5][6]=G->cost[6][5]=9; G->cost[5][7]=G->cost[7][5]=6; G->cost[5][8]=G->cost[8][5]=6; G->cost[6][7]=G->cost[7][6]=6; G->cost[7][9]=G->cost[9][7]=2; G->cost[3][11]=G->cost[11][3]=6; G->cost[11][12]=G->cost[12][11]=1; G->cost[12][10]=G->cost[10][12]=6; G->cost[3][10]=G->cost[10][3]=3; G->cost[13][10]=G->cost[10][13]=6; G->cost[13][5]=G->cost[5][13]=11; G->cost[14][11]=G->cost[11][14]=3; G->cost[14][2]=G->cost[2][14]=7; G->cost[14][3]=G->cost[3][14]=3;

if (o) { while(h==1) {

z=z+1; pri();

cout<<\"火车时间编辑\"<cout<<\"请输入开始城市的代码\"<>a;

cout<<\"请输入结尾城市的代码\"<标准文案

实用文档

cin>>b;

cout<<\"请输入你的两地时间\"<>m[z].c_time; n[z].c_time=a; x[z].c_time=b;

cout<<\"请选择\"<cout<<\"*********************************************************\"<cout<<\"*********************************************************\"<>h;

switch(h) { case 1: h=1; break; case 0: h=0; break; default:{

cout<<\"选择出错\"<f=z+1;

while (z--) {

G->cost[n[z].c_time][x[z].c_time]=m[z].c_time; } z=f;

return(G); }

unDiGraph *CreateTimeF(int o)//飞机的时间的存贮和编辑功能 {

unDiGraph *G; int i,j;

标准文案

实用文档

int a=0,b=0,f,h=1;

if(!(G=(unDiGraph *)malloc(sizeof(unDiGraph)))) //为G分配存储空间。 {

return(NULL); }

for(i=1;ifor(j=1;jG->cost[i][j]=INF;//初始化使G->cost[i][j]为无穷。 } }

G->numVerts=c_number;

G->cost[1][6]=G->cost[6][1]=3; G->cost[1][2]=G->cost[2][1]=2; G->cost[2][3]=G->cost[3][2]=1; G->cost[3][4]=G->cost[4][3]=2; G->cost[4][5]=G->cost[5][4]=4; G->cost[5][6]=G->cost[6][5]=3; G->cost[5][7]=G->cost[7][5]=6; G->cost[5][8]=G->cost[8][5]=6; G->cost[6][7]=G->cost[7][6]=6; G->cost[7][9]=G->cost[9][7]=2; G->cost[3][11]=G->cost[11][3]=6; G->cost[11][12]=G->cost[12][11]=1; G->cost[12][10]=G->cost[10][12]=2; G->cost[3][10]=G->cost[10][3]=3; G->cost[13][10]=G->cost[10][13]=6; G->cost[13][5]=G->cost[5][13]=4; G->cost[14][11]=G->cost[11][14]=1; G->cost[14][2]=G->cost[2][14]=3; G->cost[14][3]=G->cost[3][14]=1;

if (o) { while(h==1) {

t=t+1; pri();

cout<<\"飞机时间编辑\"<cout<<\"请输入开始城市的代码\"<>a;

cout<<\"请输入结尾城市的代码\"<标准文案

实用文档

cin>>b;

cout<<\"请输入你的两地时间\"<>m[t].f_time; n[t].f_time=a; x[t].f_time=b;

cout<<\"请选择\"<cout<<\"*********************************************************\"<cout<<\"*********************************************************\"<>h;

switch(h) { case 1: h=1; break; case 0: h=0; break; default:{

cout<<\"选择出错\"<f=t+1;

while (t--) {

G->cost[n[t].f_time][x[t].f_time]=m[t].f_time; } t=f;

return(G); }

unDiGraph *CreateCostF(int o)//飞机花费的存贮和编辑功能 {

标准文案

实用文档

unDiGraph *G; int i,j;

int a=0,b=0,f,h=1;

if(!(G=(unDiGraph *)malloc(sizeof(unDiGraph)))) //为G分配存储空间。 {

return(NULL); }

for(i=1;ifor(j=1;jG->cost[i][j]=INF; //初始化使G->cost[i][j]为无穷。 } }

G->numVerts=c_number;

G->cost[1][6]=G->cost[6][1]=960; G->cost[1][2]=G->cost[2][1]=840; G->cost[2][3]=G->cost[3][2]=501; G->cost[3][4]=G->cost[4][3]=530; G->cost[4][5]=G->cost[5][4]=400; G->cost[5][6]=G->cost[6][5]=900; G->cost[5][8]=G->cost[8][5]=670; G->cost[5][7]=G->cost[7][5]=670; G->cost[6][7]=G->cost[7][6]=600; G->cost[7][9]=G->cost[9][7]=200; G->cost[3][11]=G->cost[11][3]=690; G->cost[11][12]=G->cost[12][11]=310; G->cost[12][10]=G->cost[10][12]=670; G->cost[3][10]=G->cost[10][3]=340; G->cost[13][10]=G->cost[10][13]=650; G->cost[13][5]=G->cost[5][13]=1180; G->cost[14][11]=G->cost[11][14]=340; G->cost[14][2]=G->cost[2][14]=700; G->cost[14][3]=G->cost[3][14]=400;

标准文案

实用文档

if (o) {

while(h==1) {

r=r+1; pri();

cout<<\"飞机花费编辑\"<cout<<\"请输入开始城市的代码\"<>a;

cout<<\"请输入结尾城市的代码\"<>b;

cout<<\"请输入你的两地花费\"<>m[r].f_cost; n[r].f_cost=a; x[r].f_cost=b;

cout<<\"请选择\"<cout<<\"*********************************************************\"<cout<<\"*********************************************************\"<>h;

switch(h) { case 1: h=1; break; case 0: h=0; break; default:{

cout<<\"选择出错\"<f=r+1;

while (r--) {

标准文案

实用文档

G->cost[n[r].f_cost][x[r].f_cost]=m[r].f_cost; } r=f;

return(G); }

//Floyed函数 求任意两点的最短路径: void Floyed(unDiGraph *D,unDiGraph *M) {

int i,j,k,n; costAdj A,C; n=c_number;

for(i=1;i<=n;i++) {

for(j=1;j<=n;j++)

{A[i][j]=D->cost[i][j];//初始化矩阵A。 C[i][j]=M->cost[i][j];

Path[i][j]=-1; //初始化矩阵p, 置-1. } }

for(k=1;k<=n;k++) //k为逐步加入的中间结点 {

for(i=1;i<=n;i++) //i为A中行号 {

for(j=1;j<=n;j++)

if(A[i][k]+A[k][j]Path[i][j]=k;//若i经过k到j比i到j小,则令A[i][j]=A[i][k]+A[k][j]。

B[i][j]=A[i][j]; L[i][j]=C[i][j]; } else{

B[i][j]=A[i][j]; L[i][j]=C[i][j]; }

标准文案

实用文档

}

}//end-for

cout<<\"\\n最短路径为: \"<//为了求从i到j的最短路径,只需要调用如下的过程: void prn_pass(int i,int j) {

if(Path[i][j]!=-1) {

prn_pass(i,Path[i][j]);//输出最短路径经过的所有点 pr(Path[i][j],0); } }

//求最少时间路径。 void time() {

int Bcity,Ecity;//起始成市号码和终点城市号码 int l,h=1; do {

pri();//输出城市列表及相应代码。

cout<<\"请输入起始城市和目的城市的代码,中间以空格隔开,范围(1-- \"<>Bcity;

cin>>Ecity;//输入起始城市和终点城市的代码。 if

(!((0cout<<\"\\n出错啦!!! 输入城市号码请在1-\"<Floyed(CreateTimeG(0),CreateCostG(0));//调用Floyed函数。 pr(Bcity,0);// 显示起始城市。

prn_pass(Bcity,Ecity);//调用prn_pass函数,显示最短路径经过的城市。

pr(Ecity,0);//显示终点城市。

if (B[Bcity][Ecity]>5000||L[Bcity][Ecity]>10000) {

标准文案

实用文档

cout<<\"两地间还没有线路通过\"<cout<<\"火车花的钱是\"<cout<<\"火车花的时间是\"<printf(\"\\n\\n 1.继续最少花费查找\\n 2.返回主菜单\\n 清选择...\"); scanf(\"%d\输入1或2选择是否继续。 h=l;

} while(h==1); printf(\"\\n\"); }

void f_time() {

int Bcity,Ecity;//起始成市号码和终点城市号码 int l,h=1; do {

pri();//输出城市列表及相应代码。

cout<<\"请输入起始城市和目的城市的代码,中间以空格隔开,范围(1-- \"<>Bcity;

cin>>Ecity;//输入起始城市和终点城市的代码。 if

(!((0cout<<\"\\n出错啦!!! \"<Floyed(CreateTimeF(0),CreateCostF(0));//调用Floyed函数。 pr(Bcity,0);// 显示起始城市。

prn_pass(Bcity,Ecity);//调用prn_pass函数,显示最短路径经过的城市。

pr(Ecity,0);//显示终点城市。

if (B[Bcity][Ecity]>5000||L[Bcity][Ecity]>10000) { cout<<\"两地间还没有线路通过\"<cout<<\"飞机花的钱是\"<cout<<\"飞机花的时间是\"<标准文案

实用文档

}

printf(\"\\n\\n 1.继续最少花费查找\\n 2.返回主菜单\\n 清选择...\"); scanf(\"%d\输入1或2选择是否继续。 h=l;

} while(h==1); printf(\"\\n\"); }

//求最少花费路径。 void money()

{ int Bcity,Ecity;//起始成市号码和终点城市号码 char l,h=1;

/*unDiGraph *G;*/ do {

pri();//输出城市列表及相应代码。 cout<<\"请输入起始城市和目的城市的代码,中间以空格隔开,范围(1-- \"<>Bcity;

cin>>Ecity;//输入起始城市和终点城市的代码。 if

(!((0cout<<\"\\n出错啦!!! \"<Floyed(CreateCostG(0),CreateTimeG(0));//调用Floyed函数。 pr(Bcity,0);//显示起始城市。

prn_pass(Bcity,Ecity);//调用prn_pass函数,显示最短路径经过的城市。 pr(Ecity,0);//显示终点城市。

if (B[Bcity][Ecity]>5000||L[Bcity][Ecity]>10000) { cout<<\"两地间还没有线路通过\"<cout<<\"火车花的钱是\"<printf(\"\\n\\n 1.继续最少花费查找\\n 2.返回主菜单\\n 清选择...\"); scanf(\"%d\输入1或2选择是否继续。 h=l;

} while(h==1); printf(\"\\n\");

标准文案

实用文档

}

//求飞机的情况

void f_money() {

cout<<\"1\"<int Bcity,Ecity;//起始成市号码和终点城市号码 char l,h=1;

/*unDiGraph *G;*/ do {

cout<<\"2\"<pri();//输出城市列表及相应代码。

cout<<\"请输入起始城市和目的城市的代码,中间以空格隔开,范围(1-- \"<cin>>Bcity;

cin>>Ecity;//输入起始城市和终点城市的代码。 if

(!((0cout<<\"\\n出错啦!!! \"<Floyed(CreateCostF(0),CreateTimeF(0));//调用Floyed函数。 pr(Bcity,0);//显示起始城市。

prn_pass(Bcity,Ecity);//调用prn_pass函数,显示最短路径经过的城市。 pr(Ecity,0);//显示终点城市。

if (B[Bcity][Ecity]>5000||L[Bcity][Ecity]>10000) { cout<<\"两地间还没有线路通过\"<else{

cout<<\"飞机花的钱是\"<printf(\"\\n\\n 1.继续最少花费查找\\n 2.返回主菜单\\n 清选择...\"); scanf(\"%d\输入1或2选择是否继续。 h=l;

} while(h==1); printf(\"\\n\");

标准文案

实用文档

}

void add_city()//对城市的增加 {

static int i=1; int j;

cout<<\"请输入你要增加的城市的个数\"<>j;

for (i=1;i<=j;i++) {

cout<<\"请输入你要增加的城市名\"<c_number=c_number+1; }

cout<<\"城市增加完毕\"<void chose_money()//花最少钱的算法 {

int h;

cout<<\"1:火车\"<>h;

if (h==1) { money(); } else {

f_money(); } }

void chose_time()//花最少时间的算法 {

int h;

cout<<\"1:火车\"<>h;

if (h==1) { time(); } else {

标准文案

实用文档

f_time(); } }

void edit_line()//增加编辑火车的费用 {

CreateCostG(1); }

void edit_hour()//增加编辑火车的时间 {

CreateTimeG(1); }

void edit_fline()//增加编辑飞机的费用 {

CreateCostF(1); }

void edit_fhour()//增加编辑飞机的时间 {

CreateTimeF(1); }

void administrator()//管理员功能 {

int h=1; while (h) {

cout<<\"************************************************************\"<cout<<\"1:增加城市\"<cout<<\"2:添加或编辑火车费用\"<cout<<\"************************************************************\"<cout<<\"请选择\"<>h;

switch(h) {

case 1 :add_city(); break;

case 2: edit_line(); break;

case 3:edit_hour(); break;

case 4:edit_fline(); break;

标准文案

实用文档

case 5:edit_fhour(); break; case 0: h=0; break; default: {

cout<<\"选择出错!\"<//主函数 void main() {

//人机对话界面设置,输入选项,再输入你的起始成市号码和终点城市号码 ,你将被给出你所要的

//最短时间或最消费用的最佳路径的城市号码 对照即可得出经过哪些城市 char n; int x;

while(x!=0) {

cout<cout<<\"输入你希望查询的种类代码,你将得到最佳方案!\"<cout<<\" ******全国交通咨询模拟系统******* \"<cout<<\" * 0.退出程序 *\"<cout<<\"请选择(0—4)..... \";//输入选择菜单。 cin>>n ;

switch(n)//当输入为0-4,则用switch语句进行选择。 {

case '1': pri();//查看城市 break;

case '2' : chose_time(); //当输入为2,则调用time函数。 break;

case '3' : chose_money();//当输入为3,则调用money函数。

标准文案

实用文档

break;

case '4':administrator(); break;

case '0'://当输入为0。则确认退出。 x=0; break;

default : {

cout<}//end-Switch } }

标准文案

输入

因篇幅问题不能全部显示,请点此查看更多更全内容