CMSC 131
Section 0101
Assignment:     Project #6
Due Date:     Sunday 07/30 at 11:00PM
Open/Closed policy:     CLOSED

Cafe 131

Objective

This project will give you practice with interfaces, arrays, working in a complex environment where several classes depend on one another, dealing with mutable vs. immutable and careful array copying.

 

Overview

This project will simulate an operational restaurant.  It isn't very realistic, but it may amuse you.  The image below represents the GUI (Graphical User Interface) that we have provided. 

The entire project can be completed without ever running the GUI -- really the GUI is just for fun.  You should write your classes according to the JavaDoc, and test them using your own JUnit tests.  (We are not grading your tests this time, but you are always expected to write them as any good Java programmer would.)   Once you believe that your classes are working properly, please have fun playing around with the GUI.

Notes on the GUI:

 

Things that are Provided for You

As usual, we are supplying JavaDoc to provide most of the project specification. 

 

What You Must Implement

You will be implementing the following classes.  It is strongly recommended that you implement them in the order below:

  1. The objects must be immutable.
  2. The objects must be instances of a class that implements the Listable interface.

This project will use this class to store lists of Food objects, and lists of Entree objects.

Hints:

Restrictions:

 

Grading

Your grade will be computed as follows: