JAVA: An Introduction to Problem Solving & Programming, 5th Ed. By Walter Savitch.
ISBN 013149202

th Ed. By Walter Savitch.

## Listing 1.1

```import java.util.Scanner;
public class FirstProgram
{
public static void main (String [] args)
{
System.out.println ("Hello out there.");
System.out.println ("I will add two numbers for you.");
System.out.println ("Enter two whole numbers on a line:");
int n1, n2;
Scanner keyboard = new Scanner (System.in);
n1 = keyboard.nextInt ();
n2 = keyboard.nextInt ();
System.out.println ("The sum of those two numbers is");
System.out.println (n1 + n2);
}
}```

## Listing 1.2

```import javax.swing.JApplet;
import java.awt.Graphics;
public class HappyFace extends JApplet
{
public void paint (Graphics canvas)
{
canvas.drawOval (100, 50, 200, 200);
canvas.fillOval (155, 100, 10, 20);
canvas.fillOval (230, 100, 10, 20);
canvas.drawArc (150, 160, 100, 50, 180, 180);
}
}```

## Listing 2.1

```public class EggBasket
{
public static void main (String [] args)
{
System.out.println ("If you have");
System.out.println ("the total number of eggs is " + totalEggs);
}
}```

## Listing 2.2

```import java.util.Scanner;
{
public static void main (String [] args)
{
Scanner keyboard = new Scanner (System.in);
System.out.println ("Enter the number of eggs in each basket:");
System.out.println ("Enter the number of baskets:");
System.out.println ("If you have");
System.out.println ("the total number of eggs is " + totalEggs);
System.out.println ("Now we take two eggs out of each basket.");
System.out.println ("You now have");
System.out.println ("The new total number of eggs is " + totalEggs);
}
}```

## Listing 2.3

```import java.util.Scanner;
public class ChangeMaker
{
public static void main (String [] args)
{
int amount, originalAmount,
quarters, dimes, nickels, pennies;
System.out.println ("Enter a whole number from 1 to 99.");
System.out.println ("I will find a combination of coins");
System.out.println ("that equals that amount of change.");
Scanner keyboard = new Scanner (System.in);
amount = keyboard.nextInt ();
originalAmount = amount;
quarters = amount / 25;
amount = amount % 25;
dimes = amount / 10;
amount = amount % 10;
nickels = amount / 5;
amount = amount % 5;
pennies = amount;
System.out.println (originalAmount +
" cents in coins can be given as:");
System.out.println (quarters + " quarters");
System.out.println (dimes + " dimes");
System.out.println (nickels + " nickels and");
System.out.println (pennies + " pennies");
}
}```

## Listing 2.4

```public class StringDemo
{
public static void main (String [] args)
{
String sentence = "Text processing is hard!";
int position = sentence.indexOf ("hard");
System.out.println (sentence);
System.out.println ("012345678901234567890123");
System.out.println ("The word \"hard\" starts at index "
+ position);
sentence = sentence.substring (0, position) + "easy!";
sentence = sentence.toUpperCase ();
System.out.println ("The changed string is:");
System.out.println (sentence);
}
}```

## Listing 2.5

```import java.util.Scanner;
public class ScannerDemo
{
public static void main (String [] args)
{
Scanner keyboard = new Scanner (System.in);
System.out.println ("Enter two whole numbers");
System.out.println ("separated by one or more spaces:");
int n1, n2;
n1 = keyboard.nextInt ();
n2 = keyboard.nextInt ();
System.out.println ("You entered " + n1 + " and " + n2);
System.out.println ("Next enter two numbers.");
System.out.println ("A decimal point is OK.");
double d1, d2;
d1 = keyboard.nextDouble ();
d2 = keyboard.nextDouble ();
System.out.println ("You entered " + d1 + " and " + d2);
System.out.println ("Next enter two words:");
String s1, s2;
s1 = keyboard.next ();
s2 = keyboard.next ();
System.out.println ("You entered \"" +
s1 + "\" and \"" + s2 + "\"");
s1 = keyboard.nextLine (); //To get rid of '\n'
System.out.println ("Next enter a line of text:");
s1 = keyboard.nextLine ();
System.out.println ("You entered: \"" + s1 + "\"");
}
}```

## Listing 2.6

```import java.util.Scanner;
public class DelimitersDemo
{
public static void main (String [] args)
{
Scanner keyboard1 = new Scanner (System.in);
Scanner keyboard2 = new Scanner (System.in);
keyboard2.useDelimiter ("##");
//The delimiters for keyboard1 are the whitespace characters.
//The only delimiter for keyboard2 is ##.
String s1, s2;
System.out.println ("Enter a line of text with two words:");
s1 = keyboard1.next ();
s2 = keyboard1.next ();
System.out.println ("the two words are \"" + s1 +
"\" and \"" + s2 + "\"");
System.out.println ("Enter a line of text with two words");
System.out.println ("delimited by ##:");
s1 = keyboard2.next ();
s2 = keyboard2.next ();
System.out.println ("the two words are \"" + s1 +
"\" and \"" + s2 + "\"");
}
}```

