2014-10-20 2 views
-3

В настоящее время я работаю над программой, которая сообщает вам, какой тип треугольника пользователь вводил, по периметру и области. В настоящее время я получаю сообщение об ошибке «фактические и формальные списки аргументов различаются по длине», и я попытался найти решение Google, но я не уверен, что вызывает эту ошибку.фактические и формальные списки аргументов различаются по длине error

import java.util.*; 

public class TriangleTesterID8876 { 
    public static void main(String[] args) { 
    Triangle userTriangle = new Triangle(); 
    Scanner kb = new Scanner(System.in); 

    System.out.println("=================================="); 
    System.out.println(" This program is designed for"); 
    System.out.println(" the user to input a triangle"); 
    System.out.println("  and calculate the area, "); 
    System.out.println(" perimeter, and type of triangle"); 
    System.out.println("=================================="); 

    //Side 1 
    System.out.println("Please input the first side."); 
    double side1 = kb.nextDouble(); 
    userTriangle.setSide1(side1); 

    //Side 2 
    System.out.println("Please input the second side."); 
    double side2 = kb.nextDouble(); 
    userTriangle.setSide2(side2); 

    //Side 3 
    System.out.println("Please input the third side."); 
    double side3 = kb.nextDouble(); 
    userTriangle.setSide3(side3); 

    System.out.println(userTriangle.typeString()); 
    } 
} 

Triangle.java:

public class Triangle { 
    private double mySide1; 
    private double mySide2; 
    private double mySide3; 

    public String backHalf; 


    public void setSide1(double side1) { 
    mySide1 = side1; 
    } 

    public void setSide2(double side2) { 
    mySide2 = side2; 
    } 

    public void setSide3(double side3) { 
    mySide3 = side3; 
    } 

    public double getSide1() { 
    return mySide1; 
    } 

    public double getSide2() { 
    return mySide2; 
    } 

    public double getSide3() { 
    return mySide3; 
    } 

    private boolean isValid() { 
    if ((mySide1 < mySide2 + mySide3) && (mySide2 < mySide1 + mySide3) && (mySide3 < mySide1 + mySide2)) { 
     return true; 
    } else 
     return false; 
    } 

    public boolean isEquilateral() { 
    if ((mySide1 == mySide2) && (mySide2 == mySide3)) { 
     return true; 
    } else { 
     return false; 
    } 
    } 

    public boolean isIsoscelese() { 
    if (mySide1 == mySide2 || mySide1 == mySide3 || mySide1 == mySide2) { 
     return true; 
    } else { 
     return false; 
    } 
    } 

    public boolean isScalene() { 
    if (mySide1 != mySide2 && mySide2 != mySide1 && mySide2 != mySide3) { 
     return true; 
    } else { 
     return false; 
    } 
    } 

    public double perimeter() { 
    return mySide1 + mySide2 + mySide3; 
    } 

    public double findArea() { 
    double s = perimeter()/2; 
    return Math.sqrt(s * ((s - mySide1) * (s - mySide2) * (s - mySide3))); 
    } 

    public String toTypeString() { 
    double perimeter = perimeter(); 
    double area = findArea(); 

    backHalf = mySide1 + " " + mySide2 + " " + mySide3 + ", a perimeter of " + perimeter + ", and an area of " + area + "."; 
    return backHalf; 

    } 

    public String typeString(String output) { 
    if (isValid() == true) { 
     if (isEquilateral()) { 
     output = "This is an equilateral triangle with sides " + backHalf; 
     return output; 
     } else if (isIsoscelese()) { 
     output = "This is an isosceles triangle with sides " + backHalf; 
     return output; 
     } else if (isScalene()) { 
     output = "This is a scalene triangle with sides " + backHalf; 
     return output; 
     } 
    } else 
     output = "Please input a valid triangle."; 
    return output; 

    } 
} 
+0

Разве ваш компилятор не говорит вам, где эти проблемы происходят? – mkobit

+1

Я не уверен, почему вы использовали фрагменты кода с 'lang-js', но Java не JavaScript. –

ответ

4

Вы объявили typeString() с одним параметром Струнный но вы вызываете его - userTriangle.typeString() - без какого-либо параметра.

Похоже, вы должны удалить этот параметр:

изменение:

public String typeString(String output) { 

к

public String typeString() { 
    String output = null; 
    .... 
} 
0

typeString() принимает строку в качестве параметра. В вашем случае вы вызываете его пустым

0

Ваш класс Triangle говорит, что typeString(String output) должен иметь аргумент, но вы использовали это без параметра.

System.out.println(userTriangle.typeString()); 

Либо использовать

System.out.println(userTriangle.typeString()); 

в

System.out.println(userTriangle.typeString(output)); 

ИЛИ

Измените свой метод Triangle класс подписи typeString(String output) к typeString().