public class Bus { privateStringname; privateintsize; privateintbasePrice; privateArrayListapprovedTrips; privateintlevel;// 1,2,3 for low,medium, high repectively; privateintid; privatestaticintnextId=0;

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

import java.util.ArrayList;

 

public class Bus {

privateStringname;

privateintsize;

privateintbasePrice;

privateArrayList<Trip>approvedTrips;

privateintlevel;// 1,2,3 for low,medium, high repectively;

privateintid;

privatestaticintnextId=0;

privateMinistrymny;

protectedStringtripTypes;

 

privateintgetNextId(){

returnnextId++;

}

 

publicBus(){

approvedTrips=newArrayList<Trip>();

}

 

publicBus(Stringname,intsize,intbasePrice,intlev,Ministrymny){

approvedTrips=newArrayList<Trip>();

this.name=name;

this.size=size;

this.basePrice=basePrice;

this.level=lev;

this.id=getNextId();

this.mny=mny;

tripTypes="BASICTRANSPORT";

 

}

 

publicbooleanavailable(Datedate){

booleanretval=true;

for(Tript:approvedTrips)

if(t.getDate().getDay()==date.getDay())

retval=false;

returnretval;

}

 

publicintgetBasePrice(){

returnbasePrice;

}

publicintgetId(){

returnid;

}

 

publicStringgetName(){

returnname;

}

 

publicdoublegetSize(){

returnsize;

}

 

publicStringtoString(){

returnname;

}

 

publicbooleanisSuitable(Stringtype){

returntripTypes.contains(type);

}

 

publicintgetEstimate(Stringtype,intnumPassengers,intcomfortLevel){

returnbasePrice;

}

 

publicbooleancanHold(intnumPassengers,intcomfortLevel){

intcapacity=(int)(size/mny.getSeparation(comfortLevel));

returnnumPassengers<=capacity;

 

}

 

 

 

publicvoidpromoteTrips(){

System.out.println();

System.out.println("TRIPS ON "+getName());

System.out.println("===================");

for(Tript:approvedTrips)

System.out.println(t);

 

}

 

publicintreserve(Triptrip,Ministrymny){

intretval=-1;

ApprovalRequestar=newApprovalRequest(trip,this);

intresult=mny.checkApproval(ar);

if(result>=0){

intest=getEstimate(trip.getType(),trip.getNumPeople(),trip.getComfortLevel());

if(trip.getPlanner().getBudget()>=getEstimate(trip.getType(),trip.getNumPeople(),trip.getComfortLevel())){

approvedTrips.add(trip);

trip.setBus(this);

retval=result;

}

}

returnretval;

 

 

 

}

 

 

 

 

 

THE SPORTBUS CLASS (15 marks)
The SportBus class is a specialized Bus.
It stores private integer data items that represent competitorArea and spectatorArea, as well as an
ArrayList of strings, each of which represent a sport for which the bus will be configured.
Methods of SportBus are as follows
1. SportBus(String name, int basePrice, int lev, Ministry mny,
 int competitorArea, int spectatorArea, String sportList)
 – initialize instance
-Set the size of the associated parent class is as the sum competitorArea+spectatorArea;
- append “ ,SPORT” to the protected tripTypes attribute of the superclass
- split the sportList into an array, then populate the list of sports from the array (Hint.
splitting a delimited string can be achieved using String.split())
2. double getCompetitorArea() – returns the area available for competitors
3. double getSpectatorArea() – returns the area available for spectators
4. int getBasePrice() – returns 3 * the base price of the superclass
5. int getEstimate(String type, int numPersons, int level) – returns an estimated cost to
run the trip. The cost is calculated as getBasePrice() * 10 * (competitorArea+spectatorArea)
/competitorArea.
THE TRAININGBUS CLASS(15 marks)
The TrainBus class is a specialized Bus.
It stores private integer data items that represent teacherArea, studentArea and wifiRange, as well
as an ArrayList of strings, each of which represent a course for which the bus will be configured.
Methods of TrainingBus are as follows
1. TrainingBus (String name, int basePrice, int wifiRange, int lev, Ministry mny,
 int teacherArea, int studentArea, String sportList)
 –initialize instance–
-Set the size of the associated parent class is as the sum teacherArea + studentArea;
- append “ ,TRAINING” to the protected tripTypes attribute of the superclass
- split the sportList into an array, then populate the list of sports from the array (Hint.
Splitting a delimited string can be achieved using String.split())
2. double getTeacherArea() – returns the area available for teachers
3. double getStudentArea() – returns the area available for students
4. int getBasePrice() – returns 2 * the base price of the superclass
5. int getEstimate(String type, int numPersons, int level) – returns the 5 x teacherArea x
the getEstimate method of the superclass, divided by the number of courses managed

 

THE PARTYBUS CLASS(40 marks)
Some persons were concerned over whether a ministry should be getting involved with an activity
that could be considered non-productive. To appease detractors, the ministry came up with a
solution that every party should have a purpose. The effect on your implementation is that your
PartyBus will be EITHER a specialized SportBus 
1. If the first letter of your surname is M or smaller, a PartyBus is a specialized SportBus.

 

The PartyBus has attributes that represent a barArea, a foodArea and a securityCrew. It’ s
constructor initializes the instance, and appends “, PARTY” the protected tripTypes attribute. The
PartyBus overloads the getEstimate method. Again, the ministry seeks to assess various models.
Your calculation for the getEstimate

formula: foodArea x superclass getEstimate(type, numPersons, level)/(3 x barArea)

Expert Solution
steps

Step by step

Solved in 4 steps

Blurred answer
Knowledge Booster
Unreferenced Objects
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education