2014-11-17 5 views
0

Моя программа будет вычислять область, но мне нужно иметь каждую свою форму в своем собственном методе, и у меня возникают трудности с пониманием того, как сначала отделить их все от их собственного метода и ссылки все они вместе. Буду признателен за любую оказанную помощь.Вычисление областей геометрических фигур с использованием нескольких методов в Java

import java.util.Scanner; 
public class Project4 { 

    public static void main(String[] args) { 
     Scanner keyboard = new Scanner(System.in); 
     String s = "Please choose which area/volume to calculate: 1-Circle 2-Triangle 3-Cone 4-Cylinder 5-Sphere 6-Quit: "; 
     System.out.print(s); 
     System.out.println(" "); 
     int num = keyboard.nextInt(); 
     if (num < 1 || num > 6){ 
      System.out.print("Please choose a number between 1 and 6: "); 
      num = keyboard.nextInt(); 
     } 
     if(num == 1){ 
      System.out.print("Please enter the radius: "); 
      double r = keyboard.nextDouble(); 
      double a; 
      a = 3.14 * r * r; 
      System.out.print("The area of the circle is: " + a); 
      System.out.println(" "); 
      System.out.print(s); 
      num = keyboard.nextInt(); 
     } 
     if(num == 2){ 
      System.out.print("Please enter the base: "); 
      double b = keyboard.nextDouble(); 
      double at; 
      System.out.print("Please enter the height: "); 
      double h = keyboard.nextDouble(); 
      at = .5 * b * h; 
      System.out.print("The area of the triangle is: " + at); 
      System.out.println(" "); 
      System.out.print(s); 
      num = keyboard.nextInt(); 
     } 
     if(num == 3){ 
      System.out.print("Please enter the radius: "); 
      double r = keyboard.nextDouble(); 
      System.out.print("Please enter the height: "); 
      double h = keyboard.nextDouble(); 
      double v1; 
      v1 = (1/3) * 3.14 * r * r * h; 
      System.out.print("The volume of the cone is: " + v1); 
      System.out.println(" "); 
      System.out.print(s); 
      num = keyboard.nextInt(); 
     } 
     if(num == 4){ 
      System.out.print("Please enter the radius: "); 
      double r = keyboard.nextDouble(); 
      System.out.print("Please enter the height: "); 
      double h = keyboard.nextDouble(); 
      double vc; 
      vc = 3.14 * r * r * h; 
      System.out.print("The volume of the cylinder is: " + vc); 
      System.out.println(" "); 
      System.out.print(s); 
      num = keyboard.nextInt(); 
     } 
     if(num == 5){ 
      System.out.print("Please enter the radius: "); 
      double r = keyboard.nextDouble(); 
      double vs; 
      vs = (4/3) * 3.14 * r * r * r; 
      System.out.print("The volume of the sphere is: " + vs); 
      System.out.println(" "); 
      System.out.print(s); 
      num = keyboard.nextInt(); 
     } 
     if(num == 6){ 
      System.out.print("Thank you for using this program"); 
     } 

} 
} 

ответ

0

Вы можете использовать switch..case

switch(num) { 
    case 1: calculateCircleArea(); 
      break; 
    case 2: calculateTriangleArea(); 
      break; 
    case 3: calculateConeVolume(); 
      break; 
    case 4: calculateCylinderVolume(); 
      break; 
    case 5: calculateSphereVolume(); 
      break; 
    case 6: System.out.print("Thank you for using this program"); 
      break; 
    default: System.out.print("Please choose a number between 1 and 6: "); 
      break; 
} 
0

Вы можете создавать новые частные/государственные методы, чтобы сделать расчеты и разделить их.

Возьмите эту часть

if(num == 1){ 
    System.out.print("Please enter the radius: "); 
    double r = keyboard.nextDouble(); 
    double a; 
    a = 3.14 * r * r; 
    System.out.print("The area of the circle is: " + a); 
    System.out.println(" "); 
    System.out.print(s); 
    num = keyboard.nextInt(); 
} 

Вы можете создать новый метод расчета, как так

public static double getArea(double radius) 
{ 
return 3.14*radius*radius; 
} 

Затем внутри вашего если заявление вы можете сказать

if(num == 1){ 
     System.out.print("Please enter the radius: "); 
     double r = keyboard.nextDouble(); 
     double a; 
     a = getArea(r); 
     System.out.print("The area of the circle is: " + a); 
     System.out.println(" "); 
     System.out.print(s); 
     num = keyboard.nextInt(); 
    } 

вы видите в этом случае вы получаете однострочный метод, который не очень полезен. Но вы можете отделить еще более обширные вычисления, это просто пример. Кроме того, вместо всех if-блоков вы можете использовать оператор switch, как показывает другой ответ.