Assignment #5 -- Designing a card deck class

Due: Mon, April 2

Objective

To practice with class design in Java, using good design principles as discussed in class. Also to gain further practice with Java compilation and execution of programs.

Task

You are to design and implement, in Java, a CardDeck class. The intent is to create a class that is versatile enough to be a re-usable module in the implementation of a variety of card games. You will create and your own design and interface, keeping with good class design principles.

Details

  1. General class requirements
  2. Desired features of the Card class
    Your Card class should provide at least the following features, for easy use and testability
  3. Desired features of the card deck
    Your CardDeck class should provide at least the following features as part of its interface
  4. Documentation
  5. Remember to use good design principles
    Your class will be judged partly on use of good design principles, including:
  6. Demonstration of Class Features
    Write at least one test program that demonstrates class features.

Submitting

Remember to compile and test Java code on either program.cs.fsu.edu or linprog.cs.fsu.edu.

To prepare your submission, bundle all of your files (code files, README) into a single "jar" archive called "hw5.jar". Format:

  jar cvf hw5.jar 
For example, if all of the files to bundle are in one directory (and nothing else), you can pack it up with this:
  jar cfv hw5.jar *		  // packs all files in the current directory

  jar cfv hw5.jar *.java README   // or use this one, for code files and README
E-mail this jar file (hw5.jar) to me (myers@cs.fsu.edu) by the due date. Your e-mail subject should be HW5-SUBMIT. Include your name and section in the e-mail body. Please only submit ONCE, unless you make a mistake and need to correct it (before the due date) -- and minimize this. Only the last submission will be graded.

Your submission e-mail needs to come either from your CS account (preferred) or your garnet/mailer account.