## Listing 2.7

```import java.util.Scanner;

/**
Program to compute area of a circle.
Author: Jane Q. Programmer.
Programming Assignment 2.
Last Changed: October 7, 2008.
*/

public class CircleCalculation
{
public static void main (String [] args)
{
double area; //in square inches
Scanner keyboard = new Scanner (System.in);
System.out.println ("Enter the radius of a circle in inches:");
System.out.println ("has an area of " + area + " square inches.");
}
}```

## Listing 2.8

```import java.util.Scanner;
/**
Program to compute area of a circle.
Author: Jane Q. Programmer.
Programming Assignment 2.
Last Changed: October 7, 2008.
*/
public class CircleCalculation2
{
public static final double PI = 3.14159;
public static void main (String [] args)
{
double area; //in square inches
Scanner keyboard = new Scanner (System.in);
System.out.println ("Enter the radius of a circle in inches:");
System.out.println ("has an area of " + area + " square inches.");
}
} ```

## Listing 2.9

```import javax.swing.JApplet;
import java.awt.Graphics;
/**
Applet that displays a happy face.
Author: Jane Q. Programmer.
Revision of Listing 1.2.
*/
public class HappyFace extends JApplet
{
public static final int FACE_DIAMETER = 200;
public static final int X_FACE = 100;
public static final int Y_FACE = 50;
public static final int EYE_WIDTH = 10;
public static final int EYE_HEIGHT = 20;
public static final int X_RIGHT_EYE = 155;
public static final int Y_RIGHT_EYE = 95;
public static final int X_LEFT_EYE = 230;
public static final int Y_LEFT_EYE = Y_RIGHT_EYE;
public static final int MOUTH_WIDTH = 100;
public static final int MOUTH_HEIGHT = 50;
public static final int X_MOUTH = 150;
public static final int Y_MOUTH = 175;
public static final int MOUTH_START_ANGLE = 180;
public static final int MOUTH_EXTENT_ANGLE = 180;
public void paint (Graphics canvas)
{
//Draw face outline:
canvas.drawOval (X_FACE, Y_FACE, FACE_DIAMETER, FACE_DIAMETER);
//Draw eyes:
canvas.fillOval (X_RIGHT_EYE, Y_RIGHT_EYE, EYE_WIDTH, EYE_HEIGHT);
canvas.fillOval (X_LEFT_EYE, Y_LEFT_EYE, EYE_WIDTH, EYE_HEIGHT);
//Draw mouth:
canvas.drawArc (X_MOUTH, Y_MOUTH, MOUTH_WIDTH, MOUTH_HEIGHT,
MOUTH_START_ANGLE, MOUTH_EXTENT_ANGLE);
}
}```

## Listing 2.10

```import javax.swing.JOptionPane;
public class JOptionPaneDemo
{
public static void main (String [] args)
{
String appleString =
JOptionPane.showInputDialog ("Enter number of apples:");
int appleCount = Integer.parseInt (appleString);
String orangeString =
JOptionPane.showInputDialog ("Enter number of oranges:");
int orangeCount = Integer.parseInt (orangeString);
int totalFruitCount = appleCount + orangeCount;
JOptionPane.showMessageDialog (null,
"The total number of fruits = " + totalFruitCount);
System.exit (0);
}
} ```

## Listing 2.11

```import javax.swing.JOptionPane;
public class ChangeMakerWindow
{
public static void main (String [] args)
{
String amountString = JOptionPane.showInputDialog (
"Enter a whole number from 1 to 99.\n" +
"I will output a combination of coins\n" +
"that equals that amount of change.");
int amount, originalAmount,
quarters, dimes, nickels, pennies;
amount = Integer.parseInt (amountString);
originalAmount = amount;
quarters = amount / 25;
amount = amount % 25;
dimes = amount / 10;
amount = amount % 10;
nickels = amount / 5;
amount = amount % 5;
pennies = amount;
JOptionPane.showMessageDialog (null, originalAmount +
" cents in coins can be given as:\n" +
quarters + " quarters\n" +
dimes + " dimes\n" +
nickels + " nickels and\n" +
pennies + " pennies");
System.exit (0);
}
}```

## Listing 3.1

