created 09/05/99; revised 06/13/00, 05/07/03


Chapter 31 Programming Exercises

Exercise 1

Modify the Car class of the chapter by adding two methods:

The constructor and the calculateMPG() method remain unchanged. Each of these new methods should use the calculateMPG() to get the miles per gallon, not calculate it themselves. An if-else statement picks the correct boolean return value.

Put user interaction back into the main() method method so the user enters values for each car. The main() method uses these additional methods to write a message to the user if the car is a gas hog or an economy car.

You might be tempted to make one of these common design errors:

  1. Saving miles per gallon in an instance variable of the object along with startMiles, endMiles, and gallons.
  2. Directly calculating miles per gallon inside each of the new methods.
C:\>java Miles
Enter first reading:
10000
Enter second reading:
10400
Enter gallons:
10

Miles per gallon: 40
Economy Car!

Exercise 2

Change the constructor for the Car class so that it has only one parameter, the first reading of the odometer. The miles per gallon cannot yet be calculated. Now add a method to the class:

void fillUp( int miles, double gallons )

This simulates filling up the tank at a gas station: miles is the current odometer reading and gallons is the number of gallons that filled the tank. Save these values in instance variables. With this information, miles per gallon can be calculated. Write the method so that it updates the instance variables each time it is called (simulating another visit to the pumps). After each call calculateMPG() will calculate the latest miles per gallon.

Write a testing class with a main() that constructs a car and calls fillUp() and calculateMPG() a few times.

C:\>java MilesPerGallon
New car odometer reading:
00000

Filling Station Visit
odometer reading
00350
gallons to fill tank
10
Miles per gallon: 35
Economy Car!

Filling Station Visit
odometer reading
00450
gallons to fill tank
10
Miles per gallon:    10
Gas Hog!

End of the Exercises