2014-11-07 10 views
-2

Назначение идет, как говорится:Ошибка калькулятора ковра при вызове класса?

Проблема Уэстфилд ковровая компания попросила вас написать приложение, которое вычисляет стоимость коврового покрытия для прямоугольных комнат. Чтобы рассчитать цену, вы умножаете площадь пола (ширину длины) на цену за квадратный фут ковра. Например, площадь пола 12 футов в длину и 10 футов в ширину составляет 120 квадратных футов. Чтобы покрыть этот пол ковром, который стоит 8 долларов США за квадратный фут, будет стоить 960 долларов США (12x10x8 = 960).

Сначала вы должны создать класс с именем RoomDimension, который имеет два Feields: один для длины комнаты и один для ширины , Класс RoomDimension должен иметь метод, который возвращает область комнаты (площадь комнаты - это длина комнаты, умноженная на ширину комнаты).

Далее вы должны создать класс RoomCarpet с объектом RoomDimension в качестве поля. Он также должен иметь поле для стоимости ковра на квадратный фут. Класс RoomCarpet должен иметь метод, который возвращает общую стоимость ковра.

После того, как вы написали эти классы, используйте их в приложении, которое просит пользователя ввести размеры комнаты и цену за квадратный фут желаемого коврового покрытия. Приложение должно отображать общую стоимость ковра.

код у меня ниже не могу запустить из-за ошибки в 31-й строке MainProgram

import java.io.*; 
import java.util.ArrayList; 
import java.util.Scanner; 
public class MainProgram { 


    public static void main(String[] args) { 

     final double CARPET_PRICE_PER_SQFT = 8.0; 

     // Create a Scanner object for keyboard input. 
     Scanner keyboard = new Scanner(System.in); 

     // Display intro. 
     System.out.println("This program will display the " 
       + "carpet cost of a room." + "\nPlease enter the room's " 
       + "dimension in feet."); 

     // Get the length of the room. 
     System.out.print("Enter the length of room: "); 
     double length = keyboard.nextDouble(); 

     // Get the width of the room. 
     System.out.print("Enter the width of room: "); 
     double width = keyboard.nextDouble(); 

     //close keyboard 
     keyboard.close(); 

     ****// Create RoomDimension and RoomCarpet objects. 
     CarpetCalculatorProgram calculatorProgram = new CarpetCalculatorProgram(); 
     RoomDimension dimensions = calculatorProgram.new RoomDimension(length, 
       width); 
     RoomCarpet roomCarpet = calculatorProgram.new RoomCarpet(dimensions, 
       CARPET_PRICE_PER_SQFT);**** 

     // Print the object calling the toString 
     System.out.println(roomCarpet); 
    } 
} 

Вот другие классы для кода:

номер Dimension

import java.io.*; 
import java.util.ArrayList; 
import java.util.Scanner; 
public class RoomDimension { 

    private double length; 
    private double width; 

    public RoomDimension(double length, double width) { 
     super(); 
     this.length = length; 
     this.width = width; 
    } 

    public double getLength() { 
     return length; 
    } 

    public double getWidth() { 
     return width; 
    } 

    public double getArea() { 
     return length * width; 
    } 

    @Override 
    public String toString() { 
     return "RoomDimension [length=" + length + ", width=" + width + "]"; 
    } 


} 

номер Ковер

import java.io.*; 
import java.util.ArrayList; 
import java.util.Scanner; 
public class RoomCarpet { 

     private RoomDimension roomDimensions; 
     private double costOfCarpet; 

     public RoomCarpet(RoomDimension roomDimensions, double costOfCarpet) { 
      super(); 
      this.roomDimensions = roomDimensions; 
      this.costOfCarpet = costOfCarpet; 
     } 

     public double getTotalCost() { 
      return costOfCarpet * roomDimensions.getArea(); 
     } 

     @Override 
     public String toString() { 
      return "RoomCarpet [roomDimensions=" + roomDimensions 
        + ", costOfCarpet=" + costOfCarpet + ", " 
          + "total cost=" + getTotalCost() + "]"; 
     } 

} 
+4

'из-за error': является ли это секрет ошибка? Если нет, добавьте его в вопрос. А что такое строка '31' в' MainProgram'? – Tom

+3

Какая ошибка? Что такое строка 31? – August

+0

Приносим извинения, код специально: // Создаем объекты RoomDimension и RoomCarpet. CarpetCalculatorProgram calculatorProgram = новый CarpetCalculatorProgram(); RoomDimension dimensions = calculatorProgram.new RoomDimension (длина, ширина); RoomCarpet roomCarpet = calculatorProgram.new RoomCarpet (размеры, CARPET_PRICE_PER_SQFT); –

ответ

2

Я получаю ошибку, когда я вставляю все вещи в моем IDE является

CarpetCalculatorProgram не может быть разрешен к типу

Предполагая, что нет классов, которые вы не отправляли:

Нет класса CarpetCalculatorProgram, и нет внутренних RoomDimension/RoomCarpet классов. RoomDimension - фактически независимый класс высшего уровня. Код должен быть либо

// Create RoomDimension and RoomCarpet objects. 
    RoomDimension dimensions = new RoomDimension(length, 
      width); 
    RoomCarpet roomCarpet = new RoomCarpet(dimensions, 
      CARPET_PRICE_PER_SQFT); 

вместо использования new EnclosingClass().new InnerClass() синтаксиса. ИЛИ

// Create RoomDimension and RoomCarpet objects. 
    CarpetCalculatorProgram calculatorProgram = new CarpetCalculatorProgram(); 
    CarpetCalculatorProgram.RoomDimension dimensions = calculatorProgram.new RoomDimension(length, 
      width); 
    CarpetCalculatorProgram.RoomCarpet roomCarpet = calculatorProgram.new RoomCarpet(dimensions, 
      CARPET_PRICE_PER_SQFT); 

И два класса перешел в класс CarpetCalculatorProgram:

public class CarpetCalculatorProgram { 
    public class RoomDimension { 
     ... 
    } 

    public class RoomCarpet { 
     ... 
    } 
} 
+0

Спасибо, тонну! –