zoukankan      html  css  js  c++  java
  • 石家庄地铁路线安排网站的设计

    日期: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 图:

       

        

  • 相关阅读:
    我理解的优秀软件工程师
    Hello 博客园!
    线程安全与可重入函数之间的区别与联系
    linux-粘滞位的使用
    死锁产生的四个必要条件及处理死锁的策略
    数据结构—位图
    Linux下进度条的简单实现
    Linux-find命令
    Linux文件3个时间点(access time,modify time,change time)
    各种排序算法的实现、总结
  • 原文地址:https://www.cnblogs.com/onepersonwholive/p/10651064.html
Copyright © 2011-2022 走看看