Project 1. Accessible Vending Machine

Assigned: Friday, September 9, 2005
Requirements and Design Due: Thursday, September 15, 2005
Program Due: Sunday, September 26, 2005 (midnight)

Assignment.

Design and implement an interface to a vending machine that is accessible to people with and without visual disabilities. Your system should be able to handle at least two different kinds of vending applications. One should be the typical "junk-food" machine where candy and chips are dispensed. The others can be whatever you want, but must be different in some functional way.

Objectives.

  1. To gain experience defining the functional requirements of a program.
  2. To gain experience designing an OO solution to a problem.
  3. To practice programming again, after summer break.
  4. To learn how to do JavaDoc documentation.

Restrictions.

  1. You must have visual output as well as sound output. Your sound output should make use of Cloud Garden's JSAPI implementation.
  2. Your program should be navigatable by keyboard commands only.
  3. Your program should have at least one level of inheritance.
  4. You must have JavaDoc comments.
  5. You may not reuse anyone else's code for this project.

Requirements/Design Report.

This report should clearly spell out the functional requirements (i.e., "what" your program is going to do) of your Accessible Vending Machine interface. The requirements should be numbered and should be independent of implementation and design issues.

This report should also present the design of your OO solution. In particular, enumerate the classes you will use, and the methods and data members of each. In addition, use a UML diagram to depict the inheritance structure and the communication paths among the classes.

Grading Criteria.

** Programs with compile-time errors will receive no credit.
** Programs with non-exceptional run-time errors will receive at most 50% credit.