For this assignment you will be working towards your project. As a part of this
assignment you need to think of a project idea which can be public service
project, game or an useful application. Your project must satisfy the below
It must have at least:
● 2 loops (either while or for, or one of each)
● 4 if/else if/else blocks
● 4 numerical variables
● 4 strings
● File I/O and Console I/O
o Writing to a file.
o Reading from a file or ask the user for input and handle that input.
● 4 classes, including
o At least one base and one derived class
o At least one nested class
o At least one of the classes needs to contain multiple constructors, and
each of those constructors needs to be used in your program.
o The derived class should have at least one overloaded member
function from the base class.
o At least 16 member functions total in all classes. For example, each of
the four classes could contain 4 functions, including the constructor.
o At least one Friend function and an overloaded operator.
How to tackle the project
The project is a bit bigger than the weekly assignments we have done so far.
However, you have or will have the skills necessary to complete it by the end of
week 11. Here are our recommendations for how to be successful in this project.
● Come up with a plan
o Spend some time thinking about your project before you begin coding.
Imagine the interaction between the computer and user, and
articulate that either on paper, to a friend, or to one of the TAs or the
Instructor. Explaining your idea to someone else will help you
understand it better.
o Once you have a good idea of the functionality, translate that
functionality into concepts. Generate an outline or a flowchart of
o Translate the concepts into coding plans. For example, when you
explain the functionality, if you come to a point where you say
something such as, “then the user has to make a decision”, you know
that is a place for an if statement.
● Write code
o Start small and implement a basic set of features first. Get each piece
working before moving on to the next piece. For example, if your
program has a while loop that checks for user input, get that working
first before moving on and writing the code to handle the input.
● Test, test, test to make sure your code is working
What to submit for assignment 7.
● Your project idea in a .pdf format explaining what is your project all about.
● The Header files(.hpp) for your classes which you will be using it in your
project. The header files must contain comments as what each function does.
● The PSEUDOCODE (do NOT submit code) for the class implementation file in
● Submit all your .hpp and the .pdf files in a zip file to moodle.
Since this is a creative project, the grading is always far from simple. Notice that this
assignment does not have explicit implementation of the classes, therefore, the
following “binary” grading rubric will be used: 1
Item description Possible Points
Total = 40 p
At least three header files 3 (1 each)
4 classes, including
At least one base and one derived class (together they count as two) 2 (1 each)
At least one nested class (nested and encapsulating together they count
as two, and cannot be a base or derived class) 2 (1 each)
At least one of the classes needs to contain multiple constructors, and
each of those constructors needs to be used in your program. These
count as member functions (see below) 0
The derived class should have atleast one overloaded member function
from the base class (counts as member function) 0
At least 16 member functions total in all classes. For example, each of
the three classes could contain 4 functions, including the constructor
(destructors don’t count). 16(1 each)
At least one Friend function 1
At least one overloaded operator (counts as member function) 0
PSEUDOCODE for all member functions 16 (1 each)
the term binary here is used to reflect the presence or absence of the items.