109k views
2 votes
N this program, you will create a personal organizer. You will ask the user for the name of an event, the year it is happening, along with the month and day it is happening. If the user incorrectly enters one of those values, they are prompted to re-enter the information until it is correct. The user can do this for as many events as they have.

After the user has entered all of the events, the whole list of events (along with their date) should be output to the user. It may sound simple, but there is a lot that goes into making this program!

One of the best ways to do this is with parallel lists: one for the eventName, eventMonth, eventDay and eventYear. This allows you to easily add and output all of the details of an event.

There is some very helpful starter code already provided in your programming environment, but in order to build the full program, follow the steps and instructions below very carefully.

User DocKimbel
by
8.5k points

1 Answer

3 votes

Answer:

import java.util.ArrayList;

import java.util.Scanner;

public class PersonalOrganizer {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

ArrayList<String> eventNames = new ArrayList<>();

ArrayList<Integer> eventYears = new ArrayList<>();

ArrayList<Integer> eventMonths = new ArrayList<>();

ArrayList<Integer> eventDays = new ArrayList<>();

boolean addMoreEvents = true;

while (addMoreEvents) {

// Ask for event name

System.out.print("Enter event name: ");

String eventName = scanner.nextLine();

eventNames.add(eventName);

// Ask for event year

int eventYear;

do {

System.out.print("Enter event year (4 digits): ");

while (!scanner.hasNextInt()) {

System.out.print("Invalid input. Enter event year (4 digits): ");

scanner.next();

}

eventYear = scanner.nextInt();

} while (eventYear < 1000 || eventYear > 9999);

scanner.nextLine(); // Consume newline character

eventYears.add(eventYear);

// Ask for event month

int eventMonth;

do {

System.out.print("Enter event month (1-12): ");

while (!scanner.hasNextInt()) {

System.out.print("Invalid input. Enter event month (1-12): ");

scanner.next();

}

eventMonth = scanner.nextInt();

} while (eventMonth < 1 || eventMonth > 12);

scanner.nextLine(); // Consume newline character

eventMonths.add(eventMonth);

// Ask for event day

int eventDay;

do {

System.out.print("Enter event day (1-31): ");

while (!scanner.hasNextInt()) {

System.out.print("Invalid input. Enter event day (1-31): ");

scanner.next();

}

eventDay = scanner.nextInt();

} while (eventDay < 1 || eventDay > 31);

scanner.nextLine(); // Consume newline character

eventDays.add(eventDay);

// Ask if the user wants to add more events

System.out.print("Do you want to add another event? (y/n): ");

String response = scanner.nextLine();

addMoreEvents = response.equalsIgnoreCase("y") || response.equalsIgnoreCase("yes");

}

// Output all events

System.out.println("\\Events:");

for (int i = 0; i < eventNames.size(); i++) {

String eventName = eventNames.get(i);

int eventYear = eventYears.get(i);

int eventMonth = eventMonths.get(i);

int eventDay = eventDays.get(i);

System.out.printf("%s: %02d/%02d/%d\\", eventName, eventMonth, eventDay, eventYear);

}

}

}

Step-by-step explanation:

This program prompts the user to enter event details, validates the input, and stores them in parallel lists. The program also allows the user to add multiple events, and outputs all events at the end.

User Sberkley
by
8.3k points