Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

The following program has 2 issues I need fixed 1. When the program asks the use

ID: 3682969 • Letter: T

Question

The following program has 2 issues I need fixed

1. When the program asks the user if they want to reserve the seat y/n, if the user types anything besides y/n it does not throw an error message saying "Invalid iput. Please enter y/n."

2. If the user enters a seat above row 9 such as 10 A the out currently prints that invalid seat number twice then the error message stating "This is not a valid choice" etc. I want the program NOT to print the seat number in this case and ONLY print the error message.

import java.util.Scanner;

public class Seat {
static char[][] seats = new char[9][4];
static String[][] userNames = new String[9][4];

public static void main(String[] args) {
  
Scanner read = new Scanner(System.in);
for (int i = 0; i < 9; ++i) {
for (int j = 0; j < 4; ++j) {
seats[i][j] = (char) (j + 'A');
}
}
  
printSeatChart();

while (!isFull()) {
boolean validSeat = false;
int row = -1, col = -1;
String seatNumber = null;
String ro="";
while (!validSeat) {
System.out.print("Enter seat number: ");
seatNumber = read.nextLine().toUpperCase(); //convert to upper case
System.out.println(seatNumber);
int length = seatNumber.length(); // find length of string
  
if(length>2) {
ro = ro + seatNumber.charAt(0);
ro = ro + seatNumber.charAt(1);
row = Integer.parseInt(ro);
col = seatNumber.charAt(2) - 'A';
System.out.println(row);
} else {
row = seatNumber.charAt(0) - '0' - 1;
col = seatNumber.charAt(1) - 'A';
}

if(row >= 10 || col > 3) {
System.out.println("That is not valid choice! Please enter a different seat.");
}else if (seats[row][col] == 'X') {
System.out.format("Seat number: %s cannot be reserved. Please select a different seat. ",
seatNumber);
} else validSeat = true;
}
System.out.format("Would you like to reserve %s? Y/N: ", seatNumber);
char userChoice = read.nextLine().toLowerCase().charAt(0);
if (userChoice == 'y') {
System.out.print("Enter your name: ");
String userName = read.nextLine();
userNames[row][col] = userName;
seats[row][col] = 'X';
System.out.format("Reservation of seat number: %s to: %s was successful. ",
seatNumber, userName);
printSeatChart();
}
  
}

System.out.println("We are sorry, there are no more seats available.");
}

private static void printSeatChart() {
for (int i = 0; i < 9; ++i) {
System.out.format("%d %c %c %c %c ",
(i + 1), seats[i][0], seats[i][1], seats[i][2], seats[i][3]);
}
}

private static boolean isFull() {
for (int i = 0; i < 9; ++i) {
for (int j = 0; j < 4; ++j) {
if (seats[i][j] != 'X') return false;
}
}
return true;
}
}

Explanation / Answer

Seat.java

