Untitled
unknown
plain_text
a year ago
11 kB
8
Indexable
// @author imran
import java.util.InputMismatchException;
import java.util.Scanner;
import java.util.ArrayList;
import java.time.format.DateTimeFormatter;
import java.time.LocalDate;
public class ClassroomBookingApp {
// Create new Scanner object
private static final Scanner INPUT = new Scanner(System.in);
// Define the ArrayLists as static fields (so can be accessed by all methods instead of main method)
private static ArrayList<Classroom> classrooms = new ArrayList<>();
private static ArrayList<Lecturer> lecturers = new ArrayList<>();
private static ArrayList<Booking> bookings = new ArrayList<>();
// Display Main Menu
private static void printMainMenu() {
System.out.println("*".repeat(50));
System.out.println("Welcome to Classroom Booking Application");
System.out.println("*** Main Menu ***");
System.out.println("1. Manage Classrooms");
System.out.println("2. Manage Lecturers");
System.out.println("3. Manage Bookings");
System.out.println("4. Generate Reports");
System.out.println("0. Exit");
System.out.println("*".repeat(50));
}
// Display Classrooms Menu
private static void printClassroomsMenu() {
System.out.println("*".repeat(50));
System.out.println("Welcome to Classroom Booking Application");
System.out.println("*** Classrooms Menu ***");
System.out.println("1. Create Classroom");
System.out.println("2. Update Classroom");
System.out.println("3. Delete Classroom");
System.out.println("4. View All Classrooms");
System.out.println("5. Back to Main Menu");
System.out.println("*".repeat(50));
}
private static void printLecturersMenu() {
System.out.println("*".repeat(50));
System.out.println("Welcome to Classroom Booking Application");
System.out.println("*** Lecturers Menu ***");
System.out.println("1. Add Lecturer");
System.out.println("2. Edit Lecturer");
System.out.println("3. Remove Lecturer");
System.out.println("4. View All Lecturers");
System.out.println("5. Back to Main Menu");
System.out.println("*".repeat(50));
}
private static void printBookingsMenu() {
System.out.println("*".repeat(50));
System.out.println("Welcome to Classroom Booking Application");
System.out.println("*** Bookings Menu ***");
System.out.println("1. Make a Booking");
System.out.println("2. Cancel a Booking");
System.out.println("3. View All Bookings");
System.out.println("4. Back to Main Menu");
System.out.println("*".repeat(50));
}
private static void printReportsMenu() {
System.out.println("*".repeat(50));
System.out.println("Welcome to Classroom Booking Application");
System.out.println("*** Reports Menu ***");
System.out.println("1. Generate Bookings Report by Date");
System.out.println("2. Generate Bookings Report by Classroom");
System.out.println("3. Generate Bookings Report by Lecturer");
System.out.println("4. Generate Total Number of Bookings");
System.out.println("5. Back to Main Menu");
System.out.println("*".repeat(50));
}
// Get User's Menu Option Input
private static int getOptionInput() {
boolean validInput = false;
int menuOption = -1;
// First Prompt to Obtain Input
System.out.print("Please select an option to continue: ");
while (!validInput) {
try {
// Obtain Input
menuOption = INPUT.nextInt();
// Check Input Range
switch (menuOption) {
case 0:
case 1:
case 2:
case 3:
case 4:
break;
default:
System.out.println("Hey! You entered an invalid option!");
System.out.print("Please reselect a VALID option: ");
continue;
}
validInput = true;
// If Input Isn't Integer
} catch (InputMismatchException e) {
System.out.println("Hey! You entered an invalid option!");
INPUT.next(); // Clear Invalid Input
System.out.print("Please reselect a VALID option: ");
}
}
return menuOption; // Return Valid Input
}
private static void manageClassroomsMenu() { //Appendix C
boolean backToMainMenu = false;
while (!backToMainMenu) {
printClassroomsMenu(); //prints classroom menu
int choice = getOptionInput();
switch (choice) {
case 1:
createClassroom();
break;
case 2:
updateClassroom();
break;
case 3:
deleteClassroom();
break;
case 4:
viewAllClassrooms();
break;
case 5:
backToMainMenu = true;
break;
default:
System.out.println("Invalid option, please try again!");
}
}
}
private static void createClassroom() { //create classroom method
System.out.print("Enter classroom number: ");
int classroomNum = INPUT.nextInt();
INPUT.nextLine(); // this is required as the integer is read and the newline character remains in the buffer. ( not required for the strings input)
System.out.print("Enter classroom name: ");
String classroomName = INPUT.nextLine();
System.out.print("Enter classroom location: ");
String classroomLocation = INPUT.nextLine();
Classroom newRoom = new Classroom(classroomNum, classroomName, classroomLocation);
classrooms.add(newRoom);
System.out.println("New Classroom created");
}
private static void updateClassroom() { //update classroom method
System.out.print("Enter classroom number to update: ");
int classroomNum = INPUT.nextInt();
INPUT.nextLine();
Classroom roomToUpdate = null;
for (Classroom existingClassroom : classrooms) {
if (existingClassroom.getClassroomNumber() == classroomNum) {
roomToUpdate = existingClassroom;
break;
}
}
if (roomToUpdate == null) {
System.out.println("Error: Invalid classroom number!");
return;
}
System.out.print("Update classroom name: "); // get user input for new details
String newClassroomName = INPUT.nextLine();
System.out.print("Update classroom location: ");
String newClassroomLocation = INPUT.nextLine();
roomToUpdate.setClassroomName(newClassroomName); //updates the ClassroomName var created in Classroom file
roomToUpdate.setClassroomLocation(newClassroomLocation);
System.out.println("Classroom '" + classroomNum + "' updated!");
}
private static void deleteClassroom() { //delete classroom method
System.out.print("Enter classroom number: ");
int classroomNum = INPUT.nextInt();
INPUT.nextLine();
Classroom roomToDelete = null;
for (Classroom existingClassroom : classrooms) {
if (existingClassroom.getClassroomNumber() == classroomNum) {
roomToDelete = existingClassroom;
break;
}
}
if (roomToDelete == null) {
System.out.println("Error: classroom number '" + classroomNum + "' does not exist!");
} else {
classrooms.remove(roomToDelete); //remove method
System.out.println("Classroom '" + classroomNum + "' deleted!");
}
}
private static void viewAllClassrooms() {
if (classrooms.isEmpty()) { //helps to check if list is empty
System.out.println("No classrooms created.");
} else {
System.out.println("** Classroom List **");
for (Classroom viewClassroom : classrooms) {
System.out.println("Classroom Number: " + viewClassroom.getClassroomNumber() + ", Name: " + viewClassroom.getClassroomName() + ", Location: " + viewClassroom.getClassroomLocation());
}
}
}
private static void manageLecturersMenu() { //Appendix D
boolean backToMainMenu = false;
while (!backToMainMenu) {
printClassroomsMenu(); //prints classroom menu
int choice = getOptionInput();
switch (choice) {
case 1:
addLecturer();
break;
case 2:
editLecturer();
break;
case 3:
removeLecturer();
break;
case 4:
viewAllLecturers();
break;
case 5:
backToMainMenu = true;
break;
default:
System.out.println("Invalid option, please try again!");
}
}
}
private static void addLecturer() { //create lecturer method
System.out.print("Enter lecturer ID: ");
int lecturerId = INPUT.nextInt();
INPUT.nextLine();
System.out.print("Enter lecturer full name: ");
String fullName = INPUT.nextLine();
System.out.print("Enter lecturer contact number: ");
String contactNumber = INPUT.nextLine();
System.out.print("Enter lecturer email: ");
String emailAddress = INPUT.nextLine();
Lecturer newLecturer = new Lecturer(lecturerId, fullName, contactNumber, emailAddress);
lecturers.add(newLecturer);
System.out.println("New lecturer added!");
}
private static void editLecturer() { //edit lecturer method
}
// Main Method
public static void main(String[] args) {
// Display Main Menu
printMainMenu();
// Obtain Main Menu Option from User
int menuOption = getOptionInput();
switch (menuOption) {
case 1: // Manage Classrooms
manageClassroomsMenu();
break;
case 2: // Manage Lecturers
// manageLecturersMenu();
break;
case 3: // Manage Bookings
// manageBookingsMenu();
break;
case 4: // Generate Reports
// manageReportsMenu();
break;
case 0: // Exit
break;
}
}
}
Editor is loading...
Leave a Comment