Calculating Area

From CompSciWiki
Revision as of 12:52, 9 April 2010 by TimC (Talk | contribs)

Jump to: navigation, search

Back to the Program-A-Day homepage

Problem

It's time to replace the carpet in your living room, but how much will it cost? The carpet you want costs $8 per square foot plus an installation fee of $500. Your roommate has agreed to pay half, and you have a coupon for $50 off the total cost. Write a program that accepts the length and width (as integers) of a room. Calculate the total cost (as a double) of carpeting by multiplying the square footage by the price per square foot, plus installation. Your program will print total square footage, total cost, and your cost (half the total cost less the coupon).

To solve this problem, you will need to understand:


Sample output with length 20, width 30:

Total area: 600 square feet
Total cost: $5300.0
Your cost: $2600.0
 

Primitive Data Types

Wiki chars03.jpg

Solution

Create Variables

Start off by declaring and initializing your variables. You will need a string to store user input, along with some integers. Create these variables and set the integers to the values given in the problem. Named constants should normally be used here, these will be explained next week.

String input;
		
int costPSF = 8;       // Cost of $8 per square foot
int installFee = 500;  // $500 installation fee
int coupon = 50;       // $50 off coupon

You will also need variables to store the length and width input from the user, the calculated area, and the total cost. Remember that total cost is to be stored as a double (as cost may include dollars and cents).

int length;
int width;
int area;
double totalCost;

User Input

Now the length and width must be read in. Input dialog boxes can be used to prompt the user for the values. The inputs are read in as strings, then must be parsed to integers before they can be stored as integer variables. Use the Integer.parseInt() function for this.

input = JOptionPane.showInputDialog("Input length:");
length = Integer.parseInt(input);

input = JOptionPane.showInputDialog("Input width:");
width = Integer.parseInt(input);

Perform Arithmetic

To calculate area, multiply length and width and store the result in area. The asterisk '*' character is the operator used for multiplication. To find the total cost, area is first multiplied by the cost per square foot. This equation is placed in brackets in order to separate it from the installation fee, which is added after. The result is then stored in totalCost.

area = length * width;
totalCost = (area * costPSF) + installFee;

Print Output

Finally, print out the total area and total cost on separate lines. To calculate your cost, remember to first divide the total in half as your roommate will be splitting the cost with you. The forward slash '/' character is the operator used for division. Subtract the coupon amount from your portion of the total cost. It's good practice to place parts of an equation in brackets to preserve the proper order of operations. Try removing the brackets around (totalCost / 2) and see if the result changes.

System.out.println("Total area: " + area + " square feet");
System.out.println("Total cost: $" + totalCost);
System.out.println("Your cost: $" + ((totalCost / 2) - coupon));

The program is now complete. Excellent work!

Code

Solution Code

Back to the Program-A-Day homepage