书签 分享 收藏 举报 版权申诉 / 20

类型北京地铁计价系统的实现.docx

  • 文档编号:26565976
  • 上传时间:2023-06-20
  • 格式:DOCX
  • 页数:20
  • 大小:191.99KB

起始站

1号线

2号线

4号线

5号线

6号线

7号线

8号线

9号线

10号线

13号线

14号线

15号线

9.5em;">

8px;">

3px;margin-right:

3px;">end

终点站

1号线

2号线

4号线

5号线

6号线

7号线

8号线

9号线

10号线

13号线

14号线

15号线

9.5em;">

8px;">

2em;">

9em;"onclick="getSubwayData()">Submit

0.6em;">

50px;"value=0readonly>

-

55px;"value=0readonly>

km

2)station.js

//菜单级联

functiongetStartStation(){

varstartLine=document.getElementById("startLine");

varstartStation=document.getElementById("startStation");

//获取1,2级菜单id

varadd=[].concat(stationData[startLine.value]);

startStation.length=0;

//清空二级菜单

for(vari=0;i

varstr=newOption();

str.text=add[i];

startStation.add(str);

//text的值添加到二级select中

};

}

functiongetEndStation(){

varendLine=document.getElementById("endLine");

varendStation=document.getElementById("endStation");

varadd=[].concat(stationData[endLine.value]);

endStation.length=0;

for(vari=0;i

varstr=newOption();

str.text=add[i];

endStation.add(str);

};

}

functiongetSubwayData(){

varstartStation=document.getElementById("startStation");

varendStation=document.getElementById("endStation");

varfare=document.getElementById("fare")

vardistance=document.getElementById("distance");

//获取当前select的元素,这里用到selectIndex属性

origin=startStation.options[startStation.selectedIndex].text;

target=endStation.options[endStation.selectedIndex].text;

/*if(origin==target){

fare.value="3";

distance.value="0";

}else{*/

distance.value=dijkstra.shortest(origin,target).toFixed

(1);

fare.value=caleFare(distance.value);

//};

}

//对传入的距离计算fare起步6公里内每人次3元,6-12公里每人次4元,12-32公里每10公里加1元,32公里以上每20公里加1元,票价不封顶

functioncaleFare(distance){

if(distance<=6)return3;

if(distance<=12)return4;

if(distance<=32)return4+Math.ceil((distance-12)/10);

elsereturn6+Math.ceil((distance-32)/20)

}

//初始化算法

functioninitDijkstra(){

dijkstra.addChart(chartData);

}

initDijkstra();//初始化

3)dijkstra.js

/*

*2016.11.24nevil

*/

dijkstra=function(){

functionaddEdge(origin,target,distance){

if(!

(origininchart))chart[origin]={};

if(!

(targetinchart))chart[target]={};

chart[origin][target]=distance,

chart[target][origin]=distance

}

functionaddChart(chart){

for(vari=0;i

varedge=chart[i];

addEdge(edge[0],edge[1],edge[2])

};

}

functionshortest(origin,target){

if(!

(origininchart)||!

(targetinchart))return1/0;

vardist={};

visited={};

numVertex=0;

for(varvinchart)dist[v]=1/0,

numVertex++;

dist[origin]=0;

for(vari=0;i

varminDist=1/0,

minV=void0;

for(varvindist)if(!

(vinvisited)){

if(minDist>dist[v])minDist=dist[v],

minV=v

}else;

if(void0===minV)break;

if(minV===target)returnminDist;

visited[minV]=true;

varedges=chart[minV];

for(varvinedges)if(!

(vinvisited)){

varnewDist=minDist+edges[v];

if(dist[v]>newDist)dist[v]=newDist

}else;

}

return1/0

}

varchart={};

return{

addEdge:

addEdge,

addChart:

addChart,

shortest:

shortest

}

}();

 

4)线路数据

varstationData={

"one":

["苹果园","古城","八角游乐园","八宝山","玉泉路","五棵松","万寿路","公主坟","军事博物馆","木樨地","南礼士路","复兴门","西单","天安门西","天安门东","王府井","东单","建国门","永安里","国贸","大望路","四惠","四惠东"],

"two":

["西直门","车公庄","阜成门","复兴门","长椿街","宣武门","和平门","前门","崇文门","北京站","建国门","朝阳门","东四十条","东直门","雍和宫","安定门","鼓楼大街","积水潭"],

"four":

["安河桥北","北宫门","西苑","圆明园","北大东门","中关村","海淀黄庄","人民大学","魏公村","国家图书馆","动物园","西直门","新街口","平安里","西四","灵境胡同","西单","宣武门","菜市口","陶然亭","北京南站","马家堡","角门西","公益西桥"],

"five":

["宋家庄","刘家窑","蒲黄榆","天坛东门","磁器口","崇文门","东单","灯市口","东四","张自忠路","北新桥","雍和宫","和平里北桥","和平西桥","惠新西街南口","惠新西街北口","大屯路东","北苑路北","立水桥南","立水桥","天通苑南","天通苑","天通苑北"],

"six":

["海淀五路居","慈寿寺","花园桥","白石桥南","车公庄西","车公庄","平安里","北海北","南锣鼓巷","东四","朝阳门","东大桥","呼家楼","金台路","十里堡","青年路","褡裢坡","黄渠","常营","草房","物资学院","通州北关","北运河西","郝家府","东夏园","潞城"],

"seven":

["北京西站","湾子","达官营","广安门内","菜市口","虎坊桥","珠市口","桥湾","磁器口","广渠门内","广渠门外","九龙山","大郊亭","百子湾","化工","南楼梓庄","欢乐谷景区","双合","焦化厂"],

"eight":

["朱辛庄","育知路","平西府","回龙观东大街","霍营","育新","西小口","永泰庄","林翠桥","森林公园南门","奥林匹克公园","奥体中心","北土城","安华桥","安德里北街","鼓楼大街","什刹海","南锣鼓巷"],

"nine":

["郭公庄","丰台科技园","科怡路","丰台南路","丰台东大街","七里庄","六里桥","六里桥东","北京西站","军事博物馆","白堆子","白石桥南","国家图书馆"],

"ten":

["巴沟","苏州街","海淀黄庄","知春里","知春路","西土城","牡丹园","健德门","北土城","安贞门","惠新西街南口","芍药居","太阳宫","三元桥","亮马桥","农业展览馆","团结湖","呼家楼","金台夕照","国贸","双井","劲松","潘家园","十里河","分钟寺","成寿寺","宋家庄","石榴庄","大红门","角门东","角门西","草桥","纪家庙","首经贸","丰台站","泥洼","西局","六里桥","莲花桥","公主坟","西钓鱼台","慈寿寺","车道沟","长春桥","火器营"],

"thirteen":

["东直门","柳芳","光熙门","芍药居","望京西","北苑","立水桥","霍营","回龙观","龙泽","西二旗","上地","五道口","知春路","大钟寺","西直门"],

"fourteen":

["张郭庄","园博园","大瓦窑","郭庄子","大井","七里庄","西局"],

"fifteen":

["俸伯","顺义","石门","南发信","后沙

举报
举报
版权申诉
版权申诉
word格式文档无特别注明外均可编辑修改;预览文档经过压缩,下载后原文更清晰! 立即下载
配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
北京地铁 计价 系统 实现
提示  冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:北京地铁计价系统的实现.docx
链接地址:https://www.bdocx.com/doc/26565976.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2022 冰点文档网站版权所有

经营许可证编号:鄂ICP备2022015515号-1

收起
展开