The goal of the assignment is to assess your ability to write clear readable code demonstrating object oriented
programming concepts.
Assignment
Create a command-line program in an object-oriented language of your choice (C++, Java, Python) that
interacts with the user using stdin and stdout. You may use any standard libraries in your solution.
The user of the program is a hairdresser who needs to keep track of his or her haircut appointments.
The program will support the scheduling of two types of appointments:
Haircut: 30 minutes
Shampoo & Haircut: 1 hour
Upon running of the program, the program should prompt for user input. It should accept 3 command
types:
1. List: listing of all future appointments
2. Schedule: schedules either type of appointment (note that this command may take additional
parameters so that the hairdresser can distinguish one appointment from another).
3. Exit: the hairdresser is done with the program; upon exit, all existing state will be destroyed (i.e.
the program does not persist the appointments in between program runs)
For simplicity sake, the program may assume that appointments are always scheduled at 15-minute
offsets from the hour (e.g. 12:15pm, 4:00pm, 5:45pm, 6:30pm).
Steps
Start by creating an object-oriented design for the scheduler interface (i.e. public methods) and
the model classes for the schedule and the appointments.
Implement the method that lists existing appointments.
Implement the method that schedules a single appointment.
Wire the program together so that it can be run from the command line.
Submission
Write a short README that lists the source files and a short description of each source file (e.g. Javadocs
may be used in place of the description). In the README, also specify how to run the program and a log
of one or more test runs of the program. If applicable, include any design considerations that came up
during the design of the program. Respond to this email with a zip file of the README and the source
files for your solution. Please do not post your solution to GitHub or another public repository.