C++ Program Design: Third Edition

Jim Cohoon and Jack Davidson

  Important features
EzWindows packages
Laboratory materials
Lecture materials
Self-check solutions
Solution manual
Homework assignments



A collection of laboratories suitable for a first course has been developed. The manual is published by McGraw-Hill. The source code for all of the laboratories can be found below. Some sample labs are also provided in PDF format. The files may be viewed and manipulated using Adobe's freely distributed Acrobat Reader.

Unless written permission is granted otherwise by McGraw-Hill, the labs are for use only in conjunction with the text C++ Program Design: An Introduction to Programming and Object-oriented Design.

Associated with each lab are up to three files. One file is a self-extracting archive that when executed produces the necessary program and data files for the lab. The other two files, if present, are PDF files that that contain the instructions for the students and a check-off sheet to record student progress during the lab. A complete set of the self-extracting archives can be downloaded. The complete set is itself a self-extracting archive.

Unless otherwise noted the lab files were last updated on August, 2001.

Lab 0 Instructions
Source files
Introduces students to lab procedures and some basic MS-DOS and Windows commands and use of a browser. The procedures provide information local to UVA. This lab would require some minimal adaptation to be used at other institutions.
Lab 1 Source files Provides students with an introduction to developing programs using an IDE.
Lab 2
Source files
Students develop several simple programs using the basic operators. Students also gain experience with EzWindows. 
Lab 3 Source files Examine logical operators and use if statements to solve several problems.
Lab 4 Source files Use while and for loop constructs. Use fstream library to extract values from data files.
Lab 5 Source files Gain experience with the string class and several standard libraries.
Lab 6 Instructions
Source files
Examine the different types of parameter passing.
Lab 7 Source files Consider scope situations and recursion, and develop several functions
Lab 8 Instructions
Source files
Examine the class definitions for several graphical classes.
Lab 9 Source files Examine several classes and develop member functions for those classes. Overload several operators.
Lab 10 Source files Become familiar with the EzWindows class bitmap and using callbacks to handle timer and mouse events.
Lab 11 Source files Develop skills in the manipulation of arrays.
Lab 12 Source files Develop skills in the manipulation of the vector container class.
Lab 13 Source files Consider the mechanics of inheritance by developing extensions to RectangleShape.
Review lab Source files Apply the skills developed in the first seven labs to solve several programming problems.