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 books
- Astonomy calculations and simulations
- Astrology simulations
- Bank account tracking
- Battleship game
- Card games
- Database programs (store and retrieve selected data)
- Digital photo manipulation (like Photoshop)
- Financial analysis
- Fortune tellers
- Madlibs game
- Mine sweeper
- Physics simulation
- Stock portfolio tracking
^ top
Specifications
Develop an object oriented computer program illustrating the following features of the C++ language. 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)
- Use of one or more objects from at least one class that you coded (6).
Each class must have one or more private member variables and one or more member functions.
- Use of control structures:
while or do-while loop (2)
for loop (2)
if or if-else (2)
- Use of functions, in addition to
main(), including:
void return type (2)
- non-
void return type (2)
- Pass-by-value parameters (2)
- Pass-by-reference parameters (2)
- Use of overloaded function (2)
Note that you must list at least two line numbers in the report to identify the versions of overloaded function. An overloaded constructor does NOT meet this specification.
- Use of overloaded constructor (2)
Note that you must list at least two line numbers in the report to identify the versions of overloaded constructor.
- Use of one or more vectors (4)
- Use of files:
- Read from a file (3)
- Write to a file (3)
- Use of
fail() whenever a file is opened (1)
- Use of stream parameters in a function definition (1)
- Use of formatted output with the
setw() manipulator (1)
- Use of formatted output with the
setprecision() manipulator (1)
- A project report as described below (4)
- Your project code must compile correctly as described in the Grading Criteria section below (4)
- Your project code must function correctly as described in the Grading Criteria section below (10)
Note: you must demonstrate your project to the instructor during the scheduled class time or you will receive a 0 for functionality.
- Your project code must follow all documentation requirements as described in the Grading Criteria section below (4)
Note that this is an individual project and not a pair-programming project.
^ top
Extra Credit
The following are worth extra credit points:
- Graphics-based application (2 points)
- Code a function that makes a recursive call. (2 points)
- Code a vector of objects from a class that you wrote and process the vector in a loop. (2 points)
- Sort a vector using the STL
sort() function from the algorithm library (1 point)
- Write your own sorting algorithm and apply it to a vector. Name your function
sortXXX() where XXX can be anything. State your source for the algorithm in your "README.txt" file. (2 points)
- Create HTML documentation for your program using Doxygen and submitting the documentation in a zip file. (1 point)
- Use your imagination and code C++ features not covered in this course -- be sure to clearly identify your creative features. (0 to 4 points)
- 0: Extra credit feature is trivial or does not work
- 1: Extra credit is simple and works
- 2: Two simple extra credit features or one complex or imaginative use of a feature
- 3: Three simple features or one simple features and one complex or imaginative use of a feature
- 4: Four simple features, two complex or imaginative use of a feature, or some combination
Make certain that your README.txt file lists any extra credit attempted and the file and line number of the extra credit where appropriate. Without the file and line number I may not see the extra credit.
^ top
Sampler Report
The final report is an enhanced README.txt file. Start with the usual README.txt information but add the following:
- Brief introduction describing the purpose of your project and 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 do not list the specification, with a file and line number, then I will assume you did not meet the requirement
- A list of any extra-credit features
For an example sampler report see README11.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.
^ top
Sampler Presentation
- You are required to demonstrate your sampler project on the assigned day, but not necessarily in front of the class
- When everyone else is done, you can present it to the instructor individually
- Make certain you upload your project to Blackboard before class
- Give a copy of your project report to the instructor before your presentation
- Plan on keeping the presentation to 5 minutes or less.
Suggested Presentation Flow
- State your name and your project's name.
- Briefly state your program's purpose.
- Compile your source code.
- Demonstrate your program, explaining features as you go.
Feel free to refer to or display your written report during the presentation. Show the file that your program reads from and writes to. Point out as many of the cool features as possible so we can all admire them.
- Summarize the project.
When the demonstration is over, or your time is up, then quickly summarize the program's purpose. Then pause for about 10 seconds to give us a chance to applaud!
^ top
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 in parentheses for each demonstrated feature in the specifications. (38 points)
Program Compilation
- 4: Source code compiles with no errors or warnings
- 3: Source code compiles with 1 warning
- 2: Source code compiles with 2 warnings
- 1: Source code compiles with 3+ warnings
- 0: Does not compile or wrong file turned in
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 by the specified time
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 report or not presented at the specified time
Nominal Maximum Score: 60, plus extra credit
^ top
What to Turn In
Submit your assignment following the instructions for homework. Include the following items for grading:
- README.txt file containing the sampler report
- All source code files
- 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 bloated files or viruses.
^ top
Home
| Blackboard
| Announcements
| Day Schedule
| Eve Schedule
Course info
| Help
| FAQ's
| HowTo's
| Links
Last Updated: June 03 2009 @22:25:29
|