Circuit board profit

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?