//Auther chegg expert
//please enter seat no are 1a,1b,1c,1d //1st row seats
//please enter seat no are 2a,2b,2c,2d//2th row seats
//please enter seat no are 3a,3b,3c,3d//3th row seats
//please enter seat no are 4a,4b,4c,4d//4th row seats
//please enter seat no are 5a,5b,5c,5d//5th row seats
//please enter seat no are 6a,6b,6c,6d//6th row seats
//please enter seat no are 7a,7b,7c,7d//7th row seats
//please enter seat no are 8a,8b,8c,8d//8th row seats
import java.util.Scanner;
public class Seat {
static char[][] seats = new char[9][4];//seats have 9 rows and 4 columns
static String[][] userNames = new String[9][4];//usernames reservered canditates

public static void main(String[] args) {

Scanner read = new Scanner(System.in);
for (int i = 0; i < 9; ++i) {
for (int j = 0; j < 4; ++j) {
seats[i][j] = (char) (j + 'A');//displaying seats names either A,B,C,D
  
}
}

printSeatChart();//callingmethod
while (!isFull()) {
boolean validSeat = false;
int row = -1, col = -1;
String seatNumber = null;
String ro="";
while (!validSeat) {
System.out.print("Enter seat number: ");//enter 1a ,1,b,1c,1d,or2a etc
seatNumber = read.nextLine().toUpperCase(); //convert to upper case
  
int length = seatNumber.length(); // find length of string

if(length>2) {
ro = ro + seatNumber.charAt(0);
ro = ro + seatNumber.charAt(1);
row = Integer.parseInt(ro);
col = seatNumber.charAt(2) - 'A';

} else {

row = seatNumber.charAt(0) - '0' - 1;
col = seatNumber.charAt(1) - 'A';

}

if(row >= 10 || col > 3) {
System.out.println("That is not valid choice! Please enter a different seat.");
}else if (seats[row][col] == 'X') {
System.out.format("Seat number: %s cannot be reserved. Please select a different seat. ",
seatNumber);
} else validSeat = true;
}
System.out.format("Would you like to reserve %s? Y/N: ", seatNumber);
char userChoice = read.nextLine().toLowerCase().charAt(0);
if (userChoice == 'y') {
System.out.print("Enter your name: ");
String userName = read.nextLine();
userNames[row][col] = userName;
seats[row][col] = 'X';
System.out.format("Reservation of seat number: %s to: %s was successful. ",
seatNumber, userName);
printSeatChart();
}

}
System.out.println("We are sorry, there are no more seats available.");
}
private static void printSeatChart() {//method definition
for (int i = 0; i < 9; ++i) {
System.out.format("%d %c %c %c %c ",
(i + 1), seats[i][0], seats[i][1], seats[i][2], seats[i][3]);
}
}
private static boolean isFull() {
for (int i = 0; i < 9; ++i) {
for (int j = 0; j < 4; ++j) {
if (seats[i][j] != 'X') return false;
}
}
return true;
}
}

output

run:
1 A B C D
2 A B C D
3 A B C D
4 A B C D
5 A B C D
6 A B C D
7 A B C D
8 A B C D
9 A B C D
Enter seat number: 1a
Would you like to reserve 1A? Y/N: y
Enter your name: miky
Reservation of seat number: 1A to: miky was successful.
1 X B C D
2 A B C D
3 A B C D
4 A B C D
5 A B C D
6 A B C D
7 A B C D
8 A B C D
9 A B C D
Enter seat number: 1b
Would you like to reserve 1B? Y/N: y
Enter your name: lovley
Reservation of seat number: 1B to: lovley was successful.
1 X X C D
2 A B C D
3 A B C D
4 A B C D
5 A B C D
6 A B C D
7 A B C D
8 A B C D
9 A B C D
Enter seat number: 1b
Seat number: 1B cannot be reserved. Please select a different seat.
Enter seat number: 1z
That is not valid choice! Please enter a different seat.
Enter seat number: 1c
Would you like to reserve 1C? Y/N: y
Enter your name: kalpana
Reservation of seat number: 1C to: kalpana was successful.
1 X X X D
2 A B C D
3 A B C D
4 A B C D
5 A B C D
6 A B C D
7 A B C D
8 A B C D
9 A B C D
Enter seat number: 1d
Would you like to reserve 1D? Y/N: y
Enter your name: rams
Reservation of seat number: 1D to: rams was successful.
1 X X X X
2 A B C D
3 A B C D
4 A B C D
5 A B C D
6 A B C D
7 A B C D
8 A B C D
9 A B C D
Enter seat number: 1a
Seat number: 1A cannot be reserved. Please select a different seat.
Enter seat number: 1b
Seat number: 1B cannot be reserved. Please select a different seat.
Enter seat number: 1c
Seat number: 1C cannot be reserved. Please select a different seat.
Enter seat number: 1d
Seat number: 1D cannot be reserved. Please select a different seat.
Enter seat number: 1e
That is not valid choice! Please enter a different seat.
Enter seat number: 2a
Would you like to reserve 2A? Y/N: y
Enter your name: nani
Reservation of seat number: 2A to: nani was successful.
1 X X X X
2 X B C D
3 A B C D
4 A B C D
5 A B C D
6 A B C D
7 A B C D
8 A B C D
9 A B C D
Enter seat number: