
Andy C. answered 09/18/17
Tutor
4.9
(27)
Math/Physics Tutor
import java.util.*;
class MyCashRegister
{
private int numQuarters;
private int numDimes;
private int numNickles;
private int numPennies;
//amounts are stored in pennies
private long amount;
private double input_price;
private long price;
private long change;
private long dollars;
MyCashRegister()
{
numQuarters = 10;
numDimes = 10;
numNickles = 10;
numPennies = 10;
amount = 410; // 10 x ( 25+10+5+1) = 10 x 41
input_price = 0;
price = change =dollars =0;
}
private int Input()
{
int iReturn = 0;
Scanner scanner = new Scanner(System.in);
do
{
System.out.print(" Please input the price :>");
input_price = scanner.nextDouble();
}
while (input_price<=0);
price = (long) (input_price*100.0000);
System.out.println( " input price " + input_price + " : price = " + price);
if (amount > price)
{
if (price<400)
{
dollars = (long) ((Math.floor(input_price)+1)*100);
System.out.println(" dollars = " + dollars);
}
else
{
dollars = price;
System.out.println(" You must pay with exact change ");
iReturn = 1;
}
}
else
{
System.out.println(" You do not have enough money ");
price = 0;
iReturn = -1;
}
return(iReturn);
} //Input
private void Output()
{
int quarters=0;
int dimes=0;
int nickles=0;
int pennies=0;
long Change;
long amtTendered = 0;
if (dollars != price)
{
change = dollars - price;
amtTendered = dollars;
}
else
{
change = amount - price;
amtTendered = amount;
}
Change = change;
quarters = (int) (Change/25);
Change = Change % 25;
dimes = (int) (Change / 10);
Change = Change % 10;
nickles = (int) ( Change/5);
pennies = (int) (Change % 5);
System.out.println("-----------------------------------------");
System.out.println(" The price " + input_price );
System.out.println(" The amount tendered is " + amtTendered/100.0f );
System.out.println(" The change is " + change/100.0f);
System.out.println("-----------------------------------------");
System.out.println(" # of quarters needed : " + quarters );
System.out.println(" # of dimes needed : " + dimes );
System.out.println(" # of nickles needed : " + nickles);
System.out.println(" # of pennies needed : " + pennies );
System.out.println("------------------------------------------");
System.out.println(" # of quarters remaining :" + (numQuarters - quarters));
System.out.println(" # of dimes remaining :" + (numDimes - dimes));
System.out.println(" # of nickles remaining : "+ (numNickles - nickles));
System.out.println(" # of pennies remaining : "+ (numPennies - pennies));
System.out.println("---------------------------------------------------");
}
public void GO()
{
if (Input()>=0)
{
Output();
}
}
public static void main(String args[])
{
MyCashRegister myCashRegister = new MyCashRegister();
myCashRegister.GO();
} //main
}
class MyCashRegister
{
private int numQuarters;
private int numDimes;
private int numNickles;
private int numPennies;
//amounts are stored in pennies
private long amount;
private double input_price;
private long price;
private long change;
private long dollars;
MyCashRegister()
{
numQuarters = 10;
numDimes = 10;
numNickles = 10;
numPennies = 10;
amount = 410; // 10 x ( 25+10+5+1) = 10 x 41
input_price = 0;
price = change =dollars =0;
}
private int Input()
{
int iReturn = 0;
Scanner scanner = new Scanner(System.in);
do
{
System.out.print(" Please input the price :>");
input_price = scanner.nextDouble();
}
while (input_price<=0);
price = (long) (input_price*100.0000);
System.out.println( " input price " + input_price + " : price = " + price);
if (amount > price)
{
if (price<400)
{
dollars = (long) ((Math.floor(input_price)+1)*100);
System.out.println(" dollars = " + dollars);
}
else
{
dollars = price;
System.out.println(" You must pay with exact change ");
iReturn = 1;
}
}
else
{
System.out.println(" You do not have enough money ");
price = 0;
iReturn = -1;
}
return(iReturn);
} //Input
private void Output()
{
int quarters=0;
int dimes=0;
int nickles=0;
int pennies=0;
long Change;
long amtTendered = 0;
if (dollars != price)
{
change = dollars - price;
amtTendered = dollars;
}
else
{
change = amount - price;
amtTendered = amount;
}
Change = change;
quarters = (int) (Change/25);
Change = Change % 25;
dimes = (int) (Change / 10);
Change = Change % 10;
nickles = (int) ( Change/5);
pennies = (int) (Change % 5);
System.out.println("-----------------------------------------");
System.out.println(" The price " + input_price );
System.out.println(" The amount tendered is " + amtTendered/100.0f );
System.out.println(" The change is " + change/100.0f);
System.out.println("-----------------------------------------");
System.out.println(" # of quarters needed : " + quarters );
System.out.println(" # of dimes needed : " + dimes );
System.out.println(" # of nickles needed : " + nickles);
System.out.println(" # of pennies needed : " + pennies );
System.out.println("------------------------------------------");
System.out.println(" # of quarters remaining :" + (numQuarters - quarters));
System.out.println(" # of dimes remaining :" + (numDimes - dimes));
System.out.println(" # of nickles remaining : "+ (numNickles - nickles));
System.out.println(" # of pennies remaining : "+ (numPennies - pennies));
System.out.println("---------------------------------------------------");
}
public void GO()
{
if (Input()>=0)
{
Output();
}
}
public static void main(String args[])
{
MyCashRegister myCashRegister = new MyCashRegister();
myCashRegister.GO();
} //main
}