Programming Assignments #4 and 5
CS 202 Programming Systems
With
programs #4 and #5 you will be implementing your solutions using Java. For
these programs your goal must be to develop an object-oriented solution. Your
Java programs must follow these rules:
·
No public or
friendly fields (data members) ***
NONE!!!***
·
No friendly methods
(member functions)
·
Limit your use of
static methods – these should be restricted to just utility functions and main
·
Use an inheritance
hierarchy using “extends”
·
Make client
class(es) for your application
·
Create at least one
abstract base class
·
Implement the
equals() to determine the equality of the underlying objects (rather than the
references), and clone() to perform a deep copy. This must be done for all
classes.
·
Implement at least
one constructor with arguments
·
You must implement
your own data structures: as in linked lists, trees, and graphs.
·
In at least one of
these programs – experiment with the use of a finalize method.
You
are required with each program to still turn in 1 page paper on how this
solution is object oriented (or what you learned about OOP with this program)
and 1 page on a debugger – although the debugger is no longer limited to being
on unix.
As the term winds down, you realize that organization is key to successfully completing all of your assignments. You have decided to create a “homework planner” program that will help you prioritize your work. You will keep at least information about: class name, assignment description/number, the number of hours you estimate it will take for the assignment, and the due date. Some projects are group projects – where you need to keep track of the group members (and their contact information), and others are not (so you don’t want to keep track of any additional info).
As an up and coming artist, you would like to make sure you attend all of the art fairs and shows where your pieces can be judged (and sold!). Time after time you find you have just missed the deadline for the next big show. You have decided to write some software that will keep track of the participant registration deadlines for all of the local art shows, along with their location, date of the event, and the type of media (some shows are for glass, others ceramics, etc.). To get familiar with Java programming, design a class hierarchy that will provide a means for keeping track of the events you are interested in (remember to think first about the application rather than the data structure!).
For program #5, please implement a binary search tree sorted by location. Each node will have a linear linked list of the types of media supported – kept ordered alphabetically. Provide all of the necessary operations to add, remove, search, display. Justify in your design write up the object oriented solution selected….and don’t make it all about the data structure!!!!!!!
Extra credit will be given to students that read the show information from an external data file – that resides in your current working directory!