北京理工大学数据结构专题设计公交线路查询

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 21 页
{ unDiGraph *G; int i,j; int a=0,b=0,f,h=1; if(!(G=(unDiGraph *)malloc(sizeof(unDiGraph)))) return(NULL);
第 22 页
for(i=1;i<c_number+1;i++) { for(j=1;j<c_number+1;j++) {G->cost[i][j]=INF; //初始化使G->cost[i][j]为无穷 } }
cin>>m[z].c_time; n[z].c_time=a; x[z].c_time=b; cout<<"请选择"<<endl;
cout<<"1:继续更改站点时间"<<endl; cout<<"0:返回上一级菜单"<<endl; cin>>h; switch(h) { case 1: h=1;break;
第6页

cout<<endl<<endl<<endl<<endl<<endl; cout<<"请选择(0-4)..... ";//输入选择菜单 cin>>n ; switch(n) {


case '1' :pri();break; //查看站点 case '2' :chose_time(); break; //当输入为2,则调 用time函数
第 13 页
for(i=1;i<c_number+1;i++) { for(j=1;j<c_number+1;j++) { G->cost[i][j]=INF; //初始化使G->cost[i][j]为无穷 }
}
第 14 页
G->numVerts=c_number; G->cost[1][6]=G->cost[6][1]=9;

当一个用户从甲地到乙地时,由于不同需求, 就有不同的交通方式及不同的交通路线。有人 希望以最快速度到达,有人希望以最短距离到 达,有人希望用最少的费用等。交通方式有公 交车和地铁。编写一北京公交线路查询系统, 通过输入起始站、终点站,为用户提供三种或 以上决策的交通咨询。
第2页




a. 提供对交通线路进行编辑功能。要求可添加或删 除线路。 b. 提供两种交通工具,公交车和地铁,设定路程所 需要的时间、距离及费用等参数。 c. 提供多种决策:最短距离、最快到达、最少费用 和最少换乘次数等。 d. 中途不考虑等候、拥堵等消耗时间。 e. 该系统以人机对话方式进行。用户输入起始站终 点站及需求原则,系统输出乘车方案:乘什么车、 乘几路车、距离、时间、费用换乘方法等信息。
第9页
case(3) : cout<<"C ";break; case(4) : cout<<"D ";break; case(5) : cout<<"E ";break; case(6) : cout<<"F ";break; case(7) : cout<<"G ";break; case(8) : cout<<"H ";break; case(9) : cout<<"I ";break; case(10) : cout<<"G ";break; case(11) : cout<<"K ";break;
第 20 页
(五) unDiGraph *CreateTimeG(int o)函数 //公交的时间的存贮和编辑功能 { unDiGraph *G; int i,j; int a=0,b=0,f,h=1; if(!(G=(unDiGraph *)malloc(sizeof(unDiGraph)))) return(NULL);
第7页




case '3' :chose_money();break; //当输入为3,则 调用money函数 case '4' :administrator();break; case '0' :x=0;break; //当输入为0。则确认退出 default :cout<<endl<<"出错啦!!!请在0-4之间选 择!!"<<endl<<endl; } } }
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;
第 16 页
G->cost[12][10]=G->cost[10][12]=7; G->cost[3][10]=G->cost[10][3]=3; G->cost[13][10]=G->cost[10][13]=5; G->cost[13][5]=G->cost[5][13]=11; if (o) { while(h==1)
第 17 页
{ v=v+1; pri(); cout<<"公交花费编辑"<<endl;
cout<<"请输入开始站点的代码"<<endl; cin>>a; out<<"请输入结尾站点的代码"<<endl; cin>>b;
第 18 页
{ cout<<"请输入你的两地花费"<<endl; cin>>m[v].c_cost;
G->numVerts=c_number;
第 23 页
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;
n[v].c_cost=a; x[v].c_cost=b; cout<<"请选择"<<endl; cout<<"1:继续更改站点费用"<<endl; cout<<"0:返回上一级菜单"<<endl;
第 19 页
{ cin>>h; switch(h)
{
case 1: h=1;break; case 0: h=0;break; default:{cout<<"选择出错"<<endl;} } }
第 2; pri(); cout<<"公交时间编辑"<<endl;
cout<<"请输入开始站点的代码"<<endl; cin>>a; cout<<"请输入结尾站点的代码"<<endl; cin>>b; cout<<"请输入你的两地时间"<<endl;
第 26 页

第 12 页
(四) unDiGraph *CreateCostG(int o)函数 //公交的花费的存贮和编辑功能 {
unDiGraph *G; int i,j; int a=0,b=0,f,h=1; if(!(G=(unDiGraph *)malloc(sizeof(unDiGraph)))) return(NULL);
第 27 页
case 0: h=0;break; default: {cout<<"选择出错"<<endl;} }
}
} f=z+1; while (z--)
第 28 页
{G->cost[n[z].c_time][x[z].c_time]= m[z].c_time;}
z=f; return(G); }
第 15 页
G->cost[5][8]=G->cost[8][5]=6; G->cost[5][7]=G->cost[7][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;
第 32 页
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;
第 29 页
(六)、unDiGraph *CreateTimeF(int o) //地铁的时间的存贮和编辑功能 { unDiGraph *G; int i,j; int a=0,b=0,f,h=1; if(!(G=(unDiGraph *)malloc(sizeof(unDiGraph)))) return(NULL);
第5页





cout<<" 东京交通咨询模拟系统"<<endl; cout<<“ 主菜单 "<<endl; cout<<“ 1.查看站点 "<<endl; cout<<" 2.选择最短时间路线 "<<endl; cout<<" 3.选择最节约费用路线 "<<endl; cout<<“ 4.管理员程序 "<<endl; cout<<" 0.退出程序 "<<endl;
第 24 页
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; if (o) {
第 10 页
case(12) : cout<<"L ";break; case(13) : cout<<"M ";break; default : cout<<add[i-13].a; } return 1;
}
第 11 页
(三)、 void pri()函数 //输出站点列表及相应代码 { int i; cout<<“站点及其代码”<<endl; for (i=1;i<=c_number;i++) {cout<<i<<"."; pr(i,0);}
第 30 页
{ unDiGraph *G; int i,j; int a=0,b=0,f,h=1; if(!(G=(unDiGraph *)malloc(sizeof(unDiGraph)))) return(NULL);
第 31 页
for(i=1;i<c_number+1;i++) { for(j=1;j<c_number+1;j++) { G->cost[i][j]=INF; //初始化使G->cost[i][j]为无穷 } } G->numVerts=c_number;
第3页
(一)、 可以以邻接表作交通图的存储结 构,表示边的结构内除包含有邻接点的 信息外,还应包括交通工具、路程时间 和费用等多种属性。 (二)、 使用图的基本算法:插入、删除、 排序、深度优先级搜索和广度优先搜索 等算法。
第4页


(一)、 主函数
int main() { char n; int x; while(x!=0) { cout<<endl; cout<<“输入你希望查询的种类代码,你 将得到最佳方案!"<<endl;
第8页
(二)、 int pr(int i,int j)函数 int pr(int i,int j) { int h=0; if(j==0) {h=i;} else if(j==1) {cin>>add[i].a;} switch(h) {case(0):cout<<"";break; case(1) : cout<<"A ";break; case(2) : cout<<"B ";break;
相关文档
最新文档