石家庄地铁售票系统进度
一.建立一张表储存
站名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之间有两个换乘点,其余均为一个换乘点)
根据统计,判断起点终点情况是否在三者(两个换乘点)之间
线路有两个换乘点,返回两个换乘点需所乘站数最少的。
②最短路径