2014-02-18 24 views
0
import java.util.Scanner; 
public class Triangle { 
// inputing the intgers of the triangle 
public void inputTriangleSides() 
{ 
    System.out.println("Enter your triangle side lengths"); 
    Scanner keyboard = new Scanner(System.in); 
    int side1; 
    int side2; 
    int side3; 
    System.out.println("Enter three integers to form a triangle:"); 
    side1 = keyboard.nextInt(); 
    side2 = keyboard.nextInt(); 
    side3 = keyboard.nextInt(); 
} 
// determines if the three number make a triangle 
public void ifTriangle (int side1, int side2, int side3) 
{ 

    if (side1+side2> side3 && side1+side3>side2 && side2+side3>side1) 
    { 
     System.out.println("it a triangle"); 
    } 
    else 
    { 
     System.out.println ("Not a Triangle"); 
    } 
} 
// sorts the numbers from lowest to highest 
public static void displaySortedNumbers(int side1, int side2, int side3){ 

    if ((side1 < side2) && (side2 < side3) &&(side1 <side3)){ 
     System.out.println("The sorted numbers are " + side1 + " " + side2 + " " + side3); 
    } 
    if ((side1 < side2) && (side2 > side3)){ 
     System.out.println("The sorted numbers are " + side1 + " " + side3 + " " + side2); 
    } 
    if ((side1 > side2) && (side2 > side3)){ 
     System.out.println("The sorted numbers are " + side3 + " " + side2 + " " + side1); 
    } 
    if ((side1 < side2) && (side2 > side3)){ 
     System.out.println("The sorted numbers are " + side3 + " " + side1 + " " + side2); 
    } 
    if ((side1 > side2) && (side2 > side3) && (side1>side3)){ 
     System.out.println("The sorted numbers are " + side2 + " " + side3 + " " + side1); 
    } 
    if ((side1 > side2) && (side2 < side3)){ 
     System.out.println("The sorted numbers are " + side2 + " " + side1 + " " + side3); 
    } 
} 

//determines the type of triangle the three intgers form 
public void displayType(int side1, int side2,int side3) 
{ 
    if((side1+side2 > side3)) 

     if((side1==side2) && (side2==side3))//tell if equalateral 
     { 
      System.out.println("Equalateral Triangle."); 
     } 
     else if ((side1==side2) & (side2 != side3) || (side1 == side3) & (side3 != side1))//tells if isosceles 
     { 
      System.out.println ("Isosceles Triangle."); 
     } 
     else if ((side1 != side2) & (side2 != side3))//tells if scalene 
     { 
      System.out.println("Scalene Triangle.");   
     } 
     else 
     { 
      System.out.println("Not a triangle"); 
    } 

}//missing return statement 
// determines the perimeter 
public int perimeter (int side1,int side2, int side3) 
{ 
    if (side1+side2> side3 && side1+side3>side2 && side2+side3>side1) 
    { 
     int perimeter= side1+side2+side3; 
     return perimeter; 
    } 
    else 
     return 0; 
} 

public void output(int side1 , int side2, int side3, int perimeter) 
{System.out.println(perimeter); 
} 
} 

這是放入這個類。我沒有得到輸出爲三角形程序使用多個類

import java.util.Scanner; 
public class TriangleDriver { 
public static void main(String args[]){ 
Triangle yourTriangle= new Triangle(); 
yourTriangle.inputTriangleSides(); 
} 

public void inputTriangleSides() 
{ 
    Triangle yourTriangle= new Triangle(); 
    Scanner keyboard = new Scanner(System.in); 
    int side1; 
    int side2; 
    int side3; 
    System.out.println("Enter three integers to form a triangle:"); 
    side1 = keyboard.nextInt(); 
    side2 = keyboard.nextInt(); 
    side3 = keyboard.nextInt(); 
    yourTriangle.ifTriangle(side1,side2,side3); // is it a triangle? 
    yourTriangle.displaySortedNumbers(side1,side2,side3); // sorts the number 
    yourTriangle.displayType(side1,side2,side3); // type of triangle 
    yourTriangle.perimeter(side1,side2,side3); // type of perimeter 

} 
} 

當我輸入數字時,我沒有得到應該是我需要的打印語句的輸出,我完全錯過了什麼?還有一種方式來循環它的意思,當它完成輸出它會問你想做更多的三角形?是或否。是的,它會再次執行該程序。不,它會結束它。你使用if else語句嗎?

+0

我會對它進行排序: int [] sides = {side1,side2,side3}; Arrays。 sort(sides);' –

+0

現在不允許使用數組。 – user3296193

回答

0

在類Triangle和類TriangleDriver中都有一個名爲inputTriangleSides()的方法。

在您的主程序中,您可以調用Triangle類中的方法,該方法不會打印出任何您可以看到的內容。

嘗試

TriangleDriver yourTriangle= new TriangleDriver(); 
yourTriangle.inputTriangleSides(); 

代替。

+0

謝謝so m UCH。 – user3296193

0

由於這看起來像「家庭作業」或測試問題,我會對結構提出一些建議,而不是提供確切的代碼。

首先,將您的程序拆分爲Controller類和Triangle類。使用Controller類,讀取輸入端並從這些邊創建一個新的Triangle對象trialTriangle = new Triangle(side1, side2, side3)。在三角類中,創建以下方法:boolean isTriangle(); String getType()int getPerimeter();一些邏輯提示:在排列邊後的三角形內部(例如在數組中)sides[] = new int[3]確定在看到什麼類型的三角形之前確定是否有三角形(以確保0,0,0不顯示爲等邊三角形);等邊和因爲邊是有序的;然後確定isocolese(你只需要看看前兩個或後兩個排序邊是否相等)

在「控制器」類中,獲取[0] == side [2]看看用戶是否要求「結束」;如果沒有創建三角形並打印結果和循環,則可以使用下面的代碼: