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

*In DR JAVA* Please write notes along the way. There is an example dialog provid

ID: 3704742 • Letter: #

Question

*In DR JAVA*
Please write notes along the way.
There is an example dialog provided so make sure the program runs like it
.










Screen 1 of 4 *In Dr. JAVA* Please put notes along the way Write the following program: A class Activity o Instance Variables Name Start Hour (Assumed to be in military time 0-23 hours) End Hour (Assumed to be in military time 0-23 hours) . . o Constructors - Default Parameterized with error checking Accessors and Mutators for each instance variable. DON'T FORGET TO CHECK FOR VALID VALUES o o Other methods toString: takes in the value and returns a string with the name, start hour, and end hour . A class DaySchedule o Instance Variables Activities: an array of Activity that represents the current . schedule o Constructors .Default o Accessors and Mutators for the instance variable o Other methods addActivity: This method takes in an instance of an activity and attempts to add it to the current array of activities. It only adds this activity if the array is not full, and this activity doesn't conflict with another one. An activity conflicts if the start and the end of one activity cannot fall at the same time as another. If this were to occur the user should be notified and the activity is not added. Also this method should finally sort the activities based on their starting time. removeActivity: This method takes in a string that represents the name of an activity and then searches for .

Explanation / Answer

Below is your code: -

Activity.java

// Activity class implementation

public class Activity {

// instance variables

private String name;

private int startHour;

private int endHour;

// default constructor implementation

public Activity() {

this("", 0, 0);

} // end of constructor

// parameterized constructor implementation

public Activity(String aName, int aStartHour, int aEndHour) {

setName(aName);

setStartHour(aStartHour);

setEndHour(aEndHour);

} // end of constructor

// getName method implementation

public String getName() {

return name;

} // end of getName method

// getStartHour method implementation

public int getStartHour() {

return startHour;

} // end of getStartHour method

// getEndHour method implementation

public int getEndHour() {

return endHour;

} // end of getEndHour method

// setName method implementation

public void setName(String aName) {

name = aName;

} // end of setName method

// setStartHour method implementation

public void setStartHour(int aStartHour) {

if (aStartHour >= 0 && aStartHour <= 23)

startHour = aStartHour;

else

startHour = -1;

} // end of setStartHour method

// setEndHour method implementation

public void setEndHour(int aEndHour) {

if (aEndHour >= 0 && aEndHour <= 23)

endHour = aEndHour;

else

endHour = -1;

} // end of setEndHour method

// toString method implementation

public String toString() {

return name + " " + startHour + " " + endHour;

} // end of toString method

} // end of Activity class

DaySchedule.java

// DaySchedule class implementation

public class DaySchedule {

// instance variables

private Activity[] activities;

private int count;

// default constructor implementation

public DaySchedule() {

activities = new Activity[20];

count = 0;

} // end of constructor

// getCurrentSchedule method implementation

public Activity[] getCurrentSchedule() {

return activities;

} // end of getCurrentSchedule method

// setActivities method implementation

public void setActivities(Activity[] aActivities) {

activities = aActivities;

} // end of setActivities method

// addActivity method implementation

public void addActivity(Activity activity) {

if (count == activities.length) {

System.out.println("Array of activities is full.");

return;

}

boolean conflict = false;

for (int i = 0; i < count; i++) {

if ((activity.getStartHour() >= activities[i].getStartHour()

&& activity.getStartHour() < activities[i].getEndHour())

|| (activity.getEndHour() > activities[i].getStartHour()

&& activity.getEndHour() <= activities[i].getEndHour())) {

conflict = true;

break;

}

}

if (conflict) {

System.out.println(

"The activity to be added conflicts with an existing activity. This activity will not be added.");

return;

}

activities[count] = activity;

count++;

sortActivities();

} // end of addActivity method

// sortActivities method implementation

private void sortActivities() {

for (int i = 0; i < count - 1; i++) {

int minPos = i;

for (int j = i + 1; j < count; j++) {

if (activities[j].getStartHour() < activities[minPos].getStartHour()) {

minPos = j;

}

}

if (i != minPos) {

Activity temp = activities[i];

activities[i] = activities[minPos];

activities[minPos] = temp;

}

}

} // end of sortActivities method

// removeActivity method implementation

public void removeActivity(String aName) {

boolean found = false;

for (int i = 0; i < count; i++) {

if (activities[i].getName().equalsIgnoreCase(aName)) {

for (int j = i; j < count - 1; j++) {

activities[j] = activities[j + 1];

}

count--;

found = true;

break;

}

}

if (!found) {

System.out.println(aName + " does not exist in the activities.");

}

} // end of removeActivity method

// printActivities method implementation

public void printActivities() {

for (int i = 0; i < count; i++) {

System.out.println(activities[i]);

}

} // end of printActivities method

} // end of DaySchedule class

DayScheduleFrontEnd.java

// DayScheduleFrontEnd class implementation

public class DayScheduleFrontEnd {

// start main method

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

DaySchedule schedule = new DaySchedule();

Activity activity;

String aName;

int aStartHour;

int aEndHour;

int choice;

System.out.println("Welcome to the day planner system");

do {

System.out.println(" Enter 1 to add an activity");

System.out.println("Enter 2 to remove an activity");

System.out.println("Enter 9 to quit");

choice = Integer.parseInt(input.nextLine());

switch (choice) {

case 1:

System.out.println("Enter the activity’s name");

aName = input.nextLine();

System.out.println("Enter its start hour in military time");

aStartHour = Integer.parseInt(input.nextLine());

System.out.println("Enter its end hour in military time");

aEndHour = Integer.parseInt(input.nextLine());

activity = new Activity(aName, aStartHour, aEndHour);

schedule.addActivity(activity);

schedule.printActivities();

break;

case 2:

System.out.println("Enter the activity’s name");

aName = input.nextLine();

schedule.removeActivity(aName);

schedule.printActivities();

break;

case 9:

schedule.printActivities();

System.out.println("Good bye!");

break;

default:

System.out.println("Invalid choice!");

}

} while (choice != 9);

} // end of main method

} // end of DayScheduleFrontEnd class

Sample Run

Welcome to the day planner system

Enter 1 to add an activity
Enter 2 to remove an activity
Enter 9 to quit
1
Enter the activity’s name
class
Enter its start hour in military time
13
Enter its end hour in military time
14
class 13 14

Enter 1 to add an activity
Enter 2 to remove an activity
Enter 9 to quit
1
Enter the activity’s name
breakfast
Enter its start hour in military time
8
Enter its end hour in military time
9
breakfast 8 9
class 13 14

Enter 1 to add an activity
Enter 2 to remove an activity
Enter 9 to quit
1
Enter the activity’s name
lab exam
Enter its start hour in military time
15
Enter its end hour in military time
18
breakfast 8 9
class 13 14
lab exam 15 18

Enter 1 to add an activity
Enter 2 to remove an activity
Enter 9 to quit
1
Enter the activity’s name
breakfast part 2
Enter its start hour in military time
8
Enter its end hour in military time
10
The activity to be added conflicts with an existing activity. This activity will not be added.
breakfast 8 9
class 13 14
lab exam 15 18

Enter 1 to add an activity
Enter 2 to remove an activity
Enter 9 to quit
2
Enter the activity’s name
breakfast
class 13 14
lab exam 15 18

Enter 1 to add an activity
Enter 2 to remove an activity
Enter 9 to quit
9
class 13 14
lab exam 15 18
Good bye!