Description
Objectives:
1. Produce code that is free of syntactical, logic, and run-time errors.
2. Design and create code in C++ using objects and classes, information encapsulation,
and efficient class design.
Submitting Your Code to Moodle
For this assignment, you will need to submit your main.cpp and your class files (.hpp and .cpp)
and the pseudo code which you completed as a part of Assignment 7 in a zip file. Please name
this file Lastname_Firstname_Project1.zip.
You must submit your code to Moodle to get full credit for the assignment. Please also include
comments in your code to describe what your code is doing. Comments should also include
your name, recitation TA, and the assignment. TAs will be checking that your code has
comments.
Your TA will be hand-grading your code, examining your project to make sure that you meet the
requirements of the assignment and assessing how well you coded your solution. You can
expect interview gradings too.
What to do if you have questions
There are several ways to get help on assignments in CSCI 1310, and depending on your
question, some sources are better than others. If, after reading this write up, you need
clarification on what you’re being asked to do in the assignment, the TAs and the course
instructor are better sources of information.
Minimum Requirements
Your project must compile. Otherwise, you loose all the 40 points for the technical part (see
grading rubric at the end). If your project does not compile or you are not satisfied with your
work, you might choose to attend an interview to explain how hard you’ve worked, although
asking for the standard extension may be more beneficial.
Your project must have the following features:
● When your code first runs, it should display a welcome message and a detailed
description of what your code does.
● You need to provide an interactive menu that allows whomever is running your code to
choose what functionality they would like to try out. This menu should be explicit and
detail exactly what will happen when an option is selected.
● 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
○ Writing to a file.
○ Reading from a file or ask the user for input and handle that input.
● 4 classes, including
○ At least one base and one derived class
○ At least one nested class
○ At least one of the classes needs to contain multiple constructors, and
each of those constructors needs to be used in your program.
○ The derived class should have at least one overloaded member function
from the base class.
○ At least 16 member functions total in all classes. For example, each of the
four classes could contain 4 functions, including the constructor.
○ At least one Friend function and an overloaded operator.
Project Contest:
To incentivize against going out to the Internet and downloading a pre-built Sudoku game, we
will be having a contest for who submits the best project. (We’ll also be interview grading
everyone, so you better be able to explain that Sudoku game.) In the interest of fairness, each
student’s work will be analysed based on the efforts and the difficulty of the project. They will be
categorized as below:
● Novice Project.
● Intermediate Project.
● Advanced Project.
Based on the students creativity, prior programming experience and efforts, 2 students will be
nominated for each category.
FAQs:
1. Do I have to design my own project, or can I work with a friend to design a game?
Everyone needs to submit individual work for their game. You are welcome to ask for help with
coding issues or to get input on your idea, but each of you needs to submit individual work.
2. Who will be judging the contest?
The TA will nominate projects, and then the TA and I will discuss all of the nominated projects
and select the winners.
3. What do I get if I win?
2 points added to your final grade. For example, if I calculate your grade and it is an 89, and
then I see that you won the programming contest, then your final grade will be a 91.
4. If I do the absolute minimum, can I still get a good grade?
Yes. Any project that fulfills the requirements listed above, works, and is explained well, will
receive an A.
5. What percentage of my course grade is this project? 5%
Grading rubric
Please note that we will take off points if you fail to complete the above requirements. For
example, if you don’t provide a welcome message and a detailed description of what your
program does, you will lose 10 points, regardless of how good the rest of your program is. If
you have any questions about the requirements or are unsure of where to start, please contact
your instructor or your TA.
Requirement Points each
2 loops (either while or for, or one of each) 2 1
4 if/else if/else blocks 2 0.5
4 numerical variables 1 0.25
4 strings 1 0.25
File I/O
Reading from file or console 1 1
Writing to a file. 2 2
4 classes, including
At least one base and one derived class (together they count as two) 4 2
At least one nested class (nested and encapsulating together they count as
two, and cannot be a base or derived class) 4 2
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
methods (see below) 0 0
The derived class should have at least one overloaded method from the
base class. (Counts as method) 0 1
At least 16 methods total in all classes. For example, each of the three
classes could contain 4 methods, including the constructor (destructors
don’t count). 16 1
At least one Friend function 1 1
At least one overloaded operator (counts as a function) 0 1
Driver(main function) that tests all your functionalities 6
Interview grading 10
Total 50