Learn To Program With Java
Smiley Publishing
Errata and Source Code
 


Source Code

Interested in Source Code? You can download a Zip File (it's not large, about (95 Kb) of all the Examples and Exercises from the book by clicking here. Once downloaded, uncompress the file, and a folder called LTPJFILES will be installed on your PC. There are subfolders called Examples, Grades and Practice, with subfolders for each chapter in the book. In order to run the code, you'll need to compile the source code into Java Bytecode classes.


Errata list


Chapter 9

My thanks to Gary Mielak and Keith Monk for pointing out an issue with the Grades Project beginning with Chapter 9.

Specifically..

The set function does not prevent negative numbers or positive grade numbers, over a 100 from entering the calculation procedure.  It is the same for all 3 student types. 

In fact, the mutator() methods written in Chapter 8 are never used!

Resolution:

I'm embarrassed to say this but...

I wrote the first version of the book in 2002, and it's hard to believe that an error of this kind has remained in it for over 20 years, but several readers have recently found it.
 
I started my detective work in the chapter where I first use the mutator methods---chapter 8.
 
This is a perfect illustration of how being so close to a project that it hampers your ability to see the forest for the trees---I must have tested this code only with the correct grades, not the invalid grades. 
 
It seems that neither I (nor my fictional students) executed the code with negative numbers or numbers out of bound. 
 
Let's use the midterm grade calculation in the English class as an illustration.
 
Although I wrote the setMidterm() mutator method, I never execute it within the class!

Specifically within the calculate() method where the prompts for the various grade components occur.

 
The results of the input dialog are set directly to the private variables, whereas they should be sent to the various mutator() methods. 

I've corrected the code for the midterm prompt within the calculate() method below---there are 2 ways to achieve this. 

The first executes the code as written now, then passes the midterm grade to the setMidterm() method as an argument...

  public void calculate()
      {
         midterm = Integer.parseInt(JOptionPane.showInputDialog
          ( "Enter the Midterm Grade" ));
         setMidterm(midterm);

The second method is what most Java experienced programmers would use---passing the result as an argument to the setMidterm() method.

 
  public void calculate()
      {
         setMidterm(Integer.parseInt(JOptionPane.showInputDialog
          ( "Enter the Midterm Grade" )));
 
Does that make sense?
 
Of course, all 3 student classes need to be modified to use the set mutator() methods.