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

1.Implement a superclass Appointment and subclasses Onetime, Daily, and Monthly.

ID: 3669547 • Letter: 1

Question

1.Implement a superclass Appointment and subclasses Onetime, Daily, and Monthly. An appointment has a description (for example, "see the dentist") and a date. Write a method occursOn(int year, int month, int day) that checks whether the appointment occurs on that date. For example, for a monthly appointment, you must check whether the day of the month matches. Then fill an array of Appointment objects with a mixture of appointments. Have the user enter a date and print out all appointments that occur on that date.

2.P9.22 Improve the appointment book program of Exercise P9.21. Give the user the option to add new appointments. The user must specify the type of the appointment, the description, and the date.

3.P9.23 Improve the appointment book program of Exercises P9.21 and P9.22 by letting the user save the appointment data to a file and reload the data from a file. The saving part is straightforward: Make a method save. Save the type, description, and date to a file. The loading part is not so easy. First determine the type of the appointment to be loaded, create an object of that type, and then call a load method to load the data.

Explanation / Answer

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Appointment
{
private String description;
private Date date;
public Appointment(String description, int year, int month, int day) throws ParseException
{
this.description = description;
DateFormat dateFormatter = new SimpleDateFormat(String.format("yyyy-MM-dd"));
this.date = dateFormatter.parse(String.format("%d-%d-%d", year, month, day));
}
public boolean occursOn(int year, int month, int day) throws ParseException
{
DateFormat dateFormatter = new SimpleDateFormat(String.format("yyyy-MM-dd"));
Date checkedDate = dateFormatter.parse(String.format("%d-%d-%d", year, month, day));
return checkedDate.equals(this.date);
}
public void print()
{
System.out.println(String.format("Appointment: %s Date: %s", this.description, this.date.toString()));
}
public Date getDate()
{
return this.date;
}
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Chat Now And Get Quote