Programming Assignments #4 and 5

 

CS 202 Programming Systems

 

 

 

 

 

For This Program

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.

 

Program #4 Requirements

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

 

You imagine that in the future you will expand this software to have more information about your courses, groups and assignments – so you are going to really make it as OO as possible by creating classes for each of these. You should have at least 4 classes. Also look into creating generalized based class(es) that will help facilitate this process.

 

In this assignment, use circular linked lists as the primary data structure – you can expand this as desired.

 

Program #5 Requirements

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!