Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Title: Money, money, money Terms: change format - 0 hundreds, 5 tens, 0 fives, 2 ones, 1 quarter, 1 dime, 0 nickels, 0 pennies dollar

Title: Money, money, money

Terms:

  • change format - 0 hundreds, 5 tens, 0 fives, 2 ones, 1 quarter, 1 dime, 0 nickels, 0 pennies
  • dollar format - $52.35
  • float format - 52.35
  • check format - fifty two dollars and 35 cents

Problem: Money can be represented in various formats. For example, $52.35, fifty two dollars and thirty five cents or even 5 tens, 2 ones, 1 quarter and 10 cents. All of these formats represent the same amount, 52.35. Fast food restaurants have an ongoing challenge of training young employees how to handle dealing with money in its various formats - making change, knowing how much to charge for something, understanding the relationship between a number, like 52.35, and the various ways of representing that amount using the US monetary system. They need your help training the next generation of workers until these somewhat simplistic jobs are turned over to robots.

The currency in each store consists of only hundreds, tens, ones, quarters, dimes, nickels and pennies. Make the least amount of change possible. For example, $11.25 should be 1 ten, 1 one, 1 quarter.

  1. when you see the word "change" take in the change format, output in dollar format
  2. when you see the word "float" take in the float format, output in change format
  3. when you see the word "check" take in the float format, output in check format
  4. when you see the word "change-change" take in the amount given by the customer in change format and the cost of the transaction in float format, output the change to be given to the customer in change format
  5. when you see the word "change-float" take in the amount given by the customer in float format and the cost of the transaction in float format, output the change to be given to the customer in change format

In the repository you will find 2 starting files along with several test files as follows:

  1. testMoney.java - the main test driver that handles reading in the command and calling the appropriate money method
  2. Money.java - the Money class which is where you will place all of your code
  3. testFloat.txt - several "float" command tests
  4. testChange.txt - several "change" command tests
  5. testChangeChange.txt - several "change-change" command tests
  6. testChangeFloat.txt - several "change-float" command tests
  7. testCheck.txt - several "check" command tests
  8. testAll.txt - several different command tests

Sample test data:

change 0 5 0 2 1 1 1 5 change 3 8 0 0 0 99 1 3 float 427.99 float 25.33 check 32.18 check 100 change-float 100.00 52.17 change-change 1 0 0 0 0 0 0 52.17 change 1 1 1 1 1 1 1 change-float 5 .99 change-float 100 .01 

Sample output:

0 hundreds 5 tens 0 fives 2 ones 1 quarters 1 dimes 1 nickels 5 pennies = $52.45 3 hundreds 8 tens 0 fives 0 ones 0 quarters 99 dimes 1 nickels 3 pennies = $389.98 427.99 = 4 hundreds 2 tens 1 fives 2 ones 3 quarters 2 dimes 0 nickels 4 pennies 25.33 = 0 hundreds 2 tens 1 fives 0 ones 1 quarters 0 dimes 1 nickels 3 pennies check for $32.18 = 32 dollars and 18 cents check for $100.00 = 100 dollars and 0 cents change back on $100.00 for purchase of $52.17 is 47.83 which is 0 hundreds 4 tens 1 fives 2 ones 3 quarters 0 dimes 1 nickels 3 pennies change back on 1 hundreds 0 tens 0 fives 0 ones 0 quarters 0 dimes 0 nickels 0 pennies for purchase of $52.17 is 47.83 which is 0 hundreds 4 tens 1 fives 2 ones 3 quarters 0 dimes 1 nickels 3 pennies 1 hundreds 1 tens 0 fives 1 ones 1 quarters 1 dimes 1 nickels 1 pennies = $111.41 change back on $5.00 for purchase of $0.99 is 4.01 which is 0 hundreds 0 tens 0 fives 4 ones 0 quarters 0 dimes 0 nickels 1 pennies change back on $100.00 is 99.99 0 hundreds 9 tens 1 fives 4 ones 3 quarters 2 dimes 0 nickels 4 pennies

Code we build off of Money.Java ( Supposed to code only in this one and add all of the following instructions above, the comments are just supposed to help tell us where to put what ):

import java.util.*;
import java.text.*;
public class Money
{
// declare class variables
double total; // used to store the Money value as a double precision floating point number like 34.2
// you will need more variables declared here to handle each of the currency types; for example int hundreds to keep track of how many hundred dollar bills
// this one will help you print floating point values in US currency format like $10.50
NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.US);
// convert current currency values to a string
public String toString()
{
}
// converts amount to US currency format
public String toCurrency(double amount)
{
return nf.format(Math.round(amount * 100.0) / 100.0);
}
// convert currency to float
// read currency values from Scanner s and compute value
// output results
public void processChange(Scanner s)
{
}
// read from Scanner s and process float command
// convert float to change
// output results
public void processFloat(Scanner s)
{
}
// read from Scanner s and process check command
// convert float to dollar words & cents
// output results
public void processCheck(Scanner s)
{
}
// read from Scanner s and process change-float command
// read float of customer payment
// read float of transaction cost
// calculate difference and compute change values
// output the results
public void processChangeFloat(Scanner s)
{
}
// read from Scanner s and process change-change command
// read change of customer payment
// read float of transaction cost
// calculate difference and compute change values
// output the results
public void processChangeChange(Scanner s)
{
}
}

Code to test our data: moneyTest.Java

import java.util.Scanner;
public class moneyTest
{
public static void main(String[] args)
{
String command;
Money money = new Money();
Scanner scan = new Scanner(System.in);
//
// read each command and call the appropriate Money method
//
while (scan.hasNextLine())
{
command = scan.nextLine();
//
// based on the value read into command, call a Money method
//
switch (command)
{
case "change":
money.processChange(scan);
break;
case "float":
money.processFloat(scan);
break;
case "check":
money.processCheck(scan);
break;
case "change-float":
money.processChangeFloat(scan);
break;
case "change-change":
money.processChangeChange(scan);
break;
default:
System.out.println("invalid command: " + command);
System.exit(1);
}
}
}
}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

SQL Server Query Performance Tuning

Authors: Sajal Dam, Grant Fritchey

4th Edition

1430267429, 9781430267423

More Books

Students also viewed these Databases questions

Question

Summarise the scope of HRM and the key HRM functions

Answered: 1 week ago