英方软件开发面向对象编程第一个作业.docx
- 文档编号:27998511
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:23
- 大小:30.98KB
英方软件开发面向对象编程第一个作业.docx
《英方软件开发面向对象编程第一个作业.docx》由会员分享,可在线阅读,更多相关《英方软件开发面向对象编程第一个作业.docx(23页珍藏版)》请在冰豆网上搜索。
英方软件开发面向对象编程第一个作业
Assessmenttask
1
Outcome(s)covered
1and2
Useprogrammingtechniquestodevelopprogrammodules
Implementasolutionfromadesign
Assessmenttaskinstructions
Thisassessmentisopenbook.
Assessorsareentitledtoensurethemselvesthatworksubmittedisyourown.
Fromthefollowingscenario,youarerequiredtoimplementasolutionusingthesupplied
design(ThiscouldbetheworkyouproducedintheComputing:
PlanningUnit).Youare
requiredtosubmitsourcecodelistingsforeachclass.Yoursolutionshouldinclude
appropriateerrorhandlingandinternaldocumentation.
Note-TestingofindividualclassescanbecarriedoutatthisstageaspartofAssessment
Task3.
ScotiaAirlines
ScotiaAirlinesisanewbudgetairlineoperatingbetweenGlasgowAirportandtheWesternIsles.
Itoperatestwo24-seaterlightpassengeraircraftandrequiresaflightbookingsystem.
BecauseScotiaofferslowcostairtravel,thereisaneedtotreateachflightassinglecostcentre
andtobeabletoascertain,atanymoment,theamountofthecashtakenforthatflight.
Reservationsandbookingscannotbemadeuntiltheflightdetailshavebeenfinalised(flight
number,departureandarrivalairports).Aseatonaflightisconsideredbookedwhenpaymentas
beenreceivedforit.Whenareservationisconfirmed(changedtobooked),thepassengernameis
checkedagainsttheoriginalreservation.
Aflightcanbeinanyofthefollowingstates:
♦availableforbookings
♦checkingin
♦boarding
♦closed
Whenaflightischeckingin,cancellationsandbookingscanbemadebutreservationscannot.No
furtherreservationsorbookingscanbemadeifaflightisboardingorclosed.Aflightcanbe
closedautomaticallybythesystemifitisfullorbyauseronreceivingatelephonecallfromthe
dutymanager(e.g.whenitisreadyfortakeoff).Usersofthesystem,therefore,havetobeableto
viewaseatingplanoftheaircraftdetailingfree,reservedandbookedseats.Thereisalsoa
requirementtoviewinformationonaparticularseat(e.g.status,passengername,typeof
passenger,amountpaidfortheseat).
Thereisanorefundpolicyonbookedseats.Thismeansthataseatcanbere-soldandanew
ticketissued,makingextrarevenueintheprocess.
Thecompanycurrentlyoperatesadiscountscheme.WesternIslesresidentsgeta10%discount.
Scotiaalsorecordstheislandofresidenceofthesepassengersformarketingpurposes.Business
travellersgeta25%discountandmustsupplytheircompanyname.Ordinarypassengersdonot
normallyreceiveadiscountunlessitispartofacurrentpromotion,inwhichcasetheyreceivea
5%discount.
SeatingPlan
PROGRAMCODELISTING
UserInterface
/*Thisclassservesasacontainerforallthemenus/submenusintheScotiaAirlinesbookingsystem.*/
importjava.awt.*;
classMainMenuextendsFrame{
CheckboxGroupcg=newCheckboxGroup();
Labelt1=newLabel("ScotiaAirlines--MainMenu");
Checkboxt3=newCheckbox("1.Flightadministration",cg,false);
Checkboxt4=newCheckbox("2.BookingMenu",cg,false);
Checkboxt5=newCheckbox("3.Ticketing",cg,false);
Checkboxt6=newCheckbox("4.Displayingflightdetails",cg,false);
ButtonbtnE=newButton("E.Exit");
publicMainMenu(Strings)
{super(s);setLayout(newFlowLayout());
add(t1);add(t3);add(t4);add(t5);add(t6);add(btnE);}
publicstaticvoidmain(Stringargs[])
{MainMenuq=newMainMenu("ScotiaAirlines");
q.resize(300,250);
q.show();}}
importjava.awt.*;
classAdminMenuextendsFrame{
CheckboxGroupcg=newCheckboxGroup();
Labelr1=newLabel("ScotiaAirlines--AdminMenu");
Checkboxr2=newCheckbox("1.Addflightdetails",cg,false);
Checkboxr3=newCheckbox("2.Updateflightstatus",cg,false);
Checkboxr4=newCheckbox("R.ReturntoMainMenu",cg,false);
publicAdminMenu(Strings)
{super(s);setLayout(newFlowLayout());add(r1);add(r2);add(r3);add(r4);}
publicstaticvoidmain(Stringargs[])
{AdminMenur=newAdminMenu("PlaneAdmin");
r.resize(250,300);
r.show();}
}
classBookingsMenuextendsFrame{
CheckboxGroupcg=newCheckboxGroup();
Labelr1=newLabel("ScotiaAirlines--Booking");
Checkboxr2=newCheckbox("1.Cancelareservationorbooking",cg,false);
Checkboxr3=newCheckbox("2.Reserveaseat",cg,false);
Checkboxr4=newCheckbox("3.Bookaseat",cg,false);
Checkboxr5=newCheckbox("R.ReturntoMainMenu",cg,false);
publicBookingsMenu(Strings)
{super(s);setLayout(newFlowLayout());
add(r1);add(r2);add(r3);add(r4);}
publicstaticvoidmain(Stringargs[])
{BookingsMenur=newBookingsMenu("Booking");
r.resize(250,300);r.show();}
}
classStatusextendsFrame{
CheckboxGroupcg=newCheckboxGroup();
Labelr1=newLabel("ScotiaAirlines--PlaneStatus");
Checkboxr2=newCheckbox("1.Checkingin",cg,false);
Checkboxr3=newCheckbox("2.Boarding",cg,false);
Checkboxr4=newCheckbox("3.Flightclosed",cg,false);
Checkboxr5=newCheckbox("R.ReturntoFlightAdminMenu",cg,false);
publicStatus(Strings)
{super(s);setLayout(newFlowLayout());
add(r1);add(r2);add(r3);add(r4);add(r5);}
publicstaticvoidmain(Stringargs[])
{Statusr=newStatus("PlaneStatus");
r.resize(250,300);
r.show();}
}
classFlightsextendsFrame{
CheckboxGroupcg=newCheckboxGroup();
Labelr1=newLabel("ScotiaAirlines--Plights");
Checkboxr2=newCheckbox("1.SA1GlasgowtoBenbecula",cg,false);
Checkboxr3=newCheckbox("2.SA2BarratoGlasgow",cg,false);
Checkboxr4=newCheckbox("3.SA3GlasgowtoStorn",cg,false);
Checkboxr5=newCheckbox("4.SA4GlasgowtoBarra",cg,false);
Checkboxr6=newCheckbox("5.SA5StornowaytoGlasgow",cg,false);
Checkboxr7=newCheckbox("R.ReturntoFlightAdminMenu",cg,false);
publicFlights(Strings)
{super(s);setLayout(newFlowLayout());
add(r1);add(r2);add(r3);add(r4);add(r5);add(r6);add(r7);}
publicstaticvoidmain(Stringargs[])
{Flightsr=newFlights("Flights");
r.resize(250,300);
r.show();}
}
}//endUserInterface
ScotiaAirlinesMain
packagesrc;
publicclassScotiaAirlines{
privatestaticInputUnitiu=newInputUnit();
privatestaticMainInterfacemi=newMainInterface();
privatestaticcharch;
privatestaticPlaneflight=newPlane(6,4);
publicstaticvoidmain(Stringargs[]){
charstatus;StringFileName;
FileName=iu.getString("PleaseinputtheFileNameofflight");
if(FileName.length()!
=0)
flight.LoadIn(FileName);
do{mi.MainMenu();
ch=Character.toUpperCase(iu.getChar("Pleaseselect---"));
if(ch=='1'){FlightAdmin();}
elseif(ch=='2'){Booking();}
elseif(ch=='3')
{flight.ShowSeat(iu.getString("Enternumberoftheseat---"));}
elseif(ch=='4'){flight.ShowFlightInfor();flight.ShowSeatPlan();}
elseSystem.out.println("Thechoicewasinvalid.Pleasetryagain!
");
}while(ch!
='E');
FileName=iu.getString("ItoutputtheFileNameofflight);
if(FileName.length()!
=0)
flight.saveToFile(FileName+".txt");
elseflight.saveToFile(flight.getDate()+".txt");
}
privatestaticvoidFlightAdmin(){
do{mi.AdminMenu();
ch=iu.getChar("Pleaseselect---");
switch(ch)
{case'1':
EnterDetails();break;
case'2':
ChangeStatus();break;}
}while(ch!
='E');}
privatestaticvoidEnterDetails(){
StringflightStr;
do{mi.Flights();
ch=Character.toUpperCase(IO.getChar("Selectplease->"));
switch(ch){
case'1':
flight.setFlightDetails("SA1","GLA","BEB");break;
case'2':
flight.setFlightDetails("SA2","BRR","GLA");break;
case'3':
flight.setFlightDetails("SA3","GLA","BRR");break;
case'4':
flight.setFlightDetails("SA4","BEB","GLA");break;
case'5':
flight.setFlightDetails("SA5","SYY","GLA");break;}
}while(ch!
='E');}
privatestaticvoidChangeStatus(){
do{mi.StatusMenu();
ch=Character.toUpperCase(iu.getChar("PleaseSelect---"));
if(ch!
='E')
flight.setFlightStatus(ch);
}while(ch!
='E');}
privatestaticvoidBooking(){
if(flight.getFlightNumber()==null){
System.out.println("Theplandetailshavenotbeenfinalised!
");}
else{do{mi.BookingsMenu();
if(flight.getFreeSeats()==0)
flight.setFlightStatus('3');
ch=Character.toUpperCase(iu.getChar("PleaseSelect-----"));
switch(ch){
case'1':
if(!
(flight.isB()||flight.isC()))
{flight.UpdateSeatInfor(iu.getString("Entertheseatnumber(cancel)-----"),"",0);
flight.setFlightStatus('1');}
elseSystem.out.println("Youcann'tcancelreservationorbooknow"
+flight.getStatusMessage());break;
case'2':
if(!
(flight.isCI()||flight.isB()||flight.isC()||flight.isFull())){
flight.UpdateSeatInfor(iu.getString("Entertheseatnumber(reserve)-----"),
iu.getString("Enterthenameofpassenger-----"),1);}
elseSystem.out.println("Reservationsnotavailablein"+flight.getStatusMessage());break;
case'3':
if(!
(flight.isB()||flight.isC()||flight.isFull())){
flight.UpdateSeatInfor(iu.getString("Inputthenumberofseatyouwanttoreserve-----"),
iu.getString("Enterthenameofpassenger-------"),2);}
elseSystem.out.println("Reservationsnotavailablein"
+flight.getStatusMessage());break;}
}while(ch!
='E');}}
}//endofScotiaAirlines
Flight
importjava.io.*;
importjava.util.*;
importjava.util.Date;
importjava.text.DecimalFormat;
importjava.text.SimpleDateFormat;
publicclassFlight
{privateSeatseats[];
privateStringflightNumber;
privateStringdeparture;
privateStringarrival;
privateStringdate;
privatebooleancheckingIn=false;
privatebooleanboarding=false;
privatebooleanclosed=false;
privatebooleanfull=false;
privateStringstatusMessage="Seatsavailable";;
privateintfreeSeats;
privateintreservedSeats;
privateintbookedSeats;
privateintrows;
privateintc;
//----------co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 英方 软件 开发 面向 对象 编程 第一 作业