CS 2005, B Term 1999
Techniques of Programming
Lab 1 (Nov. 3)
The objective of this lab session is for you to implement a test program
for a C++ class that represents points in a plane. This experience will
provide practice in the syntax of C++ classes and their access methods,
and it should prove to be helpful in completing HW1.
- Sign in with the TA. You should both print your name
and sign the sheet.
- Listen to the TA's mini-lecture.
- Do the problems listed below. Feel free to ask the TA
questions about the problems. Don't worry if you can't
finish all of the problems before the lab session is over.
You can finish afterwards. However, actively working
on the lab assignment during the lab session is required.
Log onto your CCC Unix account and change the directory
Copies of both the specification file newpoint.h and a separate
implementation file newpoint.cxx for the Point class
are available in that directory.
- Copy the above files to one of your own personal directories.
- Compile the implementation file newpoint.cxx by typing
g++ -Wall -c newpoint.cxx
at the Unix prompt. This produces an object file newpoint.o
but does not produce an executable file.
You may type man g++ at the Unix prompt for information about
compiler options and details.
Write your own test program pointtest.cxx that allows the
user to manipulate objects of the Point class through the
public member functions and non-member functions provided in newpoint.h.
Your program should provide a menu of options including, at least,
an option to create a Point object with given coordinates,
an option to shift a Point object by given displacements,
and an option to rotate a Point object by 90 degrees.
An executable file for a minimal sample test program
is available in /cs/cs2005/samples/lab1/goodpointtest.
You should run the sample test program to see how
your own test program should behave.
Also see section 3.3 of the textbook and the Lab0 files in
/cs/cs2005/samples/lab0/ for examples of test program
source code for different classes.
Compile your test program pointtest.cxx by typing
g++ -Wall -o pointtest pointtest.cxx newpoint.o -lm
at the Unix prompt. This compiles the test program, links the
Point class implementation to it, and produces an executable
file named pointtest.
Run the executable file pointtest. Try it out using different options.
Compare with the sample test program provided in
Debug your program as needed.
In order to streamline the compilation and linking process,
write a Makefile for your Lab1 project.
This file should contain the required compiler/linker commands as
described above, as well as a description of the relevant dependencies
between the various files involved. Typing make at the Unix prompt
causes the commands contained in the makefile to be carried out
(you may want to remove some of the object and executable files
before trying this).
Refer to /cs/cs2005/samples/lab0/ for an example of a Makefile.
See the CS2005 homepage for links to further information about Makefiles.
Use any remaining time to work on HW1.
Studying the Lab1 files provided in /cs/cs2005/samples/lab1/
may be helpful for this purpose.