JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch.
ISBN 0133862119
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved

 

 

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)
    {
        super.paint(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)
    {
        int numberOfBaskets, eggsPerBasket, totalEggs;
        numberOfBaskets = 10;
        eggsPerBasket = 6;
        totalEggs = numberOfBaskets * eggsPerBasket;
        System.out.println ("If you have");
        System.out.println (eggsPerBasket + " eggs per basket and");
        System.out.println (numberOfBaskets + " baskets, then");
        System.out.println ("the total number of eggs is " + totalEggs);
    }
}

 

 

 

Listing 2.2

import java.util.Scanner;
public class EggBasket2
{
    public static void main (String [] args)
    {
        int numberOfBaskets, eggsPerBasket, totalEggs;
        Scanner keyboard = new Scanner (System.in);
        System.out.println ("Enter the number of eggs in each basket:");
        eggsPerBasket = keyboard.nextInt ();
        System.out.println ("Enter the number of baskets:");
        numberOfBaskets = keyboard.nextInt ();
        totalEggs = numberOfBaskets * eggsPerBasket;
        System.out.println ("If you have");
        System.out.println (eggsPerBasket + " eggs per basket and");
        System.out.println (numberOfBaskets + " baskets, then");
        System.out.println ("the total number of eggs is " + totalEggs);
        System.out.println ("Now we take two eggs out of each basket.");
        eggsPerBasket = eggsPerBasket - 2;
        totalEggs = numberOfBaskets * eggsPerBasket;
        System.out.println ("You now have");
        System.out.println (eggsPerBasket + " eggs per basket and");
        System.out.println (numberOfBaskets + " baskets.");
        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.
E-mail Address: janeq@somemachine.etc.etc.
Programming Assignment 2.
Last Changed: October 7, 2008.
*/

public class CircleCalculation
{
    public static void main (String [] args)
    {
        double radius; //in inches
        double area; //in square inches
        Scanner keyboard = new Scanner (System.in);
        System.out.println ("Enter the radius of a circle in inches:");
        radius = keyboard.nextDouble ();
        area = 3.14159 * radius * radius;
        System.out.println ("A circle of radius " + radius + " 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.
E-mail Address: janeq@somemachine.etc.etc.
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 radius; //in inches
        double area; //in square inches
        Scanner keyboard = new Scanner (System.in);
        System.out.println ("Enter the radius of a circle in inches:");
        radius = keyboard.nextDouble ();
        area = PI * radius * radius;
        System.out.println ("A circle of radius " + radius + " 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)
    {
        super.paint(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.JFrame;
import java.awt.Graphics;
/**
JFrame that displays a happy face.
Author: Jane Q. Programmer.
Revision of Listing 2.9.
*/
public class HappyFaceJFrame extends JFrame
{
    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)
    {
        super.paint(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);
    }
    public HappyFaceJFrame()
    {
		setSize(600,400);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
	}
	public static void main(String[] args)
	{
		HappyFaceJFrame guiWindow = new HappyFaceJFrame();
		guiWindow.setVisible(true);
	}
}

 

 

 

Listing 2.11

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.12

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 class Grader
{
    public static void main (String [] args)
    {
        int score;
        char grade;
        System.out.println ("Enter your score: ");
        Scanner keyboard = new Scanner (System.in);
        score = keyboard.nextInt ();
        if (score >= 90)
            grade = 'A';
        else if (score >= 80)
            grade = 'B';
        else if (score >= 70)
            grade = 'C';
        else if (score >= 60)
            grade = 'D';
        else
            grade = 'F';
        System.out.println ("Score = " + score);
        System.out.println ("Grade = " + grade);
    }
}

 

 

 

Listing 3.4


import java.util.Scanner;

public class BMI
{
	public static void main(String[] args)
	{
		Scanner keyboard = new Scanner(System.in);
		int pounds, feet, inches;
		double heightMeters, mass, BMI;

		System.out.println("Enter your weight in pounds.");
		pounds = keyboard.nextInt();
		System.out.println("Enter your height in feet " +
				"followed by a space then additional inches.");
		feet = keyboard.nextInt();
		inches = keyboard.nextInt();

		// Convert to meters and kilograms
		heightMeters = ((feet * 12) + inches) * 0.0254;
		mass = (pounds / 2.2);

		// Compute BMI and output health category
		BMI = mass / (heightMeters * heightMeters);
		System.out.println("Your BMI is " + BMI);
		System.out.print("Your risk category is " );
		if (BMI < 18.5)
			System.out.println("Underweight.");
		else if (BMI < 25)
			System.out.println("Normal weight.");
		else if (BMI < 30)
			System.out.println("Overweight.");
		else
			System.out.println("Obese.");
	}
}

 

 

 

Listing 3.5

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.6

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)
    {
        super.paint(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);
    }
}