Lab 6
Start Now

Overview

For this assignment, you will generate a UML class diagram for a class and implement it.

Assignment

House and BuildingCostEstimator classes

Study the following program. It makes use of a BuildingCostEstimator class. You will need to implement the BuildingCostEstimator class so that the program functions properly.

import java.util.Scanner;

/**
 * @author Dr. Chris Taylor
 * @version 2015.10.07
 * 
 * Makes use of the BuildingCostEstimator class to estimate the
 * cost of building a house based on the user's desires.
 */
public class House {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		BuildingCostEstimator estimator = new BuildingCostEstimator();
		
		System.out.println("This program will help you estimate the "
				+ "cost of building a house.");

		System.out.println("For your desired house:");
		System.out.print("Enter the total number of square feet: ");
		int sqFeet = in.nextInt();
		estimator.setSquareFeet(sqFeet);

		System.out.print("Enter the number of full bathrooms: ");
		int numFullBaths = in.nextInt();
		estimator.setNumFullBaths(numFullBaths);

		System.out.print("Enter the number of half bathrooms: ");
		int numHalfBaths = in.nextInt();
		estimator.setNumHalfBaths(numHalfBaths);

		System.out.print("Enter the number of bedrooms: ");
		int numBeds = in.nextInt();
		estimator.setNumBedrooms(numBeds);

		System.out.print("Enter the number of windows: ");
		int numWindows = in.nextInt();
		estimator.setNumWindows(numWindows);

		System.out.print("Enter the number of garage spaces (e.g., 2.5): ");
		estimator.setNumGarages(in.nextDouble());
		
		if(estimator.getNumGarages()<2.0) {
			System.out.println("We are in Wisconsin.");
			System.out.println("Perhaps you should reconsider the number of garage stalls.");
			System.out.print("Enter the number of garage spaces (e.g., 2.5): ");
			estimator.setNumGarages(in.nextDouble());
		}

		// Display characteristics and cost of the house
		System.out.print("The cost of building this house with ");
		System.out.printf("%d full baths, %d half baths,\n",
				estimator.getNumFullBaths(),
				estimator.getNumHalfBaths());
		System.out.printf("%d bedrooms, %d windows,\n",
				estimator.getNumBedrooms(),
				estimator.getNumWindows());

		System.out.printf("with a %f car garage and taking ",
				estimator.getNumGarages());

		System.out.printf("up %d square feet\n",
				estimator.getSquareFeet());

		System.out.printf("will take $%.2f to build.",
				estimator.costToBuild());
	}
}

The cost of the home should be based on the following calculation:

  • Based cost per square foot of the house: $130
  • Add $15,000 for each full bathroom
  • Add $7,000 for each half bathroom
  • Add $3,000 for each bedroom
  • Add $800 for each window
  • Add $8,000 for each garage stall

UML Diagram

You must generate a UML class diagram for the BuildingCostEstimator class.

Lab Deliverables

See your professor's instructions for details on submission guidelines and due dates.
Dr. Dennis' class: See Blackboard
See Dr. Rebenistch for instructions
Dr. Taylor's class: See below
See Prof. Ung for instructions
Dr. Yoder's submission instructions
If you have any questions, consult your instructor.

Acknowledgement

This laboratory assignment was developed by Dr. Chris Taylor.

Tuesday, 16-Feb-2016 10:37:08 EST