The problem
An electronics company sells circuit boards at a 40 percent profit, If you know the retail price of a circuit board, you can calculate its profit with the following formula:
- Profit = Retail price x 0.4
Write a program that asks the user for the retail price of a circuit board calculates the amount of profit earned for that product, and displays the result on the screen.
Breaking it down
// profit as a percentage constant
final static double PROFIT_AS_PERCENT = 0.4;
public static void main(String[] args) {
// Create a Scanner object for keyboard input.
Scanner keyboard = new Scanner(System.in);
// Get the number of years.
System.out.print("Enter the circuit board's retail price: ");
double retailPrice = keyboard.nextDouble();
// Call method to calculate profit.
double profit = calculateProfit(retailPrice);
// Display the amount of profit.
System.out.println("Amount of profit: $" + profit);
// close keyboard
keyboard.close();
}
/**
* Method will return the profit based on the
* retail price and PROFIT_AS_PERCENT constant.
*
* @param retailPrice
* @return number representing profit
*/
public static double calculateProfit(double retailPrice) {
return retailPrice * PROFIT_AS_PERCENT;
}
Output
Enter the circuit board's retail price: 100
Amount of profit: $40.0
Unit tests
@Test
public void test_calculateProfit() {
double value = CircuitBoardProfit.calculateProfit(100);
assertEquals(40, value, 0);
}
Level Up
- When displaying the output, instead of concatenating the $ symbol, what other way could you format the number?
- Instead of using Scanner, which other way could you write this program for user interaction?