石家庄地铁售票系统进度

一.建立一张表储存

站名name(String型);

站点编号id(int型,设为主键)    例如一号线第一站101,三号线第四站304;

位于n号线line   int型   (n=1,2,3,4,5,6  声明:换乘站点line>10)。

数据库例图:

建立实体代码:

public class Substation 
{
    private String name;
    private String line;
    private int id;
    public void setName(String name) 
    {
        this.name=name;
    }
    public String getName() 
    {
        return name;
    }
    public void setLine(String line)
    {
        this.line=line;
    }
    public String getLine()
    {
        return line;
    }
    public void setId(int id)
    {
        this.id=id;
    }
    public int getId()
    {
        return id;
    }
    public Substation()
    {
        
    }
}

二.输入起点origin,终点end(模糊查询:针对客户输错字)

1.如果一条线路,则不用换乘;判断条件为(绝对值)Math.abs(origin.id-end.id)<100

2.如果需要换乘,系统推荐两种方案

①换乘站数最少

先判断终点与起点线路是否有换乘点(统计:石家庄地铁任意两条线路之间均有换乘点

后找出换乘点,返回需要乘坐的站数。(统计:只有1跟3,1跟5,3跟6,4跟5之间有两个换乘点,其余均为一个换乘点

根据统计,判断起点终点情况是否在三者(两个换乘点)之间

线路有两个换乘点,返回两个换乘点需所乘站数最少的。

②最短路径

原文地址:https://www.cnblogs.com/sengzhao666/p/10651962.html