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);
}
}
|