2012-10-08 40 views
-1

編寫驅動程序時,提示用戶輸入圓的規格,創建圓對象並輸出圓的區域。確保你的程序正確處理circle類拋出的錯誤IllegalDimesnsionException創建提示用戶使用拋出的異常錯誤的驅動程序

所以這是我到目前爲止有:

import java.util.Scanner; 

//A = C2/4π 

public class Driver { 
    public static void main(String[] args) { 
     String know; 
     // area of a circle 
     int Circumference; 
     int Diameter; 
     int Radius; 

     // pie of a circle 
     double pie; 
     double area; 

     // ask user for input 
     Scanner scanner = new Scanner(System.in); 
     System.out 
       .println("Do you know the Diameter, Circumference or the Radius of the circle?"); 
     know = scanner.nextLine(); 
     if (know.equals("Diameter")) { 
      System.out.println("What is the Diameter of the circle??"); 
      Diameter = scanner.nextInt(); 
      // Get area A = (π/4) × D2 

      pie = 3.14; 
      area = (pie/4) * (Diameter^2); 
      System.out.println("The area of the circle is: " + area); 
     } 
     if (know.equals("Radius")) { 
      System.out.println("What is the radius of the circle??"); 
      Radius = scanner.nextInt(); 
      // Get area A = π × r2 

      pie = 3.14; 
      area = pie * (Radius^2); 
      System.out.println("The area of the circle is: " + area); 
     } 

     if (know.equals("Circumference")) { 
      System.out.println("What is the circumference of the circle??"); 
      Circumference = scanner.nextInt(); 

      // Get area 
      pie = 3.14; 
      area = (Circumference^2)/4 * pie; 
      System.out.println("The area of the circle is: " + area); 
     } 
    } 
} 

我只是需要幫助得到程序來處理異常錯誤。任何其他的建議,使程序更好。

+0

我們正在爲你做作業嗎? –

+0

... [[作業問題已正式棄用]](http://meta.stackexchange.com/questions/147100/the-homework-tag-is-now-officially-deprecated) – Augusto

+3

@Augusto - 作業標籤!=作業問題。 –

回答

1

如果您正在尋找審查/反饋,請找一些如下:

  1. 更好申報半徑,直徑和雙倍徑(因爲它使礦石感)

  2. 變化如「Diameter = scanner.nextInt();」如下面要由用戶處理無效 輸入:

    boolean validInput = false; 
    do{ 
        try{ 
         diameter = scanner.nextDouble(); 
         validInput = true; 
        }catch(InputMismatchException ime){ 
         System.out.println("Invalid input. Please try again"); 
        } 
        }while(validInput == false); 
    
  3. 創建2層小的方法(模塊式)來計算不同的值例如

    private double calculateAreaUsingRadius(double radius) 
             throws IllegalDimesnsionException; 
    private double calculateAreaUsingCircumference(double circumference) 
             throws IllegalDimesnsionException; 
    
  4. 調用這些方法在你的主程序,如下面的異常處理:

    try{ 
         area = calculateAreaUsingRadius(radius); 
    }catch(IllegalDimesnsionException){ 
         System.out.println("Invalid Radius Dimension"); 
    } 
    
    
    try{ 
         area = calculateAreaUsingRadius(diameter/2); 
    }catch(IllegalDimesnsionException){ 
         System.out.println("Invalid Diameter Dimension"); 
    } 
    
    
    try{ 
         area = calculateAreaUsingCircumference(circumference); 
    }catch(IllegalDimesnsionException){ 
         System.out.println("Invalid Circumference Dimension"); 
    } 
    

希望這將有助於改善你的程序。

相關問題