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

📄 seat.java

📁 Java模拟航空公司订票系统
💻 JAVA
字号:
import java.text.DecimalFormat;
import java.io.*;


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();
//---------- constructor ----------
public Seat(int row, int col)
{
// convert column value
// to ASCII equivalent
String colStr = "";
col += 64;
char colChar = (char)col;
seatNo = Integer.toString(row);
seatNo += colChar;
currentStatus = FREE;
seatPrice = 20.0F;
seatTakings = 0.0F;
}
//---------- methods ----------
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();
}// endif
if (currentStatus == 0 || currentStatus == 1)
System.out.println("\t\tPaid: 0.00");
else
System.out.println("\t\tPaid:"+df1.format(seatPrice*passenger.getDiscount()));
// endif
}
public void changeSeatStatus(int newStatus, String pName, char pType, String pInfo)
{
// This method is used to re-create the seat
// details from persistent storage.
currentStatus = newStatus;
passenger = createPassenger(pName,pType,pInfo);
}
public void changeSeatStatus(int newStatus, String pName) throws IOException
{
switch(newStatus)
{
// Free a seat
case FREE : switch (currentStatus)
{
// free a free seat
case FREE :
System.out.println("\t\tERROR "+seatNo+"Seat is already free");
break;
// free a reserved seat
case RESERVED : currentStatus = FREE;
passenger = null;
isUpdated = 1; // reserved to free
System.out.println("\t\t"+seatNo+"is now free");
break;
// free a booked seat
case BOOKED : currentStatus = FREE;
passenger = null;
isUpdated = 2; // booked to free
System.out.println("\t\t"+seatNo+"is now free - no refund");
break;
} // endswitch
break;
// Reserve a seat
case RESERVED : switch (currentStatus)
{
// reserve a free seat
case FREE : currentStatus = RESERVED;
passenger = createPassenger(pName);
System.out.println("\t\t"+seatNo+"has been reserved by"+passenger.getName());
isUpdated = 3; // free to reserved
break;
// reserve a booked seat

case RESERVED :System.out.println("\t\tERROR "+seatNo+"is already reserved by"+passenger.getName());
break;
// book a reserved seat
case BOOKED : System.out.println("\t\tERROR "+seatNo+"is already booked by"+passenger.getName());
break;
} // endswitch
break;
// Book a seat
case BOOKED : switch (currentStatus)
{
// book a free seat
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; // free to booked
break;
// book a reserved seat
case RESERVED : // check if names match
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());
// endif
break;
// book a booked seat
case BOOKED :
System.out.println("ERROR "+seatNo+"is already booked by "+passenger.getName());
break;
} // endswitch
break;
} // endswitch
}
//---- helper methods
private Passenger createPassenger (String newPassName, char pType, String passInfo)
{
Passenger temp = null;
// this method is used when creating passenger
// objects from persistent storage
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) throws IOException
{
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 + -