Sampler Project

On This Page


Overview

During this assignment, you will write a program that demonstrates what you have learned about C++. The theme or type of program is up to you. Be sure you have covered all topics listed in the instructions.

Project Ideas

  • Address book
  • Banking account
  • Game programs
  • Gambling simulations
  • Visual algorithm demonstration

Specifications

Develop a computer program illustrating the following features of the C++ language. Note that the numbers in parenthesis are the point value for successfully using the feature, as described in the grading criteria.

  • No use of global variables (-10)
  • Control Structures
    • while or do-while loop (1)
    • for loop (1)
    • if or if-else(1)
  • Functions
    • Use both void and non-void return types (1)
    • Use both pass-by-value and pass-by-reference parameters (2)
  • Overloading of a function (2)
  • Array type (1)
  • Files
    • Read from a file (1)
    • Write to a file (1)
    • Use of fail() whenever a file is opened (1)
    • Use of stream parameters (1)
  • Formatted output
    • Use both setw() and setprecision() from <iomanip> (1)
  • string class (1)
  • Object references or pointer variables (1)
  • Use multiple classes and objects of your own creation (4)

In addition, you must prepare a sampler report.

Extra Credit

The following are worth extra credit points:

  1. Code a function that makes a recursive call. (2 points)
  2. Includes code that automatically tests functionality (2 points)
  3. Write code to Sort an array using an algorithm other that selection sort. (2 points)
  4. Write a Makefile for the application and use separate compilation. (2 points)
  5. Use your imagination and be creative to code a C++ features not covered in this course -- be sure to clearly identify your creative features. (0 to 4 points)

Make certain that your README.txt file lists any extra credit attempted.

Sampler Report

Final report must be presented the last day of regular class. The report consists of the following information:

  • Brief introduction describing the purpose of your application
    • One paragraph is sufficient
  • A description of how to use your program
  • A list of the specifications and a brief description of how you met these requirements in your program
    • If you substituted a requirement, with prior agreement from the instructor, list that requirement instead
  • A list of any extra-credit features

For an example sampler report see sampler.txt.

As you can see, the report can be as short as 1-2 pages. Provide a paper copy of the report to the instructor on the last day of regular class. Turn in the sampler as your README.txt file.

Sampler Presentation

  • You are required to demonstrate your sampler but not necessarily in front of the class
  • When everyone else is done, you can present it to the instructor individually
  • Have some way to install and run on the instructor machine
    • CD
    • Email
    • Memory stick
    • WebCT
  • Give a copy of your project report to the instructor before your presentation
  • Starting with your source code, demonstrate the following:
    • Program compiles
    • Program function
    • File read from by your program
    • File written to by your program
  • Point out any "cool" or extra credit features so we can all appreciate them

Grading Criteria

The instructor will evaluate your assignment using the following criteria. Each criteria represents a specific achievement of your assignment and has a scoring guide. The scoring guide explains the possible scores you can receive.

Some scoring guides have a list of indicators. These indicators are a sign of meeting, or a symptom of not meeting, the specific criterion. Note that a single indicator may not always be reliable or appropriate in a given context. However, as a group, they show the condition of meeting the criterion.

For information on grading policies, including interpretation of scores, see the course information page.

Required Features

Points as shown for each demonstrated feature in the specifications. (20 points)

Program Compilation

  • 2: Source code compiles with no errors or warnings
  • 1: Source code compiles but has warnings
  • 0: Does not compile

Functionality

  • 10: Demonstrates mastery of the assignment
    • Has extra features or demonstrates techniques beyond the assignment
    • Applies concepts from the lesson(s) appropriately
    • Meets all specifications (see above) with particularly elegant solutions
    • No errors encountered during operation
    • All test cases pass
  • 8: Has all the functionality expected of the assignment
    • Demonstrates many techniques from the lesson
    • Meets all specifications (see above)
    • Implementation seems more complicated than necessary.
    • May have one minor error
    • All test cases pass
  • 6: Has most of the functionality expected of the assignment
    • Demonstrates some techniques from the lesson
    • Meets all but one of the specifications (see above)
    • Implementation seems excessively complicated.
    • May have 2-3 minor errors
    • All but one test case passes
  • 4: Has some of the functionality expected of the assignment
    • Demonstrates some techniques from the lesson
    • Meets at least 1/2 of the specifications (see above)
    • Implementation seems excessively complicated.
    • May have more than 3 minor errors
    • At least 1/2 of all test cases pass
  • 2: Serious functional problems but shows some effort and understanding
    • Meets less than 1/2 of the of the specifications (see above)
    • Has a major error or many minor errors
    • Implementation seems very convoluted
    • Demonstrates few techniques from the lesson
    • Less than 1/2 of all test cases pass
  • 0: Does not execute or was not demonstrated in class

Programming Style

  • 4: Code is well-documented
  • 3: Code has minor documentation errors
    • Has 1 documentation error
  • 2: Code has some documentation errors
    • Has 2-3 documentation errors
  • 1: Code has many documentation errors
    • Has more than 3 documentation errors
  • 0: No apparent attempt to document code

Report and Presentation

  • 4: Sampler is presented and reported clearly and completely
    • Student presents information in a logical and interesting sequence
    • All requirements of the sampler were presented
    • Written report was given to instructor before presentation
    • Report is well-written and grammatically correct
  • 3: Sampler presentation or report has minor problems
    • Student presents information in a logical sequence
    • All but one of the requirements were presented
    • Some minor reporting requirements are missing
    • Report contains spelling errors, but is otherwise clearly written
  • 2: Sampler presentation or report has significant problems
    • Audience has difficulty following presentation because student jumps around
    • At least 1/2 of the requirements were presented
    • At least 1/2 of the reporting requirements were turned in
  • 1: Sampler presentation or report is unclear or incomplete
    • Audience cannot understand presentation because there is no sequence of information
    • Less than 1/2 of the requirements were presented
    • Less than 1/2 of the report was completed
  • 0: No presentation or no report

Nominal Maximum Score: 40, plus extra credit

What to Turn In

Submit your assignment following the instructions for homework. Include the following items for grading:

  1. README.txt file containing the sampler report
  2. All source code files
  3. Any data files required

You must submit all the files needed to make your assignment function properly. Do not assume that the instructors has any files. Your assignment must work as submitted.

Submit your sampler report as the README.txt file. Do NOT submit any Word files, as the instructor does not want any viruses.

Home | WebCT | Announcements | Day Schedule | Eve Schedule
Course info | Help | FAQ's | HowTo's | Links

Last Updated: January 27 2005 @13:23:36