中国道路交通网络信息查询系统.docx

上传人:b****8 文档编号:12449158 上传时间:2023-06-05 格式:DOCX 页数:36 大小:319.85KB
下载 相关 举报
中国道路交通网络信息查询系统.docx_第1页
第1页 / 共36页
中国道路交通网络信息查询系统.docx_第2页
第2页 / 共36页
中国道路交通网络信息查询系统.docx_第3页
第3页 / 共36页
中国道路交通网络信息查询系统.docx_第4页
第4页 / 共36页
中国道路交通网络信息查询系统.docx_第5页
第5页 / 共36页
中国道路交通网络信息查询系统.docx_第6页
第6页 / 共36页
中国道路交通网络信息查询系统.docx_第7页
第7页 / 共36页
中国道路交通网络信息查询系统.docx_第8页
第8页 / 共36页
中国道路交通网络信息查询系统.docx_第9页
第9页 / 共36页
中国道路交通网络信息查询系统.docx_第10页
第10页 / 共36页
中国道路交通网络信息查询系统.docx_第11页
第11页 / 共36页
中国道路交通网络信息查询系统.docx_第12页
第12页 / 共36页
中国道路交通网络信息查询系统.docx_第13页
第13页 / 共36页
中国道路交通网络信息查询系统.docx_第14页
第14页 / 共36页
中国道路交通网络信息查询系统.docx_第15页
第15页 / 共36页
中国道路交通网络信息查询系统.docx_第16页
第16页 / 共36页
中国道路交通网络信息查询系统.docx_第17页
第17页 / 共36页
中国道路交通网络信息查询系统.docx_第18页
第18页 / 共36页
中国道路交通网络信息查询系统.docx_第19页
第19页 / 共36页
中国道路交通网络信息查询系统.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

中国道路交通网络信息查询系统.docx

《中国道路交通网络信息查询系统.docx》由会员分享,可在线阅读,更多相关《中国道路交通网络信息查询系统.docx(36页珍藏版)》请在冰点文库上搜索。

中国道路交通网络信息查询系统.docx

中国道路交通网络信息查询系统

中国道路交通网络信息查询系统

【问题描述】

出于不同的目的的旅客对交通工具有不同的要求。

例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则期望旅费尽可能省,而老年旅客则要求中转次数最少。

编制一个全国城市间的交通咨询程序,为旅客提供两种或三种最优决策的交通咨询。

【系统要求】

(1)提供对城市信息进行编辑(如:

添加或删除)的功能。

(2)城市之间有两种交通工具:

火车和飞机。

提供对列车时刻表和飞机航班进行编辑(增设或删除)的功能。

(3)提供两种最优决策:

最快到达或最省钱到达。

全程只考虑一种交通工具;

(4)旅途中耗费的总时间应该包括中转站的等候时间;

(5)咨询以用户和计算机的对话方式进行。

由用户输入起始站、终点站、最优决策原则和交通工具,输出信息:

最快需要多长时间才能到达或者最少需要多少旅费才能到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。

【程序结构图】

 

【算法分析】

1.新建数据

voidcreat_data1()//新建数据