```import java.util.Scanner;
public class BankBalance
{
public static final double OVERDRAWN_PENALTY = 8.00;
public static final double INTEREST_RATE = 0.02; //2% annually
public static void main (String [] args)
{
double balance;
System.out.print ("Enter your checking account balance: \$");
Scanner keyboard = new Scanner (System.in);
balance = keyboard.nextDouble ();
System.out.println ("Original balance \$" + balance);
if (balance >= 0)
balance = balance + (INTEREST_RATE * balance) / 12;
else
balance = balance - OVERDRAWN_PENALTY;
System.out.print ("After adjusting for one month ");
System.out.println ("of interest and penalties,");
System.out.println ("your new balance is \$" + balance);
}
}```

## Listing 3.2

```import java.util.Scanner;
public class StringEqualityDemo
{
public static void main (String [] args)
{
String s1, s2;
System.out.println ("Enter two lines of text:");
Scanner keyboard = new Scanner (System.in);
s1 = keyboard.nextLine ();
s2 = keyboard.nextLine ();
if (s1.equals (s2))
System.out.println ("The two lines are equal.");
else
System.out.println ("The two lines are not equal.");
if (s2.equals (s1))
System.out.println ("The two lines are equal.");
else
System.out.println ("The two lines are not equal.");
if (s1.equalsIgnoreCase (s2))
System.out.println (
"But the lines are equal, ignoring case.");
else
System.out.println (
"Lines are not equal, even ignoring case.");
}
}```

## Listing 3.3

```import java.util.Scanner;
{
public static void main (String [] args)
{
int score;
Scanner keyboard = new Scanner (System.in);
score = keyboard.nextInt ();
if (score >= 90)
else if (score >= 80)
else if (score >= 70)
else if (score >= 60)
else
System.out.println ("Score = " + score);
}
}```

## Listing 3.3

```import java.util.Scanner;
public class MultipleBirths
{
public static void main (String [] args)
{
int numberOfBabies;
System.out.print ("Enter number of babies: ");
Scanner keyboard = new Scanner (System.in);
numberOfBabies = keyboard.nextInt ();
switch (numberOfBabies)
{
case 1:
System.out.println ("Congratulations.");
break;
case 2:
System.out.println ("Wow. Twins.");
break;
case 3:
System.out.println ("Wow. Triplets.");
break;
case 4:
case 5:
System.out.print ("Unbelieveable; ");
System.out.println (numberOfBabies + " babies.");
break;
default:
System.out.println ("I don't believe you.");
break;
}
}
}```

## Listing 3.5

```import javax.swing.JApplet;
import java.awt.Color;
import java.awt.Graphics;
public class YellowFace extends JApplet
{
public static final int FACE_DIAMETER = 200;
public static final int X_FACE = 100;
public static final int Y_FACE = 50;
public static final int EYE_WIDTH = 10;
public static final int EYE_HEIGHT = 20;
public static final int X_RIGHT_EYE = 155;
public static final int Y_RIGHT_EYE = 95;
public static final int X_LEFT_EYE = 230;
public static final int Y_LEFT_EYE = Y_RIGHT_EYE;
public static final int NOSE_DIAMETER = 10;
public static final int X_NOSE = 195; //Center of nose will be at 200
public static final int Y_NOSE = 135;
public static final int MOUTH_WIDTH = 100;
public static final int MOUTH_HEIGHT = 50;
public static final int X_MOUTH = 150;
public static final int Y_MOUTH = 175;
public static final int MOUTH_START_ANGLE = 180;
public static final int MOUTH_EXTENT_ANGLE = 180;
public void paint (Graphics canvas)
{
//Draw face interior and outline:
canvas.setColor (Color.YELLOW);
canvas.fillOval (X_FACE, Y_FACE, FACE_DIAMETER, FACE_DIAMETER);
canvas.setColor (Color.BLACK);
canvas.drawOval (X_FACE, Y_FACE, FACE_DIAMETER, FACE_DIAMETER);
//Draw eyes:
canvas.setColor (Color.BLUE);
canvas.fillOval (X_RIGHT_EYE, Y_RIGHT_EYE, EYE_WIDTH, EYE_HEIGHT);
canvas.fillOval (X_LEFT_EYE, Y_LEFT_EYE, EYE_WIDTH, EYE_HEIGHT);
//Draw nose:
canvas.setColor (Color.BLACK);
canvas.fillOval (X_NOSE, Y_NOSE, NOSE_DIAMETER, NOSE_DIAMETER);
//Draw mouth:
canvas.setColor (Color.RED);
canvas.drawArc (X_MOUTH, Y_MOUTH, MOUTH_WIDTH, MOUTH_HEIGHT,
MOUTH_START_ANGLE, MOUTH_EXTENT_ANGLE);
}
}```