问题是:增加路线那个地方总是不行,则呢么该?package mypackage.booksystem;
import java.util.*;
class Ticket{
protected String trainNum;  //班次
protected String date; //日期
protected String startCity; //起点
protected String toCity; //终点
protected String startTime; //起始时间
protected String toTime; //到达时间
protected int seatAmount; //座位数量
protected double ticketPrice; //票价
private static int linesAmount = 0; //路线数量
protected static Ticket ticket0 = incTicket(); //当前已有航线0
protected static Ticket ticket1 = incTicket();//当前已有航线1
private static ArrayList<Ticket> tickets = new  ArrayList<Ticket>(Ticket.linesAmount + 1);

public Ticket(){} //构建一个 Ticket 对象

public static Ticket incTicket(){ //增加路线
linesAmount++;
return new Ticket();
}

public static void assignInfoForTicket(Ticket ticket){
Ticket.tickets.add(ticket);
ticket.setTrainInfo("K222", "Hefei", "Shanghai", "08/23", "09:20", "10:20", 50, 50.0);
}

/* public static Ticket decTicket(){linesAmount--;return null;} */ //删除路线 public String getTrainNum(){return this.trainNum;}
public String getStartCity(){return this.startCity;}
public String getToCity(){return this.toCity;}
public String getDate(){return this.date;}
public String getStartTime(){return this.startTime;}
public String getToTime(){return this.toTime;}
public int getSeatAmount(){return this.seatAmount;}
public double getTicketPrice(){return this.ticketPrice;}
public static ArrayList<Ticket> getTickets(){return tickets;} 
public static int getLinesAmount(){return linesAmount;}

public void setTrainInfo(String tN,String sC, String tC, String d, String sT, String tT, int sA, double tP){
this.trainNum = tN;
this.startCity = sC;
this.toCity = tC;
this.date = d;
this.startTime = sT;
this.toTime = tT;
this.seatAmount = sA;
this.ticketPrice = tP;
}

public static void printHead(){
System.out.printf("%10s%9s%14s%14s%10s%10s%7s%11s\n", 
"班   次","日   期","始   发   站","终   点   站","始发时间","到达时间","座位量","票      价");
}

public static void printWithIndex(int i){
System.out.printf("  %-6s%-7s%-10s%-10s%-10s%-9s%-7d%-7.2f\n",
tickets.get(i).trainNum,tickets.get(i).date,tickets.get(i).startCity,tickets.get(i).toCity,
tickets.get(i).startTime,tickets.get(i).toTime,tickets.get(i).seatAmount,tickets.get(i).ticketPrice);
}

public static void getTotalTrainsInfo(){
System.out.println(" ***全部路线信息如下***");
printHead();
for(int index = 0; index < linesAmount; index++){
printWithIndex(index);
}
System.out.println();
}

public static void getTrainInfoByCity(){
Scanner input = new Scanner(System.in);
System.out.print("输入起点: ");
String startCity = input.nextLine();
System.out.print("输入终点: ");
String toCity = input.nextLine();
for(int index = 0; index < linesAmount; index++){
System.out.println(" ***路线  " + tickets.get(index).startCity + " 至  " + tickets.get(index).toCity + " 信息如下***");
if(tickets.get(index).getStartCity().compareTo(startCity) == 0 
&& tickets.get(index).getToCity().compareTo(toCity) == 0){
printWithIndex(index);
}
}
}}class Users extends Ticket {
private String userName; //用户姓名
private int seatNum; //车票座位号
private static int usersAmount = 0; //用户数量
private static ArrayList<Users> users = new ArrayList<Users>(Users.usersAmount + 1);

public Users(){
Users.usersAmount++;
}

public ArrayList<Users> getUsers(){return users;}

public static void querying(){ //查询
Scanner input = new Scanner(System.in);
System.out.println("     *****查询系统***** ");
System.out.println(" 1-----> 全部路线查询");
System.out.println(" 2-----> 起终点查询");
System.out.println(" 3-----> 用户名查询");
System.out.println(" 0-----> 退出");
while(true){
System.out.print("\n请选择: ");
int choice = input.nextInt();
switch(choice){
case 1:
Ticket.getTotalTrainsInfo();break;
case 2:
Ticket.getTrainInfoByCity();break;
case 3:
Users.getTrainInfoOfUser();
break;
default:
BookingSystem.startFromHere();break;
}
}
}

public static void getTrainInfoOfUser(){
Scanner input = new Scanner(System.in);
System.out.print("输入姓名: ");
String inputName = input.nextLine();
System.out.println(" ***用户  " + inputName + " 所购车票的信息如下***");
System.out.printf("%10s%10s%9s%14s%14s%10s%10s%7s%11s\n", 
"姓    名","班   次","日   期","始   发   站","终   点   站","始发时间","到达时间","座位号","票    价");
for(int index = 0; index < Users.usersAmount; index++){
if(users.get(index).userName.compareTo(inputName) == 0){
System.out.printf("  %-7s%-6s%-7s%-10s%-10s%-10s%-9s%-7d%-7.2f\n",
users.get(index).userName,users.get(index).getTrainNum(),users.get(index).getDate(),
users.get(index).getStartCity(),users.get(index).getToCity(),users.get(index).getStartTime(),
users.get(index).getToTime(),users.get(index).seatNum,users.get(index).getTicketPrice());
}
}
System.out.println();
}

public static void booking(){ //订票
boolean choice = false;
do{
Users user = new Users();
users.add(user);
Scanner input = new Scanner(System.in);
System.out.print("输入姓名:");
String inputUserName = input.nextLine();
Ticket.getTotalTrainsInfo();
System.out.print("输入起点: ");
String startCity= input.nextLine();
System.out.print("输入终点:");
String toCity = input.nextLine();
for(int index = 0; index < Ticket.getLinesAmount(); index++){
if(Ticket.getTickets().get(index).getStartCity().compareTo(startCity) == 0 &&
Ticket.getTickets().get(index).getToCity().compareTo(toCity) == 0){ // 找到该班次
users.get(usersAmount - 1).userName = inputUserName; //users[temp].userTickets[num].userName
users.get(usersAmount - 1).trainNum = Ticket.getTickets().get(index).getTrainNum();
users.get(usersAmount - 1).date = Ticket.getTickets().get(index).date;
users.get(usersAmount - 1).startCity = Ticket.getTickets().get(index).getStartCity();
users.get(usersAmount - 1).toCity = Ticket.getTickets().get(index).getToCity();
users.get(usersAmount - 1).startTime = Ticket.getTickets().get(index).getStartTime();
users.get(usersAmount - 1).toTime = Ticket.getTickets().get(index).getToTime();
Ticket.getTickets().get(index).seatAmount--;
users.get(usersAmount - 1).seatNum = (50 - Ticket.getTickets().get(index).getSeatAmount());//1 ~ 50 号
users.get(usersAmount - 1).ticketPrice = Ticket.getTickets().get(index).getTicketPrice();
System.out.println(" ***订票成功***");
System.out.println(Users.usersAmount);
}
}
System.out.print("是否继续? (true/false): ");
String confirmString = input.nextLine();
            choice = Boolean.valueOf(confirmString);
}while(choice);
// BookingSystem.startFromHere();
}

public static void returning(){ //退票
boolean choice = false;
do{
Scanner input = new Scanner(System.in);
Users.getTrainInfoOfUser();
System.out.println("输入需退订票的班次: ");
String inputTrainNum = input.nextLine();
for(int index = 0; index < Users.usersAmount; index++){
if(users.get(index).trainNum.compareTo(inputTrainNum) == 0){
Ticket.getTickets().get(index).seatAmount++;
users.remove(index);
Users.usersAmount--;
System.out.println(Users.usersAmount);
}
}
System.out.print("是否继续? (true/false): ");
String confirmString = input.nextLine();
            choice = Boolean.valueOf(confirmString);
}while(choice);
BookingSystem.startFromHere();
}
}public class BookingSystem {
public static void initTickets(){ 
Ticket.getTickets().add(Ticket.ticket0);
Ticket.getTickets().add(Ticket.ticket1);
(Ticket.getTickets().get(0)).setTrainInfo("K000", "Hefei", "Beijing", "12/07", "08:30", "09:30", 50, 34.0);
(Ticket.getTickets().get(1)).setTrainInfo("K111", "Shanghai", "Hefei", "21/07", "09:45", "11:00", 50, 50.5);
}

public static void startFromHere(){
System.out.println(" *****欢迎来到火车订票系统***** ");
System.out.println(" 1-----> 查询");
System.out.println(" 2-----> 订票");
System.out.println(" 3-----> 退票");
System.out.println(" 4-----> 增加路线");
System.out.println(" 0-----> 退出");
Scanner input = new Scanner(System.in);
while(true){
System.out.print("请选择操作: ");
int choice = input.nextInt();
switch(choice){
case 1:
Users.querying();
break;
case 2:
Users.booking();
break;
case 3:
Users.returning();
break;
case 4:
Ticket ticket = Ticket.incTicket();
Ticket.assignInfoForTicket(ticket);
break;
case 0:
System.out.println("\n ***谢谢使用***\n");
System.exit(0);
}
}
}

public static void main(String[] args){
BookingSystem.initTickets();
BookingSystem.startFromHere();
}
}