{

inti;

printf("请输入添加火车个数:

");

scanf("%d",&t);

for(i=1;i<=t;i++)

{

printf("请输入添加火车列次:

");

scanf("%s",hc[i].hnum);printf("\n");

printf("\n请输入始站:

");

scanf("%s",hc[i].kname);printf("\n");

printf("请输入终站:

");

scanf("%s",hc[i].dname);printf("\n");

printf("请输入开车时间:

");

scanf("%s",hc[i].ktime);printf("\n");

printf("请输入到站时间:

");

scanf("%s",hc[i].dtime);printf("\n");

printf("请输入经历时间:

");

scanf("%s",hc[i].ltime);printf("\n");

}

print();

}

2.添加数据

voidadd1()//添加数据

{

charch;

do

{

printf("请输入添加火车列次:

");

scanf("%s",hc[t+1].hnum);printf("\n");

printf("\n请输入始站:

");

scanf("%s",hc[t+1].kname);printf("\n");

printf("请输入终站:

");

scanf("%s",hc[t+1].dname);printf("\n");

printf("请输入开车时间:

");

scanf("%s",hc[t+1].ktime);printf("\n");

printf("请输入到站时间:

");

scanf("%s",hc[t+1].dtime);printf("\n");

printf("请输入经历时间:

");

scanf("%s",hc[t+1].ltime);printf("\n");

t++;

printf("是否继续添加y/n:

");

getchar();

ch=getchar();

printf("\n");

}while(ch=='y');

print();

}

3.删除数据

voiddelet1()//删除数据

{

charnum1[10];

inti,j,count=0;

printf("输入想要删除的火车列次");

scanf("%s",num1);

for(i=1;i<=t;i++)

if(strcmp(num1,hc[i].hnum)==0)

{

for(j=i;j

hc[j]=hc[j+1];

count++;

t--;

}

if(count==0)printf("没有列车信息!

");

elseprint();

}

4.迪杰斯特拉算法

voidShortwstPath(intnum)/*迪杰斯特拉算法最短路径函数*/

{

intv,w,i,t;

intfinal[25];

intmin;

for(v=0;v<25;++v)/*初始化*/

{

final[v]=0;/*标志数组初始化*/

D[v]=G.arcs[num][v].adj;

for(w=0;w<25;++w)

P[v][w]=0;/*设空路径*/

if(D[v]<20000)/*v,v0间有边存在*/

{

P[v][num]=1;

P[v][v]=1;/*到v的最短路径上包含v0及v*/

}/*if*/

}

D[num]=0;

final[num]=1;/*初始化,v0顶点属于B集*/

/*开始主循环,每次求得v0到某个v顶点的最短路径,并加v到B集*/

for(i=0;i<25;++i)/*其余G.vexnum-1各顶点*/

{

min=20000;

for(w=0;w<25;++w)

if(!

final[w])/*w顶点在V-S中*/

if(D[w]

final[v]=1;/*离v0顶点最近的v加入B*/

for(w=0;w<25;++w)/*更新当前最短路径及距离*/

if(!

final[w]&&((min+G.arcs[v][w].adj)

{

D[w]=min+G.arcs[v][w].adj;/*修改D和P数组*/

for(t=0;t<25;t++)

P[w][t]=P[v][t];

P[w][w]=1;

}/*if*/

}/*for*/

}

【程序测试】

建立如下图所示的全国交通图:

0.哈尔滨1.长春2.沈阳3.大连4.天津5.北京6.徐州7.呼和浩特8.兰州9.乌鲁木齐10.西宁11.西安12.郑州13.上海14.南昌15.福州16.株洲17.武汉18.广州19.深圳20.柳州21.贵阳22.南宁23.成都24.昆明

测试结果截图:

【源代码】

#include"string.h"

#include"stdio.h"

structhcar

{

charhnum[10];

charkname[10];

chardname[10];

charktime[10];

chardtime[10];

charltime[10];

}hc[60]={{"k89","哈尔滨","长春","1:

00","3:

00","2"},

{"k89","长春","哈尔滨","1:

00","3:

00","2"},

{"u78","长春","沈阳","3:

30","6:

00","2.5"},

{"u78","沈阳","长春","3:

30","6:

00","2.5"},

{"j67","沈阳","大连","6:

30","9:

00","2.5"},

{"j67","大连","沈阳","6:

30","9:

00","2.5"},

{"v78","沈阳","天津","9:

30","14:

00","4.5"},

{"v78","天津","沈阳","9:

30","14:

00","4.5"},

{"g67","天津","北京","14:

30","16:

00","1.5"},

{"g67","北京","天津","14:

30","16:

00","1.5"},

{"f67","北京","呼和浩特","16:

30","23:

00","6.5"},

{"f67","呼和浩特","北京","16:

30","23:

00","6.5"},

{"j56","呼和浩特","兰州","1:

00","3:

00","2"},

{"j56","兰州","呼和浩特","1:

00","3:

00","2"},

{"v67","兰州","乌鲁木齐","1:

00","3:

00","2"},

{"v67","乌鲁木齐","兰州","1:

00","3:

00","2"},

{"f46","兰州","西宁","1:

00","3:

00","2"},

{"f46","西宁","兰州","1:

00","3:

00","2"},

{"d49","天津","徐州","1:

00","3:

00","2"},

{"d49","徐州","天津","1:

00","3:

00","2"},

{"c44","徐州","郑州","1:

00","3:

00","2"},

{"c44","郑州","徐州","1:

00","3:

00","2"},

{"h47","郑州","北京","1:

00","3:

00","2"},

{"h47","北京","郑州","1:

00","3:

00","2"},

{"d46","郑州","西安","1:

00","3:

00","2"},

{"d46","西安","郑州","1:

00","3:

00","2"},

{"v46","西安","兰州","1:

00","3:

00","2"},

{"v46","兰州","西安","1:

00","3:

00","2"},

{"s45","徐州","上海","1:

00","3:

00","2"},

{"s45","上海","徐州","1:

00","3:

00","2"},

{"t84","上海","南昌","1:

00","3:

00","2"},

{"t84","南昌","上海","1:

00","3:

00","2"},

{"f43","南昌","株洲","1:

00","3:

00","2"},

{"f43","株洲","南昌","1:

00","3:

00","2"},

{"i45","株洲","武汉","1:

00","3:

00","2"},

{"i45","武汉","株洲","1:

00","3:

00","2"},

{"d53","武汉","郑州","1:

00","3:

00","2"},

{"d53","郑州","武汉","1:

00","3:

00","2"},

{"f67","株洲","广州","1:

00","3:

00","2"},

{"f67","广州","株洲","1:

00","3:

00","2"},

{"h76","广州","深圳","1:

00","3:

00","2"},

{"h76","深圳","广州","1:

00","3:

00","2"},

{"s45","株洲","贵阳","1:

00","3:

00","2"},

{"s45","贵阳","株洲","1:

00","3:

00","2"},

{"o56","株洲","柳州","1:

00","3:

00","2"},

{"o56","柳州","株洲","1:

00","3:

00","2"},

{"d65","贵阳","柳州","1:

00","3:

00","2"},

{"d65","柳州","贵阳","1:

00","3:

00","2"},

{"r44","南宁","柳州","1:

00","3:

00","2"},

{"r44","柳州","南宁","1:

00","3:

00","2"},

{"f56","贵阳","成都","1:

00","3:

00","2"},

{"f56","成都","贵阳","1:

00","3:

00","2"},

{"g06","西安","成都","1:

00","3:

00","2"},

{"g06","成都","西安","1:

00","3:

00","2"},

{"d97","贵阳","昆明","1:

00","3:

00","2"},

{"d97","昆明","贵阳","1:

00","3:

00","2"},

{"d67","成都","昆明","1:

00","3:

00","2"},

{"d67","昆明","成都","1:

00","3:

00","2"}};

 

structplane

{

charpnum[10];

charkname[10];

chardname[10];

charktime[10];

chardtime[10];

charltime[10];

}pl[60]={{"k89","哈尔滨","长春","1:

00","3:

00","2"},

{"k89","长春","哈尔滨","1:

00","3:

00","2"},

{"u78","长春","沈阳","3:

30","6:

00","2.5"},

{"u78","沈阳","长春","3:

30","6:

00","2.5"},

{"j67","沈阳","大连","6:

30","9:

00","2.5"},

{"j67","大连","沈阳","6:

30","9:

00","2.5"},

{"v78","沈阳","天津","9:

30","14:

00","4.5"},

{"v78","天津","沈阳","9:

30","14:

00","4.5"},

{"g67","天津","北京","14:

30","16:

00","1.5"},

{"g67","北京","天津","14:

30","16:

00","1.5"},

{"f67","北京","呼和浩特","16:

30","23:

00","6.5"},

{"f67","呼和浩特","北京","16:

30","23:

00","6.5"},

{"j56","呼和浩特","兰州","1:

00","3:

00","2"},

{"j56","兰州","呼和浩特","1:

00","3:

00","2"},

{"v67","兰州","乌鲁木齐","1:

00","3:

00","2"},

{"v67","乌鲁木齐","兰州","1:

00","3:

00","2"},

{"f46","兰州","西宁","1:

00","3:

00","2"},

{"f46","西宁","兰州","1:

00","3:

00","2"},

{"d49","天津","徐州","1:

00","3:

00","2"},

{"d49","徐州","天津","1:

00","3:

00","2"},

{"c44","徐州","郑州","1:

00","3:

00","2"},

{"c44","郑州","徐州","1:

00","3:

00","2"},

{"h47","郑州","北京","1:

00","3:

00","2"},

{"h47","北京","郑州","1:

00","3:

00","2"},

{"d46","郑州","西安","1:

00","3:

00","2"},

{"d46","西安","郑州","1:

00","3:

00","2"},

{"v46","西安","兰州","1:

00","3:

00","2"},

{"v46","兰州","西安","1:

00","3:

00","2"},

{"s45","徐州","上海","1:

00","3:

00","2"},

{"s45","上海","徐州","1:

00","3:

00","2"},

{"t84","上海","南昌","1:

00","3:

00","2"},

{"t84","南昌","上海","1:

00","3:

00","2"},

{"f43","南昌","株洲","1:

00","3:

00","2"},

{"f43","株洲","南昌","1:

00","3:

00","2"},

{"i45","株洲","武汉","1:

00","3:

00","2"},

{"i45","武汉","株洲","1:

00","3:

00","2"},

{"d53","武汉","郑州","1:

00","3:

00","2"},

{"d53","郑州","武汉","1:

00","3:

00","2"},

{"f67","株洲","广州","1:

00","3:

00","2"},

{"f67","广州","株洲","1:

00","3:

00","2"},

{"h76","广州","深圳","1:

00","3:

00","2"},

{"h76","深圳","广州","1:

00","3:

00","2"},

{"s45","株洲","贵阳","1:

00","3:

00","2"},

{"s45","贵阳","株洲","1:

00","3:

00","2"},

{"o56","株洲","柳州","1:

00","3:

00","2"},

{"o56","柳州","株洲","1:

00","3:

00","2"},

{"d65","贵阳","柳州","1:

00","3:

00","2"},

{"d65","柳州","贵阳","1:

00","3:

00","2"},

{"r44","南宁","柳州","1:

00","3:

00","2"},

{"r44","柳州","南宁","1:

00","3:

00","2"},

{"f56","贵阳","成都","1:

00","3:

00","2"},

{"f56","成都","贵阳","1:

00","3:

00","2"},

{"g06","西安","成都","1:

00","3:

00","2"},

{"g06","成都","西安","1:

00","3:

00","2"},

{"d97","贵阳","昆明","1:

00","3:

00","2"},

{"d97","昆明","贵阳","1:

00","3:

00","2"},

{"d67","成都","昆明","1:

00","3:

00","2"},

{"d67","昆明","成都","1:

00","3:

00","2"}};;

intt;//全局变量

typedefstructArcCell{

intadj;

char*info;

}ArcCell;/*定义边的类型*/

typedefstructVertexType{

intnumber;

char*place;

}VertexType;/*定义顶点的类型*/

typedefstruct{

VertexTypevex[25];

ArcCellarcs[25][25];

intvexnum,arcnum;

}MGraph;/*定义图的类型*/

MGraphG;/*把图定义为全局变量*/

char*sa[30]={"a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a",

"a","a","a","a","a","a","a","a","a","a"};

intP[25][25];

longintD[25];

voidprint()

{

intn;

voidprinth();

voidprintp();

voidprint1();

voidprint2();

do{

printf("\t\t\t时刻表\n");

printf("\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");

printf("\t\t\t1.火车时刻表\n");

printf("\t\t\t2.飞机时刻表\n");

printf("\t\t\t3.退出\n");

printf("\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");

printf("请输入序号选择相应操作:

");

scanf("%d",&n);

switch(n)

{

case1:

print1();printh();break;

case2:

print2();printp();break;

case3:

printf("欢迎使用\n");break;

default:

printf("输入错误");

}

}while(n!

=3);

}

voidprinth()

{

intn;

voidcreat_data1();

voidadd1();

voiddelet1();

do{

printf("\t\t\t火车时刻表\n");

printf("\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");

printf("\t\t\t1.新建数据\n");

printf("\t\t\t2.添加\n");

printf("\t\t\t3.删除\n");

printf("\t\t\t4.退出\n");

printf("\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");

printf("请输入序号选择相应操作:

");

scanf("%d",&n);

switch(n)

{

case1:

creat_data1();break;

case2:

add1();break;

case3:

delet1();break;

case4:

printf("欢迎使用\n");break;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2