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

📄 ticketorder.java

📁 航空售票系统的代码
💻 JAVA
字号:
package com.tarena.abs.model;

import java.awt.Color;
import java.util.Calendar;

import javax.swing.JButton;
import javax.swing.JLabel;

/**
 * 订单项,用来描述订单中的一个条目,条目是指
 * 某位乘客乘座某次航班的确定的预定记录。
 * @author zhoukai
 * @version 1.1.0
 * 从数据库读出后还要进行操作
 */
public class TicketOrder implements java.io.Serializable{
	private Long oid;
	private String passengerName;//乘座飞机人姓名
	private String passengerId;//乘座飞机人身份证号
	private Flight flight;//预定的航班              //需映射
	private Calendar cal;       //下单时间
	private Branch branch;     //出票地
	
	//private CabinClass f_class;//预定的舱位等级  //不映射,只在客户端计算价钱
	//private TicketType t_type;//机票类型       //不映射,只在客户端计算价钱
	
	//删掉枚举属性,保留原来的接口,用string实现枚举string数值是枚举值,英文,见CabinClass的main方法测试

	//用于映射的new属性
	private String cabinclass;
	private String tickettype;
	
	//private  int seatnumber;
	
	public TicketOrder(){}
	
	public TicketOrder( String name,String number,Flight flight,
			CabinClass f_class, TicketType t_type, Calendar cal,Branch b) {
		//不映射属性
		//this.f_class = f_class;
		//this.t_type = t_type;
		
		//映射属性
		this.flight = flight;
		this.passengerId = number;
		this.passengerName = name;
		this.cal=cal;
		this.cabinclass=f_class.name();
		this.tickettype=t_type.name();
		this.branch=b;
	}
	
	//以下是get和set方法.
	
	//删掉枚举属性,保留枚举的get,set方法。考虑到用jtable显示
	public CabinClass getF_class() {
		//return f_class;
		return CabinClass.valueOf(cabinclass);
	}
	public void setF_class(CabinClass f_class) {
		//this.f_class = f_class;
		this.cabinclass=f_class.name();
	}
	public Calendar getCal() {
		return cal;
	}

	public void setCal(Calendar cal) {
		this.cal = cal;
	}

	public Flight getFlight() {
		return flight;
	}
	public void setFlight(Flight flight) {
		this.flight = flight;
	}
	public String getPassengerId() {
		return passengerId;
	}
	public void setPassengerId(String idNumber) {
		this.passengerId = idNumber;
	}
	public String getPassengerName() {
		return passengerName;
	}
	public void setPassengerName(String name) {
		this.passengerName = name;
	}
	public double getPrice() {
		double datumPrice=flight.getSch().getPrice();
		double offPrice=datumPrice*flight.getPriceOff();
		//double price=offPrice*f_class.getPriceFactor()*t_type.getPriceFactor();
		double price=offPrice*getF_class().getPriceFactor()*getT_type().getPriceFactor();
		return price;
	}
	
	public TicketType getT_type() {
		//return t_type;
		return TicketType.valueOf(tickettype);
	}
	public void setT_type(TicketType t_type) {
		//this.t_type = t_type;
		this.tickettype=t_type.name();
	}
	
	//出票
	public String toString2(){
		StringBuffer sb1=new StringBuffer();
		sb1.append(getFlight().getCalendar().get(Calendar.YEAR)+"年  ");
		sb1.append(getFlight().getCalendar().get(Calendar.MONTH)+"月  ");
		sb1.append(getFlight().getCalendar().get(Calendar.DAY_OF_MONTH)+"日  ");
		sb1.append(getFlight().getSch().getFromTime().toString());
		sb1.append(",从 "+getFlight().getSch().getFromAddress());
		sb1.append(" 至 "+getFlight().getSch().getToAddress());
		sb1.append("("+getFlight().getSch().getFlightNumber()+")\n");
		

		sb1.append(getF_class().toString()+" ");
		sb1.append(getT_type().toString()+" ");
		sb1.append("乘客姓名:"+getPassengerName()+" ");
		sb1.append("证件号码:"+getPassengerId()+" 座位号:"+this.numOfSeat()+" 票价:"+getPrice());
		sb1.append("出票地"+getBranch().getCity()+" "+getBranch().getName()+"\n");
		return sb1.toString();
	}
	//查询
	public String toString(){
		StringBuffer sb1=new StringBuffer();
		sb1.append(getFlight().getCalendar().get(Calendar.YEAR)+"年  ");
		sb1.append(getFlight().getCalendar().get(Calendar.MONTH)+"月  ");
		sb1.append(getFlight().getCalendar().get(Calendar.DAY_OF_MONTH)+"日  ");
		sb1.append(getFlight().getSch().getFromTime().toString());
		sb1.append(",从 "+getFlight().getSch().getFromAddress());
		sb1.append(" 至 "+getFlight().getSch().getToAddress());
		sb1.append("("+getFlight().getSch().getFlightNumber()+")\n");
		

		sb1.append(getF_class().toString()+" ");
		sb1.append(getT_type().toString()+" ");
		sb1.append("乘客姓名:"+getPassengerName()+" ");
		sb1.append("证件号码:"+getPassengerId()+" 票价:"+getPrice());
		sb1.append("出票地"+getBranch().getCity()+" "+getBranch().getName()+"\n");
		return sb1.toString();
	}
	
	/*public static int getSeatnumber() {
		return seatnumber;
	}

	public static void setSeatnumber(int seatnumber) {
		TicketOrder.seatnumber = seatnumber;
	}*/

	//自动座位号+1,出票时操作。
	public int numOfSeat(){
		//switch(f_class){
		switch(getF_class()){
		case EconomyClass:{
			
			//a是座位号=(最大座位-剩余座位+1)
			int seatnumber=getFlight().getSch().getPlane().getECS()-getFlight().getECSRemain()+1;
			//设置剩余座位-1
			getFlight().setECSRemain(getFlight().getECSRemain()-1);
			return seatnumber;
			}
		case OfficialClass:{
			int seatnumber=getFlight().getSch().getPlane().getBCS()-getFlight().getBCSRemain()+1;
			getFlight().setBCSRemain(getFlight().getBCSRemain()-1);
			return seatnumber;
			}
		case FirstClass:{
			int seatnumber=getFlight().getSch().getPlane().getFCS()-getFlight().getFCSRemain()+1;
			getFlight().setFCSRemain(getFlight().getFCSRemain()-1);
			return seatnumber;
			}
		default:return -1;
		}
	}

	//用来映射的枚举属性
	public String getCabinclass() {
		return cabinclass;
	}

	public void setCabinclass(String cabinclass) {
		this.cabinclass = cabinclass;
		//f_class=CabinClass.valueOf(cabinclass);
		//没有了枚举属性,用的时候调用get方法
		
	}

	public String getTickettype() {
		return tickettype;
	}

	public void setTickettype(String tickettype) {
		this.tickettype = tickettype;
		//t_type=TicketType.valueOf(tickettype);
	}

	public Long getOid() {
		return oid;
	}

	public void setOid(Long oid) {
		this.oid = oid;
	}

	public Branch getBranch() {
		return branch;
	}

	public void setBranch(Branch branch) {
		this.branch = branch;
	}

}

⌨️ 快捷键说明

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