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 requirements.
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 those concepts.
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
.pdf file.
● Submit all your .hpp and the .pdf files in a zip file to moodle.
Rubric
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”[1] grading rubric will be used:
Item description Possible
Total = 40 p Points Student Score 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 at least 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)
[1] the term binary here is used to reflect the presence or absence of the items.