Haircut Appointment Scheduler

Objective

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

  1. 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.

  2. Implement the method that lists existing appointments.

  3. Implement the method that schedules a single appointment.

  4. 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.

// Scheduler.h

// Source.cpp

Last updated

Was this helpful?