石家庄地铁路线安排网站的设计

日期:2019.4.3

博客期:055 

星期三

       小伙伴儿的博客地址:点我进入

    代码终于可以在我和我的合作伙伴的电脑上都运行这个网站了!要知道想要应用我的 javabean 的 jar 包,可并不容易啊!

    我们参考的原图是这样的:

    

    先说一下我们的数据库设计——根据网站的信息需求我找到了2个属性—— id 、name, 再然后了解到这些站点其实就相当于一个组里的结点,每一个节点都有它是在几号线,而这线路是有顺序的,所以再给予他们一个线路编号(线路上站号)!于是我就想通过一个表来实现操作,只需要在后边多加入一个 line2 和 seat2 就好了,不是交叉口的站就写 0 !这样组成了subway数据库里的 line 表。

    

    再秀一下图:

    上边是我的截图,网站需要的基本功能已经实现了,就是求线路上的不同权值分配的最优路径!

    之后我回去想办法在网站上添加地图服务,只是在下之前没有经验,所以很 low !我学东西学的很慢,而且一点儿都不会关于地图导入方面的知识!

    换乘方法:

  function Return(start_code,end_code);//返回在同一条线路上的从start到end的站点集合

  function isInSameWay(start_code,end_code);//判断是否在同一条线上

  function ReBuild(LinePoint  linepoint  [ ] , LinePoint  linepoint2  [ ]); //拼接并去掉相邻重复的站点

  LinePoint crossPoint [ ];//交叉节点集合

    (1)不换乘(start 和 end 在一条线上)

    Return(sart,end);

    (2)换乘 1 次

    寻找长度最小的数组ReBuild( , )长度,当 i 分别和start、end在一条线上时,(i为交叉点集合crossPoint中的元素)ReBuild( , ) 取 ReBuild( Return( start,i ),Return(i,end) )。

    (3)换乘 n 次

    寻找长度最小的数组ReBuild( , )长度,当 i1 分别和start、i2在一条线上且i2 分别和i3、i4在一条线上... ... 且i(n-1) 分别和i(n-2)、in在一条线上且in分别和i(n-1)和end在同一直线时(i(k)为交叉点集合crossPoint中的元素)ReBuild( , ) 取 ReBuild( start , i1 ~ in , end )。

    再下边就是这次的制作的 P2P 图:

   

    

原文地址:https://www.cnblogs.com/onepersonwholive/p/10651064.html