diff --git a/src/main/java/org/codedifferently/Appointments.java b/src/main/java/org/codedifferently/Appointments.java new file mode 100644 index 0000000..97ae89a --- /dev/null +++ b/src/main/java/org/codedifferently/Appointments.java @@ -0,0 +1,124 @@ +package org.codedifferently; + +import java.util.ArrayList; +import java.util.Scanner; + +public class Appointments { + + private ArrayList schedule = new ArrayList<>(); + private ArrayList waitlist = new ArrayList<>(); + private final String gymName = "H2J GYM"; + + // Example daily time slots + private String[] timeSlots = {"9AM", "10AM", "11AM", "12PM", "1PM", "2PM", "3PM", "4PM", "5PM"}; + + // Handle appointment menu + public void handleAppointments(Scanner scanner) { + System.out.print("Would you like to make an appointment at " + gymName + "? (yes/no): "); + String choice = scanner.nextLine(); + + if (choice.equalsIgnoreCase("no")) { + System.out.println("Ok, have a great day at " + gymName + "!"); + return; + } + + boolean answer = true; + while (answer) { + System.out.println("\n--- " + gymName + " Appointment Menu ---"); + System.out.println("1. Book Appointment"); + System.out.println("2. Cancel Appointment"); + System.out.println("3. View Schedule"); + System.out.println("4. Exit"); + System.out.print("Choose option: "); + + int option = -1; + if (scanner.hasNextInt()) { + option = scanner.nextInt(); + scanner.nextLine(); + } else { + System.out.println("Invalid input"); + scanner.nextLine(); + continue; + } + + switch (option) { + case 1: + bookAppointment(scanner); + break; + case 2: + cancelAppointment(scanner); + break; + case 3: + viewSchedule(); + break; + case 4: + answer = false; + break; + default: + System.out.println("Invalid option."); + } + } + } + + private void bookAppointment(Scanner scanner) { + System.out.print("Enter date (MM/DD): "); + String date = scanner.nextLine(); + + System.out.println("Available time slots at " + gymName + ":"); + for (String slot : timeSlots) { + if (!schedule.contains(date + " " + slot)) { + System.out.print(slot + " "); + } + } + System.out.println(); + + System.out.print("Enter time: "); + String time = scanner.nextLine(); + String appointment = date + " " + time; + + if (schedule.contains(appointment)) { + System.out.println("Time slot already booked at " + gymName + "! Adding to waitlist..."); + waitlist.add(appointment); + } else { + schedule.add(appointment); + System.out.println("Appointment booked at " + gymName + " for " + appointment); + } + } + + private void cancelAppointment(Scanner scanner) { + System.out.print("Enter date and time to cancel (MM/DD TIME): "); + String appointment = scanner.nextLine(); + + if (schedule.remove(appointment)) { + System.out.println("Appointment canceled at " + gymName + "."); + if (waitlist.contains(appointment)) { + System.out.println("Moving " + appointment + " from waitlist to schedule."); + schedule.add(appointment); + waitlist.remove(appointment); + } + } else { + System.out.println("Appointment not found at " + gymName + "."); + } + } + + private void viewSchedule() { + System.out.println("\n--- Full Schedule at " + gymName + " ---"); + if (schedule.isEmpty()) { + System.out.println("No appointments scheduled."); + } else { + for (String slot : schedule) { + System.out.println(slot); + } + } + if (!waitlist.isEmpty()) { + System.out.println("\n--- Waitlist ---"); + for (String slot : waitlist) { + System.out.println(slot); + } + } + } + + public ArrayList getSchedule() { + return schedule; + } +} \ No newline at end of file diff --git a/src/main/java/org/codedifferently/GymSystem.java b/src/main/java/org/codedifferently/GymSystem.java new file mode 100644 index 0000000..ae3962e --- /dev/null +++ b/src/main/java/org/codedifferently/GymSystem.java @@ -0,0 +1,31 @@ +package org.codedifferently; + +public class GymSystem { + + private int memberCount = 0; + private int guestCount = 0; + private int completedAppointments = 0; + private final String gymName = "H2J GYM"; + + public void recordVisit(boolean isMember) { + if (isMember) memberCount++; + else guestCount++; + } + + public void appointmentCompleted() { + completedAppointments++; + } + + public void dailySummary() { + System.out.println("\n-- Daily Summary for " + gymName + " --"); + System.out.println("Members visited: " + memberCount); + System.out.println("Guests visited: " + guestCount); + System.out.println("Appointments completed: " + completedAppointments); + } + + public String getGymName() { + return gymName; + } +} + + diff --git a/src/main/java/org/codedifferently/Main.java b/src/main/java/org/codedifferently/Main.java deleted file mode 100644 index 435139b..0000000 --- a/src/main/java/org/codedifferently/Main.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.codedifferently; - -//TIP To Run code, press or -// click the icon in the gutter. -public class Main { - public static void main(String[] args) { - //TIP Press with your caret at the highlighted text - // to see how IntelliJ IDEA suggests fixing it. - System.out.printf("Hello and welcome!"); - - for (int i = 1; i <= 5; i++) { - //TIP Press to start debugging your code. We have set one breakpoint - // for you, but you can always add more by pressing . - System.out.println("i = " + i); - } - } -} \ No newline at end of file diff --git a/src/main/java/org/codedifferently/MainClass.java b/src/main/java/org/codedifferently/MainClass.java new file mode 100644 index 0000000..c1ed235 --- /dev/null +++ b/src/main/java/org/codedifferently/MainClass.java @@ -0,0 +1,63 @@ +package org.codedifferently; + +import java.util.Scanner; + +public class MainClass { + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + + Members members = new Members(); + Appointments appointments = new Appointments(); + GymSystem gym = new GymSystem(); + + System.out.println("Welcome to " + gym.getGymName() + "!"); + + boolean isMember = members.checkMembership(scanner); + gym.recordVisit(isMember); + + boolean running = true; + while (running) { + System.out.println("\n--- " + gym.getGymName() + " Main Menu ---"); + System.out.println("1. Manage Appointments"); + System.out.println("2. Search Member"); + System.out.println("3. Complete Appointment"); + System.out.println("4. Daily Summary"); + System.out.println("5. Exit"); + System.out.print("Choose option: "); + + int choice = -1; + if (scanner.hasNextInt()) { + choice = scanner.nextInt(); + scanner.nextLine(); + } else { + System.out.println("Invalid input."); + scanner.nextLine(); + continue; + } + + switch (choice) { + case 1: + appointments.handleAppointments(scanner); + break; + case 2: + members.searchMember(scanner); + break; + case 3: + gym.appointmentCompleted(); + System.out.println("Appointment marked as completed at " + gym.getGymName() + "."); + break; + case 4: + gym.dailySummary(); + break; + case 5: + running = false; + break; + default: + System.out.println("Invalid option."); + } + } + + System.out.println("Thank you for visiting " + gym.getGymName() + "! Goodbye!"); + scanner.close(); + } +} diff --git a/src/main/java/org/codedifferently/Members.java b/src/main/java/org/codedifferently/Members.java new file mode 100644 index 0000000..b39991a --- /dev/null +++ b/src/main/java/org/codedifferently/Members.java @@ -0,0 +1,91 @@ +package org.codedifferently; +import java.util.ArrayList; +import java.util.Scanner; + + +public class Members { + + private ArrayList memberList = new ArrayList<>(); + private final String gymName = "H2J GYM"; + + // declared variables + static class Member { + String name; + int age; + String gender; + String email; + + Member(String name, int age, String gender, String email) { + this.name = name; + this.age = age; + this.gender = gender; + this.email = email; + } + } + + //Ask user if they are a member + public boolean checkMembership(Scanner scanner) { + System.out.print("Are you a member of " + gymName + "? (yes/no): "); + String answer = scanner.nextLine(); + + if (answer.equalsIgnoreCase("yes")) { + System.out.println("Have a great workout at " + gymName + "!"); + return true; + } else { + registerMember(scanner); + return false; + } + } + + // Register new member + public void registerMember(Scanner scanner) { + System.out.println("Welcome to " + gymName + "! Please register:"); + System.out.print("Enter your name: "); + String name = scanner.nextLine(); + + System.out.print("Enter your age: "); + int age = -1; + while (age <= 0) { + if (scanner.hasNextInt()) { + age = scanner.nextInt(); + if (age <= 0) System.out.print("Please enter a valid age: "); + } else { + System.out.print("Invalid input. Enter a number for age: "); + scanner.next(); + } + } + scanner.nextLine(); //created scanner for user input + + System.out.print("Enter your gender: "); + String gender = scanner.nextLine(); + + System.out.print("Enter your email: "); + String email = scanner.nextLine(); + + memberList.add(new Member(name, age, gender, email)); + System.out.println("Thank you for registering, " + name + "! Enjoy your visit to " + gymName + "!"); + } + + // Search for members by name + public void searchMember(Scanner scanner) { + System.out.print("Enter member name to search in " + gymName + ": "); + String name = scanner.nextLine(); + boolean found = false; + + for (Member m : memberList) { + if (m.name.equalsIgnoreCase(name)) { + System.out.println("Member Found: " + m.name + ", Age: " + m.age + ", Gender: " + m.gender + ", Email: " + m.email); + found = true; + break; + } + } + + if (!found) { + System.out.println("Member not found in " + gymName + "."); + } + } + + public ArrayList getMemberList() { + return memberList; + } +}