Final Programming Assignment

Due: December 14.


In this assignment you will write a calendar program that schedules meetings, keeps track of them, and displays the daily meeting calendar, for a group of individuals. More specifically, your calendar program should manage the calendars of everyone in the group. (This could be represented by an array of calendars). A calendar is a list of meetings. Your calendar should run for a week, from Sunday to Saturday. (We don't worry about months or years in this assignment). This will involve several classes, whose objects will be instance variable s in other classes as needed.  A (partial) list of methods are also given below, but feel free to include other methods that you find useful.

There should be a Time class, which includes the day of the week and a time of day. Operations will include adding a length of time to a time to get a new time (which might be on a different day), and comparing times.

There will be a Meeting class. A meeting is an object with a Time, a list of participants, and an optional meeting description string which may be empty. The list of participants might be the owners of other calendars in this group, or different names, perhaps for personal meetings. Operations include getting a meeting starting Time, getting the ending Time, a boolean method that tests if two meetings conflict., adding a participant to a meeting, and removing a name from the participant list.

The Calendar class includes the name of its owner (string), and an array of meetings. Operations include inserting a meeting into a calendar, deleting a meeting, testing for conflicts, and displaying the calendar.

Your system should manage everyone's calendar in a group. This might be done using an array of Calendars. You should interact with the system using a GUI. The GUI should ask the user to identify herself in order to retrieve her own calendar, and schedule a meeting. The GUI might involve

Notice that if you check to see if a meeting has a conflict with something already scheduled on that day, you may have to check the meeting previously scheduled, since it may have blocked out several days at a time (for example a business trip with several days travel).It might help to keep the meetings in the calendar sorted by start ing time.

Optional features of your system might include: