Question
PLZ FIX ERRORS IN CODE. IT MUST COMPILE IN JGRASP import javax.swing.JOptionPane; public class DCBusTours { // Constants private static final int MAX_NUM_BUS_TOURS = 15;
PLZ FIX ERRORS IN CODE. IT MUST COMPILE IN JGRASP
import javax.swing.JOptionPane;
public class DCBusTours {
// Constants
private static final int MAX_NUM_BUS_TOURS = 15;
private static final double TICKET_COST = 10.0;
// Fields
private BusTour[] busTours = new BusTour[MAX_NUM_BUS_TOURS];
private int numBusTours = 0;
// Menu options
private static final String CREATE_BUS_TOUR = "Create Bus Tour";
private static final String REMOVE_BUS_TOUR = "Remove Bus Tour";
private static final String SELL_TOUR_TICKET = "Sell Tour Ticket";
private static final String DISPLAY_BUS_TOURS = "Display Bus Tours";
private static final String EXIT = "Exit";
// Main method
public static void main(String[] args) {
DCBusTours app = new DCBusTours();
app.run();
}
// Helper methods
// Displays a menu and returns the user's choice
private String getMenuChoice() {
String[] options = {CREATE_BUS_TOUR, REMOVE_BUS_TOUR, SELL_TOUR_TICKET, DISPLAY_BUS_TOURS, EXIT};
return (String) JOptionPane.showInputDialog(null, "Choose an option:", "DC Bus Tours", JOptionPane.PLAIN_MESSAGE, null, options, options[0]);
}
// Displays an error message with the specified text
private void showError(String message) {
JOptionPane.showMessageDialog(null, message, "Error", JOptionPane.ERROR_MESSAGE);
}
// Creates a new bus tour
private void createBusTour() {
if (numBusTours >= MAX_NUM_BUS_TOURS) {
showError("Maximum number of bus tours reached.");
return;
}
String tourId = null;
String tourName = null;
double tourCost = 0.0;
// Get the tour ID
while (tourId == null) {
String input = JOptionPane.showInputDialog("Enter the Bus Tour Identifier:");
if (input == null) {
return; // User clicked Cancel
}
try {
tourId = validateTourId(input);
} catch (IllegalArgumentException e) {
showError(e.getMessage());
}
}
// Get the tour name
while (tourName == null) {
String input = JOptionPane.showInputDialog("Enter the Bus Tour Name:");
if (input == null) {
return; // User clicked Cancel
}
tourName = input.trim();
if (tourName.isEmpty()) {
showError("Bus Tour Name cannot be empty.");
tourName = null;
}
}
// Get the tour cost
while (tourCost <= 0.0) {
String input = JOptionPane.showInputDialog("Enter the General Ticket Cost:");
if (input == null) {
return; // User clicked Cancel
}
try {
tourCost = Double.parseDouble(input);
if (tourCost <= 0.0) {
throw new IllegalArgumentException("Ticket cost must be positive.");
}
} catch (NumberFormatException e) {
showError("Invalid ticket cost.");
} catch (IllegalArgumentException e) {
showError(e.getMessage());
}
}
// Create the new bus tour
BusTour newTour = new BusTour(tourId, tourName, tourCost);
busTours[numBusTours++] = newTour;
JOptionPane.showMessageDialog(null, "Bus Tour created successfully: " + newTour.toString(), "DC Bus Tours", JOptionPane.INFORMATION_MESSAGE);
}
// Removes an existing bus tour
private void removeBusTour() {
//If no bus tours have been created, display an error message and return
if (numBusTours == 0) {
JOptionPane.showMessageDialog(null, "No bus tours have been created yet.");
return;
}
// Create a list of the bus tours
String[] tourList = new String[numBusTours];
for (int i = 0; i < numBusTours; i++) {
tourList[i] = busTours[i].getId() + " - " + busTours[i].getName();
}
// Display a dialog box to select a bus tour to remove
String selectedTour = (String) JOptionPane.showInputDialog(
null,
"Select a bus tour to remove:",
"Remove Bus Tour",
JOptionPane.PLAIN_MESSAGE,
null,
tourList,
tourList[0]);
// If the user clicked cancel or closed the dialog box, return
if (selectedTour == null) {
return;
}
// Find the index of the selected bus tour in the array
int index = -1;
for (int i = 0; i < numBusTours; i++) {
if (tourList[i].equals(selectedTour)) {
index = i;
break;
}
}
// If the index is invalid, display an error message and return
if (index == -1) {
JOptionPane.showMessageDialog(null, "Invalid bus tour selected.");
return;
}
// Remove the selected bus tour from the array and decrement the number of bus tours
busTours[index] = null;
for (int i = index; i < numBusTours - 1; i++) {
busTours[i] = busTours[i + 1];
}
busTours[numBusTours - 1] = null;
numBusTours--;
// Display a success message
JOptionPane.showMessageDialog(null, "Bus tour successfully removed.");
}
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