1. Using only sequential control (no conditional or iterative control), write a
ID: 3693716 • Letter: 1
Question
1. Using only sequential control (no conditional or iterative control), write a program that accepts an amount of money as a double (e.g., 24.61), and prints out how many dollar (coins), quarters, dimes, nickels, and pennies in that amount that minimizes the total number of coins. In this example, your program should say: The amount $24.51 consists of 24 dollar(s), 2 quarter(s), 1 dime(s), 0 nickel(s), and 1 penny(ies). Note that you do not need to get the singular/plural case of each coin name (e.g., quarter/quarters) correct for this exercise.
Explanation / Answer
Please follow the code and comments for description :
CODE :
import java.io.*;
import javax.swing.*;
import javax.swing.JOptionPane;
public class CoinDriver {
public static void main(String[] args) throws IOException {
// Create a single shared BufferedReader for keyboard input
BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
// Prompt user for input
String x = JOptionPane.showInputDialog( null, "Enter a set amount of money: ");
double amount = Double.parseDouble( x );
// Create new Coin object
Coin c = new Coin(amount);
// Output
System.out.println(" Amount: $" + amount);
System.out.println(" Dollars: " + c.getDollars());
System.out.println("Quarters: " + c.getQuarters());
System.out.println("Dimes: " + c.getDimes());
System.out.println("Nickels: " + c.getNickels());
System.out.println("Pennies: " + c.getPennies());
}
}
public class Coin {
private double amount;
private int dollars;
private int quarters;
private int dimes;
private int nickels;
private int pennies;
public Coin(double amt){
amount = amt * 100;
quarters = 0;
dimes = 0;
nickels = 0;
pennies = 0;
}
public double getAmount(){
return amount;
}
public int getDollars(){
if(amount < 100){
return 0;
}
int numDollars = (int)(amount / 100);
amount -= numDollars * 100;
return numDollars;
}
public int getQuarters(){
if(amount < 25){
return 0;
}
int numQuarters = (int)(amount / 25);
amount -= (numQuarters * 25);
return numQuarters;
}
public int getDimes(){
if(amount < 1){
return 0;
}
int numDimes = (int)(amount / 10);
amount -= (numDimes * 10);
return numDimes;
}
public int getNickels(){
if(amount < 5){
return 0;
}
int numNickels = (int)(amount / 5);
amount -= (numNickels * 5);
return numNickels;
}
public int getPennies(){
if(amount < 1){
return 0;
}
int numPennies = (int)amount;
amount = 0;
return numPennies;
}
}
Hope this is helpful.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.