Question
Create a BusRoute class that uses the Bus and Time class. This class will represent a bus route between two bus stations, using a specific
Create a BusRoute class that uses the Bus and Time class. This class will represent a bus route between two bus stations, using a specific Bus, and departing at a specific Time. It should contain a constructor, 7 instance variables (bus, bus number, cost, departure, duration, source, destination), and 9 methods (see below).
overloaded constructor: Creates a BusRoute object that is setup up with a Bus, a bus number, a cost, a departure Time, a duration time, a source BusStation, and a destination BusStation.
getBus(): Returns the Bus that operates this bn rusoute.
getNumber(): Returns the bus number as a String.
getCost(): Returns the bus route cost.
getDestination(): Returns the destination BusStation.
getDeparture(): Returns the departure Time.
getArrival(): Returns a Time object with the arrival time (computed from the departure time and duration). getSource(): Returns a Bus Station object for the departure location.
toOverviewString(): Returns a String representing an overview of the bus route. Use NumberFormat to display the price. See the sample output for an example.
toDetailedString(): Returns a String representing the bus route's detailed information. See the sample output for an example.
SAMPLE OUTPUT txt _____
==testBusType()== t1: Greyhound t2 == t3: false t2 == t4: true ==testBusStation()== s1: PHX s2 == s3: false s2 == s4: false s1: Phoenix s3: Las Vegas s5: San Francisco ==testBus()== BoltBus BoltBus * Megabus * ==testTime()== 12:05AM 1:15AM 2:45AM 10:05AM 11:15AM 12:45PM 1:05PM 10:15PM 11:45PM t1: 12:00AM t2: 9:00AM t2: 10:15AM t2: 1:16PM t2: 3:16PM t3: 1:15AM t4: 2:15AM t3 < t4: true t4 < t3: false t2 < t4: false t4 < t2: true t2 < t2: false t2 > t4: true t4 > t2: false t4 > t4: false t2 = t4: false t4 = t4: true t4 = 2:15AM: true ==testBusRoute()== 10:50AM - 2:40PM Phoenix (PHX) - Unknown City (YUM) Greyhound 594
$45.00 10:50AM - 2:40PM 3h:50m Greyhound PHX-YUM
5:50PM - 6:16AM San Diego (SAN) - San Francisco (SFO) BoltBus 201
$65.00 5:50PM - 6:16AM 12h:26m BoltBus SAN-SFO
DRIVER FILE_____
/** * * @author (Spencer Greer), Barnai */ public class Driver { public static void main(String[] args) { //Please note that these tests are not comprehensive. testBusType(); testBusStation(); testBus(); testTime(); //testBusRoute(); } public static void testBusType() { System.out.println("==testBusType()=="); //Test 1: create enum variables BusType t1 = BusType.Greyhound; BusType t2 = BusType.BoltBus; BusType t3 = BusType.Megabus; BusType t4 = BusType.BoltBus; //Test 2: display and compare variables System.out.println("t1: " + t1); System.out.println("t2 == t3: " + (t1 == t2)); System.out.println("t2 == t4: " + (t2 == t4)); } public static void testBusStation() { System.out.println("==testBusStation()=="); //Test 1: create enum variables BusStation s1 = BusStation.PHX; BusStation s2 = BusStation.LAX; BusStation s3 = BusStation.LVS; BusStation s4 = BusStation.SAN; BusStation s5 = BusStation.SFO; //Test 2: display and compare variables System.out.println("s1: " + s1); System.out.println("s2 == s3: " + (s1 == s2)); System.out.println("s2 == s4: " + (s2 == s4)); System.out.println("s1: " + BusStation.getBusStationCity(s1)); System.out.println("s3: " + BusStation.getBusStationCity(s3)); System.out.println("s5: " + BusStation.getBusStationCity(s5)); } public static void testBus() { System.out.println("==testBus()=="); //Test 1: create bus objects Bus b1 = new Bus(BusType.BoltBus); Bus b2 = new Bus(BusType.Megabus); //Test 2: display bus information. System.out.println(b1.getBusType()); System.out.println(b1); System.out.println(b2); } public static void testTime() { System.out.println("==testTime()=="); //Test 1: use default constructor. Time t1 = new Time(); //Test 2: use overloaded constructor. Time t2 = new Time(9, 0); Time t3 = new Time(1, 15); //Test 3: use clone operation. Time t4 = t3.getCopy(); //Test 4: run toString on AM times. System.out.println(new Time(0, 5)); System.out.println(new Time(1, 15)); System.out.println(new Time(2, 45)); System.out.println(new Time(10, 5)); System.out.println(new Time(11, 15)); //Test 5: run toString on PM times. System.out.println(new Time(12, 45)); System.out.println(new Time(13, 5)); System.out.println(new Time(22, 15)); System.out.println(new Time(23, 45)); //Test 6: run toString on object from default constructor. System.out.println("t1: " + t1); //Test 7: testing addTime operation System.out.println("t2: " + t2); t2.addTime(t3); System.out.println("t2: " + t2); //Test 8: testing addMinutes operation t2.addMinute(181); System.out.println("t2: " + t2); //Test 9: testing8 addHours operation t2.addHours(2); System.out.println("t2: " + t2); //Test 10: testing cloned copy. t4.addHours(1); System.out.println("t3: " + t3);//original System.out.println("t4: " + t4);//clone //Test 11: testing isEarlierThan. System.out.println("t3 < t4: " + t3.isEarlierThan(t4)); System.out.println("t4 < t3: " + t4.isEarlierThan(t3)); System.out.println("t2 < t4: " + t2.isEarlierThan(t4)); System.out.println("t4 < t2: " + t4.isEarlierThan(t2)); System.out.println("t2 < t2: " + t2.isEarlierThan(t2)); //Test 12: testing isLaterThan. System.out.println("t2 > t4: " + t2.isLaterThan(t4)); System.out.println("t4 > t2: " + t4.isLaterThan(t2)); System.out.println("t4 > t4: " + t4.isLaterThan(t4)); //Test 13: testing isSameTime. System.out.println("t2 = t4: " + t2.isSameTime(t4)); System.out.println("t4 = t4: " + t4.isSameTime(t4)); System.out.println("t4 = 2:15AM: " + t4.isSameTime(new Time(2, 15))); } public static void testBusRoute() { System.out.println("==testBusRoute()=="); // SEE BusRouteManager.java!!!
/* //Test 1: create bus routes using different settings BusRoute r1 = new BusRoute(new Bus(BusType.Greyhound), "594", 45, new Time(10, 50), 230, BusStation.PHX, BusStation.YUM); BusRoute r2 = new BusRoute(new Bus(BusType.Megabus), "205", 46, new Time(11, 5), 360, BusStation.LAX, BusStation.LVS); BusRoute r3 = new BusRoute(new Bus(BusType.Greyhound), "135", 75, new Time(8, 20), 440, BusStation.PHX, BusStation.SAN); BusRoute r4 =new BusRoute(new Bus(BusType.BoltBus), "228", 50, new Time(7, 10), 192, BusStation.SAN, BusStation.LAX); BusRoute r5 = new BusRoute(new Bus(BusType.BoltBus), "201", 65, new Time(17, 50), 746, BusStation.SAN, BusStation.SFO); System.out.println(r1.toDetailedString()); System.out.println(); System.out.println(r1.toOverviewString()); System.out.println(); System.out.println(); System.out.println(r5.toDetailedString()); System.out.println(); System.out.println(r5.toOverviewString()); */
} }
BUS_____
public class Bus{ private BusType bustype; public Bus(BusType bustype){ this.bustype=bustype; } public BusType getBusType(){ return bustype; }
public String toString(){ return bustype + "*"; }
}
TIME______
class Time{ int timeMinute; int timeHour;
public Time() { timeMinute=0; timeHour=0; }
public Time (int hh, int mm){ timeMinute = mm; timeHour = hh; }
public int getHour() { return timeHour; }
public int getMinute() { return timeMinute; } public void addHours(int aHrs) { timeHour = timeHour+aHrs; } public void addMinute(int aMts) { timeMinute=timeMinute+aMts; if (timeMinute>59) { addHours(1); timeMinute= timeMinute-60; } } public void addTime(Time t2) { addHours(t2.getHour()); addMinute(t2.getMinute()); }
public Time getCopy() { return new Time(this.getMinute(), this.getHour()); } public boolean isEarlierThan(Time t2) { if(this.getHour()>t2.getHour()) return true; return false; }
public boolean isSameTime(Time t2) { if((this.getHour()==t2.getHour())&&(this.getMinute()==t2.getMinute())) return true; return false; } public boolean isLaterThan(Time t2) { if(this.getHour() public String toString() { String tt=""; if(timeMinute<10) tt="0"; if(timeHour==0) return "12: " + tt + timeMinute+ "AM"; else if(timeHour<12) return timeHour+ ":" + tt + timeMinute + "AM"; else if(timeHour ==12) return timeHour+ ":" + tt + timeMinute + "PM"; return(timeHour-12)+ ":" + tt + timeMinute + "PM"; } } Only stuck on the busroute file. Thank you!
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started