A13-Project Design and Prototype

Table of Contents


  • Write down your Final Project Design
  • Get a prototype of your Final Project working
  • Demo your prototype to your Instructor

Academic Honesty

Read the Scholastic Honesty Policy and Assignment Integrity policies of the syllabus. Here are some clarifications for this particular assignment:

  • You are expected to work alone on this project to show what you have learned about C++.
  • You may not give a copy of your code to another person until after the due date for the project.
  • You may not look at another person's code until after the due date for the project.
  • You may get help from people, such as tutors, if you get stuck, but only if they do not show or tell you the code to type.
  • Do not copy or modify code from the internet or other sources without attribution. Copying code snippets from the instructor's lesson examples without attribution is allowed.

For this project you may use new techniques and small snippets (20 tokens or less) of code from the Internet or other sources provided you attribute the code to the originator in such a way that the instructor can easily look up the source. For example, code from the Internet must provide the URL. Code from another person means you must provide a name and email address. No attribution or no ability to verify the attribution (like no response to email queries) means no score (0 points).


  1. Make sure you have completed the exercises from lesson 13.
  2. Complete the Review Exercises in CodeLab 13. These exercises will help prepare you for the problem-solving programs and should be completed first.

Project Specifications

The following describes the requirements for the projects for which you will be graded.

Project 1: Design Document (10 pts)

  1. Read the final specifications before starting your design.
  2. Write a document with a length of 1-2 pages. (text document, hand written document image)
  3. Either hand-write the document or use a computer editing tool like TextPad or Word. If hand written you may submit an image to Canvas.

  4. Include all of these parts in the document with headings:
    1. Program Description: What will your program do? Describe the things that your program will do in some detail.
    2. User Interface: Show the following major items but you do not need to show every output detail of your program.
      • What is displayed when your program starts up?
      • What is displayed as your program runs?
      • What is displayed at the end of your program?
    3. C++ Class: What is at least one of the C++ classes that you will use in your program? Write out the full class declaration with comments on non-trivial methods.
    4. Program Logic and Flow: What is the logic and flow of your program? Starting from main(), what other functions will be called and in what sequence? Use a flow chart, pseudocode, or something similar.
    5. File System: What information will your program read from and write to files? Describe both data read from files (input) and data saved to files (output) and give examples. Input and output must include ASCII text data.
  5. Review your design with the instructor on Thursday 5/7/2020 during class.

Project 2: Working Prototype (10 pts)

  1. Build a working prototype of your project that performs some preliminary function that your Final Project will do including:
    1. Program compiles: without error or warnings
    2. Class definition: with at least three functions implemented (defined)
    3. Non-member function definitions: three or more non-member functions defined besides main(), with function stubs allowed.
    4. User interface: partial implementation of what the user will see (program output) and can enter (program input)

    For example, you may decide to build a friend list to keep track of your friend's phone numbers and other information. You would need to define your Friend class and implement at least three member functions including constructors. In addition, you would need to write the definitions for three non-member functions besides main() to manage your list of friends. The non-member functions may be empty or return a dummy value and leave the calculations for later. Also, you would need to write code that shows the user some information and allows them to enter some data. All of this code would need to compile when demonstrated.

  2. Demonstrate your working prototype to the instructor during class on Thursday 5/7/2020.

Tutorial Lab

In preparation for next weeks lessons, complete the following:

  1. Read the assigned reading in the textbook
  2. Complete the Tutorial Exercises in CodeLab 13 before the specified due date.

    Refer to the assigned reading for the next lesson to help you understand the problems. Also, you may use the online lecture notes for more information as the notes become available. Look at solutions if you miss your first few attempts and are stuck by clicking the "Solution" tab.

Grading Criteria

Most of the assignment will be graded in class on the day it is due. The penalty for not attending class is 0 on the code demonstration.

The instructor will evaluate your assignment using the rubric shown in Canvas for A13-Project Design and Prototype. Thus you should check your assignment against those criteria to maximize your score.

Total possible: 20, plus extra credit


Submit the following to Canvas, in the assignment folder A13-Project Design and Prototype:

  1. Design document file(s)
  2. Project prototype source code (*.cpp) file(s)
Last Updated: May 07 2020 @18:39:44