展开全部
今天比较闲,编了一套,一共4个class。不懂62616964757a686964616fe59b9ee7ad9431333335303462再问。
这格式真要命,凑活看吧。publicenumAirClass{
FIRST,
SECOND,
THIRD
}
--------------------------------------------
publicclassCustomer{
privateStringname;
privateintticketNumber;
privateAirClassairClass;
publicCustomer(Stringname,intticketNumber,AirClassairClass){
this.name=name;
this.ticketNumber=ticketNumber;
this.airClass=airClass;
}
publicStringgetName(){returnname;}
publicvoidsetName(Stringname){this.name=name;}
publicintgetTicketNumber(){returnticketNumber;}
publicAirClassgetAirClass(){returnairClass;}
}
------------------------------------------------
importjava.util.LinkedList;
importjava.util.List;
publicclassAirLine{
privateStringdestination;
privateStringflightName;
privateStringflightNumber;
privateintdayOfWeek;
privateintcapacity;
privateintremainder;
privateListbooking=newLinkedList();
privateListpreBooking=newLinkedList();
publicAirLine(Stringdestination,StringflightName,StringflightNumber,intdayOfWeek,intcapacity){
this.destination=destination;
this.flightName=flightName;
this.flightNumber=flightNumber;
this.dayOfWeek=dayOfWeek;
this.capacity=capacity;
this.remainder=capacity;}
publicStringgetDestination(){returndestination;}
publicStringgetFlightName(){returnflightName;}
publicStringgetFlightNumber(){returnflightNumber;}
publicintgetDayOfWeek(){returndayOfWeek;}
publicintgetCapacity(){returncapacity;}
publicintgetRemainder(){returnremainder;}
publicListgetBooking(){returnbooking;}
publicListgetPreBooking(){returnpreBooking;}
publicbooleanaddBooking(Customerc){
if(this.remainder>=c.getTicketNumber()){
this.remainder=this.remainder-c.getTicketNumber();
this.booking.add(c);
returntrue;
}else{
this.preBooking.add(c);
returnfalse;
}
}
publicvoidremoveBooking(Customerc){
if(this.booking.contains(c)){
this.booking.remove(c);
this.remainder=this.remainder+c.getTicketNumber();
}else{
thrownewIllegalArgumentException("Customernotfound.");
}
}
publicvoidremovePreBooking(Customerc){
if(this.preBooking.contains(c)){
this.preBooking.remove(c);
}else{
thrownewIllegalArgumentException("Customernotfound.");
}
}
publicStringtoString(){
returnthis.flightName+":"+this.flightNumber+":"
+this.dayOfWeek+":"+this.remainder;
}
}
---------------------------------
importjava.util.Calendar;importjava.util.Date;
importjava.util.LinkedList;importjava.util.List;
importjava.util.concurrent.TimeUnit;
publicclassMain{
privateListairLines=newLinkedList();
privatevoidinit(){
finalAirLineairLine1=newAirLine("beijing","flightName","flightNumber",Calendar.MONDAY,300);
this.airLines.add(airLine1);
//自己加新的airLine2,airLine3...
finalCustomercustomer1=newCustomer("Tom",2,AirClass.FIRST);
airLine1.addBooking(customer1);
//自己加新的customer2,customer3...
}
publicAirLinesearch(Stringdestination){
if(destination==null)returnnull;
finalintcurrenDayOfWeek=Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
AirLineres=null;
intdiffToCurrenDate=7;
for(AirLinea:airLines){
if(destination.equals(destination)){
if(res==null){
res=a;
continue;
}
intdiff=a.getDayOfWeek()-currenDayOfWeek;
if(diff
if(diff
diffToCurrenDate=diff;
res=a;
}
}
}
if(res==null){
System.out.println("Notfound");
}else{
System.out.println("日期"+newDate(System.currentTimeMillis()+TimeUnit.DAYS.toMillis(diffToCurrenDate))+":"+res.toString());
}
returnres;
}
publicvoidbooking(AirLinea,Customerc){
if(a.addBooking(c)){
System.out.println("订到了");
}else{
System.out.println("排队中");
}
}
publicvoidcancel(AirLinea,Customerc){
a.removeBooking(c);
for(Customerpre:a.getPreBooking()){
if(a.addBooking(pre)){
a.removePreBooking(pre);
System.out.println("排队的订到了");
break;
}else{
System.out.println("票余量不够当前面排队的人,下一个");
}
}
}
}