⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 seat.java

📁 航班订座系统~java的作业
💻 JAVA
字号:
import java.text.DecimalFormat;

public class Seat
{
 private static final int FREE = 0;
 private static final int RESERVED = 1;
 private static final int BOOKED = 2;
 private String seatNo;
 private int currentStatus;
 private float seatPrice;
 private float seatTakings;
 private int isUpdated = 0;
 private Passenger passenger = null;
 private Keyboard kb = new Keyboard();

 public Seat(int row, int col)
 {
  String colStr = "";
  col += 64;
  char colChar = (char)col;
  seatNo = Integer.toString(row);
  seatNo += colChar;
  currentStatus = FREE;
  seatPrice = 20.0F;
  seatTakings = 0.0F;
 }

 public String getNo()
 {
  return seatNo;
 }

 public int getStatus()
 {
  return currentStatus;
 }

 public float getTakings()
 {
  return seatTakings;
 }

 public void setTakings(float takings)
 {
  seatTakings = takings;
 }

 public String getPassDetails()
 {
  String pinfo = "";
  try 
  {
   pinfo = passenger.getName();
   pinfo += passenger.getPassengerInfo();
  }
  catch (NullPointerException e)
  {
  }
  return pinfo;
 }

 public int updated()
 {
  return isUpdated;
 }

 public void displaySeatInfo()
 {
  DecimalFormat df1 = new DecimalFormat("##00.00");
  System.out.println("\n\t\tSeat No: "+seatNo+", Status: "+currentStatus);
  if (passenger != null) 
  {
   System.out.println("\t\tPassenger: "+passenger.getName());
   passenger.displayDetails();
  }
  if (currentStatus == 0 || currentStatus == 1)
   System.out.println("\t\tPaid: 0.00");
  else
   System.out.println("\t\tPaid:"+df1.format(seatPrice*passenger.getDiscount()));
 }

 public void changeSeatStatus(int newStatus, String pName,char pType, String pInfo)
 {
  // to re-create the seat
  // details from persistent storage.
  currentStatus = newStatus;
  passenger = createPassenger(pName,pType,pInfo);
 }

 public void changeSeatStatus(int newStatus, String pName)
 {
   switch(newStatus)
  {
   case FREE : 
    switch (currentStatus)
    {
     case FREE :
       System.out.println("\t\tERROR "+seatNo+"Seat is already free");
     break;
     case RESERVED : currentStatus = FREE;
       passenger = null;
       isUpdated = 1; 
       System.out.println("\t\t"+seatNo+"is now free");
     break;
     case BOOKED : currentStatus = FREE;
       passenger = null;
       isUpdated = 2;
       System.out.println("\t\t"+seatNo+"is now free - no refund");
     break;
   }
  break;
  case RESERVED : 
   switch (currentStatus)
  {
  case FREE : currentStatus = RESERVED;
    passenger = createPassenger(pName);
    System.out.println("\t\t"+seatNo+"has been reserved by"+passenger.getName());
    isUpdated = 3;
  break;
  case RESERVED :System.out.println("\t\tERROR "+seatNo+"is already reserved by"+passenger.getName());
  break;
  case BOOKED : System.out.println("\t\tERROR "+seatNo+"is already booked by"+passenger.getName());
  break;
 } 
 break;
 case BOOKED : 
  switch (currentStatus)
  {
   case FREE : currentStatus = BOOKED;
    passenger = createPassenger(pName);
    seatTakings +=seatPrice*passenger.getDiscount();
    System.out.println("\t\t"+seatNo+"has been booked by"+passenger.getName());
    isUpdated = 4; 
   break;
   case RESERVED : 
    if (passenger.getName().equalsIgnoreCase(pName))
    {
     currentStatus = BOOKED;
     seatTakings += seatPrice*passenger.getDiscount();
     System.out.println("\t\t"+seatNo+"has been booked by "+passenger.getName());
     isUpdated = 5; // reserved to booked
    }
    else
     System.out.println("\t\tERROR "+seatNo+"is reserved by "+passenger.getName());
   break;
   case BOOKED :
    System.out.println("ERROR "+seatNo+"is already booked by "+passenger.getName());
   break;
  } 
 break;
 } 
}

//---- helper methods

 private Passenger createPassenger (String newPassName, char pType, String passInfo)
 {
  Passenger temp = null;
  switch (pType)
  {
   case 'L' : temp = new IslandPassenger(newPassName, passInfo);
   break;
   case 'B' : temp = new BusinessPassenger(newPassName, passInfo);
   break;
   case 'O' : temp = new OrdinaryPassenger(newPassName, passInfo);
   break;
  }
  return temp;
 }

 private Passenger createPassenger (String newPassName)
 {
  char reply = 'y';
  Passenger temp = null;
  String passInfo;
  System.out.println("\n\t\tL. Local.");
  System.out.println("\t\tB. Business.");
  System.out.println("\t\tO. Ordinary.");
  reply = Character.toUpperCase(kb.getChar("\n\t\tSelect type of passenger > "));
  switch (reply)
  {
   case 'L' : 
    passInfo = kb.getString("\n\t\tEnter place of residence > ");
    temp = new IslandPassenger(newPassName, passInfo);
   break;
   case 'B' : 
    passInfo = kb.getString("\n\t\tEnter company name > ");
    temp = new BusinessPassenger(newPassName, passInfo);
   break;
   case 'O' : 
    passInfo = kb.getString("Is the booking part of a promotion (Y/N)? >");
    temp = new OrdinaryPassenger(newPassName, passInfo);
   break;
  } // endswitch
  return temp;
 }
} // end of Seat class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -