import java.util.Scanner; import java.io.*; public class DemoRoom { public stati
ID: 3705431 • Letter: I
Question
import java.util.Scanner;
import java.io.*;
public class DemoRoom {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("Enter Room length, width and height :");
double r_length = sc.nextDouble();
double r_width = sc.nextDouble();
double r_height = sc.nextDouble();
System.out.println("Enter Door width, height :");
double d_width = sc.nextDouble();
double d_height = sc.nextDouble();
System.out.println("Enter Window1 width, height :");
double w1_width = sc.nextDouble();
double w1_height = sc.nextDouble();
System.out.println("Enter Window2 width, height :");
double w2_width = sc.nextDouble();
double w2_height = sc.nextDouble();
System.out.println("Enter bookself width, height,depth :");
double b_width = sc.nextDouble();
double b_height = sc.nextDouble();
double b_depth = sc.nextDouble();
System.out.println("Enter cost per square foot painting :");
double ct_painting = sc.nextDouble();
System.out.println("Enter cost per square foot carpeting :");
double ct_carpeting = sc.nextDouble();
double r_area = 2 * r_length * r_height + 2 * r_height * r_width
+ r_length * r_width;
double w1_area = w1_width * w1_height;
double w2_area = w2_width * w2_height;
double d_area = d_height * d_width;
double b_area = b_height * b_width;
double b_floor_area = b_depth * b_width;
double r_floor_area = r_length * r_width;
double total_area_painting = r_area - (w1_area + w2_area + d_area + b_area);
double total_area_carpeting = r_floor_area - b_floor_area;
double total_cost_painting = total_area_painting * ct_painting;
double total_cost_carpeting = total_area_carpeting * ct_carpeting;
System.out.println(" Room is " + r_length + " feet long " + r_width + " feet wide and " + r_height + " feet high. ");
System.out.println("Door is " + d_width + " feet high by " + d_height + " feet high. ");
System.out.println("Window 1 is " + w1_width + " feet wide by " + w1_height + " feet high. ");
System.out.println("Window 2 is " + w2_width + " feet wide by " + w2_height + " feet high. ");
System.out.println("Bookshelf is " + b_width + " feet long by " + b_height + " feet high by " + b_depth + " feet deep ");
System.out.println("Cost per square foot for painting is $" + ct_painting + " ");
System.out.println("Cost per square foot for carpeting is $" + ct_carpeting + " ");
System.out.println("Total area for painting is " + total_area_painting + " ");
System.out.println("Total area for for carpeting is " + total_area_carpeting + " ");
System.out.println("Total cost for painting is $" + total_cost_painting + " ");
System.out.println("Total cost for for carpeting is $" + total_cost_carpeting + " ");
try {
FileWriter fw = new FileWriter("output.txt",true);
fw.write(" Room is " + r_length + " feet long " + r_width + " feet wide and " + r_height + " feet high. ");
fw.write("Door is " + d_width + " feet high by " + d_height + " feet high. ");
fw.write("Window 1 is " + w1_width + " feet wide by " + w1_height + " feet high. ");
fw.write("Window 2 is " + w2_width + " feet wide by " + w2_height + " feet high. ");
fw.write("Bookshelf is " + b_width + " feet long by " + b_height + " feet high by " + b_depth + " feet deep ");
fw.write("Cost per square foot for painting is $" + ct_painting + " ");
fw.write("Cost per square foot for carpeting is $" + ct_carpeting + " ");
fw.write("Total area for painting is " + total_area_painting + " ");
fw.write("Total area for for carpeting is " + total_area_carpeting + " ");
fw.write("Total cost for painting is $" + total_cost_painting + " ");
fw.write("Total cost for for carpeting is $" + total_cost_carpeting + " ");
fw.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
The program above calculates the floor space for carpets and wall space for paint. In this assignment you will add to that program.
using java. import java.util.Scanner;
Do not use objects.
Do not use;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
use good comments.
There is a budget assigned to the covering of the floor. There are four options for floor cover (Ceramic Tile = 1; Hardwood = 2, Carpet = 3; and linoleum tile = 4) each with a cost per square foot. In addition the customer has a preference for which covering they would like. The program will ask for input and read in the budget in dollars and cents, the cost per square foot for each of the different floor options and also ask for which one the customer prefers where 0 means the customer does not care and 1-4 if they have a specific preference for one of the four floor coverings
The program will then, based upon the square footage calculation, check if the users preference can be afforded (Hint use Switch statement), if not or the user selects “0” not caring, the program will start with the most expensive and check each flooring type until it finds the most expensive flooring that can be afforded. The program will output the type of flooring selected or a message that given the budget no flooring is affordable.
For all three renovation projects use the room and door, window and bookcase dimensions from Project 1 and use Tile= $4.00 /sq ft; Wood = $3.00/ sq ft; Carpet = $2.00/ sq ft and linoleum = $1.00/sq ft).
Use the following as the budget and preference:
Budget/preference
Renovation 1
Renovation 2
Renovation 3
User preference
0
1
3
Budget
255.00
250.00
400.00
Budget/preference
Renovation 1
Renovation 2
Renovation 3
User preference
0
1
3
Budget
255.00
250.00
400.00
Explanation / Answer
The code has been added with the comments and also enhanced for more understanding
import java.util.Scanner;
public class DemoRoom
{
private static double paintingCostPerSqFt=1;
private static double flooringWithLinoleumTileCost=1;
private static double flooringWithCarpetCost=2;
private static double flooringWithHardwoodCost=3;
private static double flooringWithCeramicTileCost=4;
private static double r_length; //Room Length
private static double r_width ; //Room Width
private static double r_height; //Room Height
private static double d_width; //Door Width
private static double d_height; //Door Height
private static double w1_width; //Window1 Width
private static double w1_height; //Window1 Height
private static double w2_width; //Window1 Width
private static double w2_height; //Window1 Height
private static double b_width; //Bookshelf Width
private static double b_height; //Bookshelf Height
private static double b_depth; //Bookshelf Depth
private static int customerPreferenceRenovation1=0;
private static double customerBudgetRenovation1;
private static int customerPreferenceRenovation2=0;
private static double customerBudgetRenovation2;
private static int customerPreferenceRenovation3=0;
private static double customerBudgetRenovation3;
public static void main(String args[])
{
//To get the user input from the console
Scanner sc = new Scanner(System.in);
//Carpeting and Painting includes for Room, Door and Windows
//Getting the measurements from the user through console for all three - Room, Door, Windows, BookShelf
//Getting User Inputs for a Room
System.out.println("Enter Room length, width and height :");
double r_length = sc.nextDouble();
double r_width = sc.nextDouble();
double r_height = sc.nextDouble();
//Getting User Inputs for a Door
System.out.println("Enter Door width and height :");
d_width = sc.nextDouble();
d_height = sc.nextDouble();
//Getting User Inputs for the first Window
System.out.println("Enter Window1's length, width and height :");
w1_width = sc.nextDouble();
w1_height = sc.nextDouble();
//Getting User Inputs for the second Window
System.out.println("Enter Window2's length, width and height :");
w2_width = sc.nextDouble();
w2_height = sc.nextDouble();
System.out.println("Enter bookshelf width, height,depth :");
b_width = sc.nextDouble();
b_height = sc.nextDouble();
b_depth = sc.nextDouble();
//Calculate all the Areas
double r_area=calculateRoomArea(r_length, r_width,r_height);
double w1_area=calculateWindowArea(w1_width,w1_height);
double w2_area=calculateWindowArea(w2_width,w2_height);
double d_area =calculateDoorArea(d_width,d_height);
double b_area = calculateBookShelfArea(b_width,b_height);
double b_floor_area = calculateBookShelfFloorArea(b_depth,b_width);
double r_floor_area = calculateRoomFloorArea(r_length,r_width);
//Calculate Total area for painting and carpeting
double total_area_painting = r_area - (w1_area + w2_area + d_area + b_area);
double total_area_carpeting = r_floor_area - b_floor_area;
double total_cost_painting = calculatTotalPaintingCost(total_area_painting);
System.out.println("Flooring Preferences::");
System.out.println("0-Anything is Fine");
System.out.println("1-Ceramic Tile");
System.out.println("2-Hardwood");
System.out.println("3-Carpet");
System.out.println("4-Linoleum Tile");
System.out.println("For Renovation 1 : Please enter the flooring preference as above and also the total budget:");
customerPreferenceRenovation1 = sc.nextInt();
customerBudgetRenovation1 = sc.nextDouble();
String customerPreferenceRenovation1AsText = displayCustomerFlooringPrefAsText(customerPreferenceRenovation1);
System.out.println("Your have chosen for flooring for Renovation1: "+customerPreferenceRenovation1AsText);
System.out.println("Your Expected Budget for Renovation1: "+customerBudgetRenovation1);
System.out.println("Our Actual Budget For Painting for Renovation1: "+total_cost_painting);
System.out.println("Our Actual Budget For Flooring for Renovation1: "+calculateTotalFlooringCostBasedOnCustomerPreference(customerPreferenceRenovation1,total_area_carpeting));
System.out.println("For Renovation 2 : Please enter the flooring preference as above and also the total budget:");
customerPreferenceRenovation2 = sc.nextInt();
customerBudgetRenovation2 = sc.nextDouble();
String customerPreferenceRenovation2AsText = displayCustomerFlooringPrefAsText(customerPreferenceRenovation2);
System.out.println("Your have chosen for flooring for Renovation2: "+customerPreferenceRenovation2AsText);
System.out.println("Your Expected Budget for Renovation2: "+customerBudgetRenovation2);
System.out.println("Our Actual Budget For Painting for Renovation2: "+total_cost_painting);
System.out.println("Our Actual Budget For Flooring for Renovation2: "+calculateTotalFlooringCostBasedOnCustomerPreference(customerPreferenceRenovation2,total_area_carpeting));
System.out.println("For Renovation 3 : Please enter the flooring preference as above and also the total budget:");
customerPreferenceRenovation3 = sc.nextInt();
customerBudgetRenovation3 = sc.nextDouble();
String customerPreferenceRenovation3AsText = displayCustomerFlooringPrefAsText(customerPreferenceRenovation3);
System.out.println("Your have chosen for flooring for Renovation3: "+customerPreferenceRenovation3AsText);
System.out.println("Your Expected Budget for Renovation3: "+customerBudgetRenovation3);
System.out.println("Our Actual Budget For Painting for Renovation3: "+total_cost_painting);
System.out.println("Our Actual Budget For Flooring for Renovation3: "+calculateTotalFlooringCostBasedOnCustomerPreference(customerPreferenceRenovation3,total_area_carpeting));
}
public static double calculateRoomArea(double length, double width,double height)
{
return 2 * r_length * r_height + 2 * r_height * r_width
+ r_length * r_width;
}
public static double calculateDoorArea(double width,double height)
{
return height*width;
}
public static double calculateWindowArea(double width,double height)
{
return height*width;
}
public static double calculateBookShelfArea(double width,double height)
{
return height*width;
}
public static double calculateBookShelfFloorArea(double width,double depth)
{
return depth*width;
}
public static double calculateRoomFloorArea(double length, double width)
{
return length*width;
}
public static double calculatTotalPaintingCost(double totalAreaPainting)
{
return totalAreaPainting*paintingCostPerSqFt;
}
public static double calculateTotalFlooringCostBasedOnCustomerPreference(int customerFlooringPreference, double totalAreaCarpeting)
{
double calculatedFlooringCost;
switch(customerFlooringPreference)
{
case 1:
calculatedFlooringCost = calculateTotalCeramicTileFlooringCost(totalAreaCarpeting); //Cost=4$/Sq.ft
break;
case 2:
calculatedFlooringCost = calculateTotalHardwoodFlooringCost(totalAreaCarpeting); //Cost=3$/Sq.ft
break;
case 3:
calculatedFlooringCost = calculateTotalCarpetFlooringCost(totalAreaCarpeting); //Cost=2$/Sq.ft
break;
case 4:
calculatedFlooringCost = calculateTotalLinoleumTileFlooringCost(totalAreaCarpeting); //The least expensive one Cost=1$/Sq.ft
break;
default:
calculatedFlooringCost = calculateTotalCeramicTileFlooringCost(totalAreaCarpeting); //The most expensive one Cost=4$/Sq.ft
}
return calculatedFlooringCost;
}
public static double calculateTotalCeramicTileFlooringCost(double totalAreaCarpeting)
{
return totalAreaCarpeting*flooringWithCeramicTileCost;
}
public static double calculateTotalHardwoodFlooringCost(double totalAreaCarpeting)
{
return totalAreaCarpeting*flooringWithHardwoodCost;
}
public static double calculateTotalCarpetFlooringCost(double totalAreaCarpeting)
{
return totalAreaCarpeting*flooringWithCarpetCost;
}
public static double calculateTotalLinoleumTileFlooringCost(double totalAreaCarpeting)
{
return totalAreaCarpeting*flooringWithLinoleumTileCost;
}
public static String displayCustomerFlooringPrefAsText(int flooringPrefNumber)
{
String flooringPreference ="Anything is fine";
switch(flooringPrefNumber)
{
case 1:
flooringPreference ="Ceramic Tile";
break;
case 2:
flooringPreference ="Hardwood";
break;
case 3:
flooringPreference ="Carpet";
break;
case 4:
flooringPreference ="Linoleum tile";
break;
default:
flooringPreference ="Anything is fine";
}
return flooringPreference;
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.