CSCI 201 Lab 11 -- Parameters and Classes in C++

Getting ready

If a directory called C:\FILES\Lab11 presently exists on your computer, delete it.

Download a ZIP'ed copy of the Lab 11 project and store it in the C:\FILES directory.

Go into the MS-DOS prompt and execute the following commands:

This should create two new directories called SwapEm and Stoplite.

Parameter passing

In this lab we'll experiment with different ways of passing parameters. First open and build C:\FILES\Lab11\SwapEm\SwapEm.dsw. Take a look at the program SwapEm.cpp. The program should look familar. Notice that the two formal arguments of the SwapEm are not reference variables.

Rather than running the program, step through it with the debugger. Press F10 to move one statement at a time through the main routine. When the yellow arrow reaches the call to SwapEm, press F11 to move into the SwapEm routine. Then contine to press F10 to move through the statements of SwapEm.

As you step through the program, pay attention to the variables window at the bottom off your Visual C++ window. At first, it will display variables of main
Variables of main
but, as your move into SwapEm, it displays variables of SwapEm.
Variables of SwapEm
The information displayed in a variables window is the contents of C++ function activation records.

Step to the statement FormArg2 = Temp
Now move your mouse into the variables and move between the activation records of main and SwapEm. You do this selecting from a pull-down menu that is displayed when you click on the down arrow at the right end of the textbox labeled Context.

Instructor Checkoff I

Modify the code so that SwapEm has reference parameters. Again step through to the statement FormArg2 = Temp. Show your instructor the activiation records for main and SwapEm.


Now we continue improving the stoplight of Lab 10. Open, build, and execute c:\files\Lab11\stoplite\stoplite.dsw.

This time you'll see two windows. One window is our stoplights from Lab 10. The North-South light should be a solid green, while the East-West light is a blinking red. Right now the second window is nothing more than a magenta background. Now press within the magenta. A car should appear! This car will remain until the East-West light is green for at least fifty Tick's.

The only files you'll change in this lab are stoplite.h and stoplite.cpp. If you'll look very carefully, you'll notice a slight difference between the Lab 10 stoplite.cpp and this one. The difference is in the Tick routine which now takes a single argument called carPresent. The variable carPresent represents a car "pad" on the East-West road. It is non-zero when a car is present, and it is zero when no car is present.

Instructor checkoff II

Modify the StopLight class so that it will go through a single cycle to allow East-West cars to cross the intersection a brief period after they right the signal. Remember that you must hold the green light in the East-West direction for at least fifty Tick's to allow the East-West cars to pass.

Return to CSCI 201 page
CSCI logo Return to the UNCA Computer Science home page