18.6k views
0 votes
1) In a single statement, declare and initialize a reference variable called mySeats for an ArrayList of Seat objects.

2) Add a new element of type Seat to an ArrayList called trainSeats.
3) Use method chaining to get the element at index 0 in ArrayList trainSeats and make a reservation for John Smith, who paid $44.
SeatReservation.java
import java.util.ArrayList;
import java.util.Scanner;
public class SeatReservation {
/*** Methods for ArrayList of Seat objects ***/
public static void makeSeatsEmpty(ArrayList seats) {
int i;
for (i = 0; i < seats.size(); ++i) {
seats.get(i).makeEmpty();
}
}
public static void printSeats(ArrayList seats) {
int i;
for (i = 0; i < seats.size(); ++i) {
System.out.print(i + ": ");
seats.get(i).print();
}
}
public static void addSeats(ArrayList seats, int numSeats) {
int i;
for (i = 0; i < numSeats; ++i) {
seats.add(new Seat());
}
}
/*** End methods for ArrayList of Seat objects ***/
public static void main (String [] args) {
Scanner scnr = new Scanner(System.in);
String usrInput;
String firstName, lastName;
int amountPaid;
int seatNumber;
Seat newSeat;
ArrayList allSeats = new ArrayList();
usrInput = "";
// Add 5 seat objects to ArrayList
addSeats(allSeats, 5);
// Make all seats empty
makeSeatsEmpty(allSeats);
while (!usrInput.equals("q")) {
System.out.println();
System.out.println("Enter command (p/r/q): ");
usrInput = scnr.next();
if (usrInput.equals("p")) { // Print seats
printSeats(allSeats);
}
else if (usrInput.equals("r")) { // Reserve seat
System.out.println("Enter seat num: ");
seatNumber = scnr.nextInt();
if ( !(allSeats.get(seatNumber).isEmpty()) ) {
System.out.println("Seat not empty.");
}
else {
System.out.println("Enter first name: ");
firstName = scnr.next();
System.out.println("Enter last name: ");
lastName = scnr.next();
System.out.println("Enter amount paid: ");
amountPaid = scnr.nextInt();
newSeat = new Seat(); // Create new Seat object
newSeat.reserve(firstName, lastName, amountPaid); // Set fields
allSeats.set(seatNumber, newSeat); // Add new object to ArrayList
System.out.println("Completed.");
}
}
// FIXME: Add option to delete reservations
else if (usrInput.equals("q")) { // Quit
System.out.println("Quitting.");
}
else {
System.out.println("Invalid command.");
}
}
}
}
Seat.java:
public class Seat {
private String firstName;
private String lastName;
private int amountPaid;
// Method to initialize Seat fields
public void reserve(String resFirstName, String resLastName, int resAmountPaid) {
firstName = resFirstName;
lastName = resLastName;
amountPaid = resAmountPaid;
}
// Method to empty a Seat
public void makeEmpty() {
firstName = "empty";
lastName = "empty";
amountPaid = 0;
}
// Method to check if Seat is empty
public boolean isEmpty() {
return (firstName.equals("empty"));
}
// Method to print Seat fields
public void print() {
System.out.print(firstName + " ");
System.out.print(lastName + " ");
System.out.println("Paid: " + amountPaid);
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public int getAmountPaid() {
return amountPaid;
}
}

User Ofer Segev
by
8.3k points

1 Answer

1 vote

Answer:

ArrayList<Seat> mySeats = new ArrayList<>();

trainSeats.add(new Seat());

trainSeats.get(0).reserve("John", "Smith", 44);

Step-by-step explanation:

ArrayList<Seat> mySeats = new ArrayList<>();

This declares a reference variable called mySeats for an ArrayList of Seat objects and initializes it as an empty list.

trainSeats.add(new Seat());

This adds a new element of type Seat to an ArrayList called trainSeats. The new Seat object is created using the default constructor.

trainSeats.get(0).reserve("John", "Smith", 44);

This uses method chaining to get the element at index 0 in ArrayList trainSeats and call the reserve method on it with arguments "John", "Smith", and 44. This makes a reservation for John Smith, who paid $44.

User KenEucker
by
8.1k points