|
C M S C 2 1 4 C o m p u t e r S c i e n c e I I F a l l 2 0 0 3 |
Project 4 is worth 7% of your grade.
This project enhances and adds to Project 3.
Your doubly linked lists MAY NOT BE
CIRCULAR in this project.
You will forfeit all points if we
detect circularity.
Your binary search tree Bst must use ModNode which contains a parent pointer.
BstIterator
This project teaches you how to implement an iterator for a binary search tree. It also implements templates, creates base and derived classes, and uses inheritance. The goals of this project are to:
Please note that *all* programming projects in this course (including this one) are to be done independently or with the assistance of the instructional staff of this course only.
Please review the policies outlined on the class syllabus concerning the use of class computer accounts and concerning the University's Code of Academic Integrity. The instructors of this course will review the programs submitted by students for potential violations of the Code of Academic Integrity and if it is believed that a violation has occurred it will be referred to the Office of Judicial Programs and the Student Honor Council.
Hardcoding is considered a violation of academic integrity
Students are expected to write "clear and legible" code. Please review the following Style Guide which specifies how students in CMSC 214 are expected to lay out their code:
http://www.cs.umd.edu/class/spring2003/cmsc214/Projects/styleguide.txt
Answers to "frequently asked questions" will be posted via the main projects page. Prior to asking a question or submitting a project you should check the FAQ to see if any important information has been covered there. In addition to answers to FAQ's any important information pertaining to a project will be posted on it's FAQ.
DON'T email questions. We cannot keep up with the numerous emails about a project. GO SEE A TA or an instructor during office hours. We will generally NOT respond to email questions about the project.
For this project you will be required, among other things to
In addition, you will include, and add to, myExceptions.h
and
myExceptions.cpp
Tar up your project 3 files or make a copy and store in another directory before you begin this project.
Copy the header files Pair.h, TNode.h, Node.h, Encoder.h, Decoder.h, Decodebook.h, BstIterator.h and DllIterator.h into your account. Some of these have changed.
Create the following header files for which skeletons are provided:
Copy your previous version of myExceptions.h and myExceptions.cpp.
Make any changes to your .h and .cpp files from Project 3.
Write the code that implements the member functions for these classes. Note: you may NOT change the public methods in the header files but may add private methods as needed. You may NOT add private, public or protected data members. You may not add ANYTHING (including comments) above the comment that tells you to insert your private member functions after it. The only exception to this is when you templatize and inherit, you might have some changes (minimally) but NOT FUNTION NAMES, TYPES OF ARGUMENTS, RETURN TYPES, NUMBER OF ARGUMENTS (except where templatization takes place.)
myExceptions.cpp contains exception classes that are called from several of your .cpp files. You must have at least 15 exception classes:
Next you should write and/or update unit tests for each of your classes:
Remember to keep backups on a different system - perhaps WAM. You can still code on WAM but only the g++ compiler is available there.
And finally you should write a:
Your main program should use the classes created earlier to accomplish it's task. You may *not* write any other classes.
You may assume that
You might want to take the following approach to this project:
Hopefully, none are needed. This project does not change the implementation of project 3. It simply adds inheritance.
You may assume input and output are the same as in project 3.
Your output must diff this time, blank lines and all.
A primary input file and a primary output file are provided in the class posting accounts (in the appropriate directory). You should review these files. They will be named primary.input and primary.output respectively.
A secondary input file and a secondary output file are also provided for further testing of your code. However, your project will successfully submit if your program passes the primary.input.
On further secondary inputs, you will be given other plaintext or coded messages in the same format as primary.input Your program should generate the corresponding output similar to primary.output. Additionally, we will test several portions of your code.
When your main program is compiled and run with input redirected so that it gets the contents of the primary input file (primary.input) as input, it should generate output that matches the primary output file. When we test your program we will diff your output (using diff -bwi) with that of the primary output and if it does not match, your program will be considered to not meet the minimum running standards and you will be unable to submit it.
Provide a makefile that creates an executable file named p4 when the command make p4 is run.
Tar up all necessary files, such as source code, including:
submit p4.tar 4
Submit will start accepting project 4 submissions on 11/16/03.
|
See the class syllabus for policies concerning email Last Modified: Thursday, October 30, 2003 |
|
|
|
|
|