Computer Science 241

Data Structures

Project 5

Due at 11:59 P.M. on Friday, November 7

Overview

In this project, you will implement the set member-functions from projects 4 using your linked list implementation of the bowlingAlley class.

Specifications

You have been provided the header files bowlingAlley.h, bowlingExceptions.h, party.h, and IOExceptions.h defining the classes bowlingAlley and party, and the appropriate exceptions. Your task is to implement the new member functions for the class bowlingAlley. This code will be contained in the files bowlingAlley.cc.

As with all projects, you must write a thorough test program for your implementation of these member functions. Your test program should be contained in the file main.cc and should be documented using the "percent block" comments. If your test program from project 4 is complete, there will be no new work for testing.

The Guidelines for Programming Projects apply. You are also subject to the Guidelines for Programming Assignments, issued by the Department of Computer Science as an addendum to The Honor System.

Additional Notes

Many of the existing member functions in the bowlingAlley class will be useful when implementing the set operations. However, you should always be aware of efficiency considerations. Use existing member functions to avoid duplicate code when the execution time is not adversely effected.

Presumably, you have successfully implemented the member functions of the party class and the pre-existing member functions of the bowlingAlley class. Therefore, your test program does not need to demonstrate that these functions work properly. It only needs to demonstrate the functionality of the new set operations.

You should remove the output statements from all constructors.

Submit

To submit your files for grading, place bowlingAlley.cc, party.cc and main.cc in the same directory, and at the prompt in that directory enter:

~radu/bin/submit CS241 project5 *.dat

If you are using a slip day for this project, you must submit with:

~radu/bin/submit CS241 project5late *.dat

Your submission will fail if the project does not compile. The submit program does not count slip day usage, but the graders do.

Grading

15 points each
isASubsetOf implementation
isEquivalentTo implementation
getsACopyOf implementation
getsUnionOf implementation
getsIntersectionOf implementation
8 points each
Style
Test Program
Past Sins
1 point
Remove output statements in constructors

The implementation points cover both correctness and efficiency. It is not enough to turn in a program that compiles and executes. The graders will scrutinize the implementation of the member functions and will deduct points for poor design decisions even if your program runs correctly on all reasonable input.

The style points cover poor programming style that needs to be addressed and a lack of useful comments within your program. In addition, graders may deduct style points for implementations that will work but could lead to difficulties or inefficiencies as we proceed on to future assignments.

When grading your test program, the graders will look for evidence that you considered the various implementation issues in this class. Even if your code works, you will be penalized for not testing that it works. This also means that you can lose points twice for the same issue: once in the implementation and again for not performing proper testing (which would have identified the first).

For this project, past sins refer to errors and warnings the graders gave in your implementation of both project 3 and project 4. You should have received grader comments on project 4 by Wednesday, November 5... Since you haven't, past sins rule apply only with respect to projects 1, 2, and 3.

Some specific things the graders will be looking for:

Header Files


Valid XHTML 1.0! Valid CSS!