posted 14 years ago
I am having a problem with the following exercise out of my University text book. I have figured out how to do everything except how to not display 0 amounts. Any help would be appreciated. Please bear with the length.
Thanks.
import javax.swing.JOptionPane;
public class Exercise3_1 {
/** Main method */
public static void main(String[] args) {
int amount; // Amount entered from the keyboard
// Receive the amount entered from the keyboard
String amountString = JOptionPane.showInputDialog(null,
"Enter an amount in integer, for example 1156",
"Compute Change", JOptionPane.QUESTION_MESSAGE);
// Convert string to integer
amount = Integer.parseInt(amountString);
int remainingAmount = amount;
// Find the number of one dollars
int numOfOneDollars = remainingAmount / 100;
remainingAmount = remainingAmount % 100;
// Find the number of quarters in the remaining amount
int numOfQuarters = remainingAmount / 25;
remainingAmount = remainingAmount % 25;
// Find the number of dimes in the remaining amount
int numOfDimes = remainingAmount / 10;
remainingAmount = remainingAmount % 10;
// Find the number of nickels in the remaining amount
int numOfNickels = remainingAmount / 5;
remainingAmount = remainingAmount % 5;
// Find the number of pennies in the remaining amount
int numOfPennies = remainingAmount;
String dollar = "";
String quarter = "";
String dime = "";
String nickel = "";
String penny = "";
if (numOfOneDollars == 0)
dollar = "";
else
dollar = (numOfOneDollars == 1) ? " Dollar" : " Dollars";
if (numOfQuarters == 0)
quarter = "";
else
quarter = (numOfQuarters == 1) ? " Quarter" : " Quarters";
if (numOfDimes == 0)
dime = "";
else
dime = (numOfDimes == 1) ? " Dime" : " Dimes";
if (numOfNickels == 0)
nickel = "";
else
nickel = (numOfNickels == 1) ? " Nickel" : " Nickels";
if (numOfPennies == 0)
penny = "";
else
penny = (numOfPennies ==1) ? " Penny" : " Pennies";
// Display results
String output = "Your amount " + amount + " consists of \n" +
numOfOneDollars + dollar + " \n" +
numOfQuarters + quarter + " \n" +
numOfDimes + dime + " \n" +
numOfNickels + nickel + " \n" +
numOfPennies + penny;
JOptionPane.showMessageDialog(null, output,
"Example 2.4 Output", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
Thanks.
import javax.swing.JOptionPane;
public class Exercise3_1 {
/** Main method */
public static void main(String[] args) {
int amount; // Amount entered from the keyboard
// Receive the amount entered from the keyboard
String amountString = JOptionPane.showInputDialog(null,
"Enter an amount in integer, for example 1156",
"Compute Change", JOptionPane.QUESTION_MESSAGE);
// Convert string to integer
amount = Integer.parseInt(amountString);
int remainingAmount = amount;
// Find the number of one dollars
int numOfOneDollars = remainingAmount / 100;
remainingAmount = remainingAmount % 100;
// Find the number of quarters in the remaining amount
int numOfQuarters = remainingAmount / 25;
remainingAmount = remainingAmount % 25;
// Find the number of dimes in the remaining amount
int numOfDimes = remainingAmount / 10;
remainingAmount = remainingAmount % 10;
// Find the number of nickels in the remaining amount
int numOfNickels = remainingAmount / 5;
remainingAmount = remainingAmount % 5;
// Find the number of pennies in the remaining amount
int numOfPennies = remainingAmount;
String dollar = "";
String quarter = "";
String dime = "";
String nickel = "";
String penny = "";
if (numOfOneDollars == 0)
dollar = "";
else
dollar = (numOfOneDollars == 1) ? " Dollar" : " Dollars";
if (numOfQuarters == 0)
quarter = "";
else
quarter = (numOfQuarters == 1) ? " Quarter" : " Quarters";
if (numOfDimes == 0)
dime = "";
else
dime = (numOfDimes == 1) ? " Dime" : " Dimes";
if (numOfNickels == 0)
nickel = "";
else
nickel = (numOfNickels == 1) ? " Nickel" : " Nickels";
if (numOfPennies == 0)
penny = "";
else
penny = (numOfPennies ==1) ? " Penny" : " Pennies";
// Display results
String output = "Your amount " + amount + " consists of \n" +
numOfOneDollars + dollar + " \n" +
numOfQuarters + quarter + " \n" +
numOfDimes + dime + " \n" +
numOfNickels + nickel + " \n" +
numOfPennies + penny;
JOptionPane.showMessageDialog(null, output,
"Example 2.4 Output", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
Mark Vermeer
Greenhorn
Posts: 2
posted 14 years ago
You might want to work on this section of your code:
If I understand you correctly, if all you had was one dollar, then you would want your output to be simply "Your amount $1.00 consists of one dollar".
If that's the case, let me give you a couple of hints to point you in the right direction. you should actually check out the StringBuffer class to do this with, since it's more efficient. In any event, what you might think about when building your output String is checking if your amount of a particular currency is greater than zero, and if it is, append the appropriate text to your String or StringBuffer.
If you initialize your StringBuffer eariler, you actually already have your if statements in place to determine whether or not to append anything to the StringBuffer, and what you should append.
HTH
[ November 07, 2003: Message edited by: Jason Menard ]
If I understand you correctly, if all you had was one dollar, then you would want your output to be simply "Your amount $1.00 consists of one dollar".
If that's the case, let me give you a couple of hints to point you in the right direction. you should actually check out the StringBuffer class to do this with, since it's more efficient. In any event, what you might think about when building your output String is checking if your amount of a particular currency is greater than zero, and if it is, append the appropriate text to your String or StringBuffer.
If you initialize your StringBuffer eariler, you actually already have your if statements in place to determine whether or not to append anything to the StringBuffer, and what you should append.
HTH
[ November 07, 2003: Message edited by: Jason Menard ]
please buy this thing and then I get a fat cut of the action:
The WEB SERVICES and JAXRS Course
https://coderanch.com/t/690789/WEBSERVICESJAXRS
