以下是此作业的说明:http://textuploader.com/55z48
对于作业,我需要读取输入文本文件并根据文本文件中找到的数据评估三角形,该文件由未知数量的3个数字组组成(每个组代表一个不同的三角形)。根据项目规范,我需要有一个主要方法和其他几种方法。我将在下面发布我的两个课程。
我认为我正确设置了 Triangle 类,但floatEqual除外。我如何将其纳入我的isEquilateral和isIsosceles方法?
public class Triangle
{
public static double computePerimeter(double num1, double num2, double num3)
{
return num1 + num2 + num3;
}
public static boolean isEquilateral(double num1, double num2, double num3)
{
return num1 == num2 && num2 == num3;
}
public static boolean isIsosceles(double num1, double num2, double num3)
{
return num1 == num2 || num2 == num3 || num1 == num3;
}
public static void triangleType(double num1, double num2, double num3)
{
if(isEquilateral(num1,num2,num3) == true)
{
System.out.println("Equilateral");
}
if(isIsosceles(num1,num2,num3) == true)
{
System.out.println("Isosceles");
}
else
{
System.out.println("Scalene");
}
}
}
下面的代码是我的 TriangleEvaluator 类,我应该从 Triangle 类中调用方法。但我很困惑如何实现这一目标。我想我的代码没有必要,但我不确定。昨晚我正在研究这一切,并且今天要完成它,还有一些我似乎无法回到java模式。
import java.io.*;
import java.util.Scanner;
public class TriangleEvaluator
{
public static void main(String[] args) throws FileNotFoundException
{
Scanner in = new Scanner(new File("triData.txt"));
double num1 = 0;
double num2 = 0;
double num3 = 0;
double perim = 0;
while (in.hasNextDouble())
{
num1 = in.nextDouble();
num2 = in.nextDouble();
num3 = in.nextDouble();
perim = computePerimeter(num1, num2, num3);
System.out.println(perim);
}
}
public static boolean floatEquals(double num1, double num2)
{
double Err = 0.00000001;
if(Math.abs(num1 - num2) < Err)
{
return true;
}
else
{
return false;
}
}
public static double computePerimeter(double num1, double num2, double num3)
{
double perimeter;
perimeter = (num1 + num2 + num3);
return perimeter;
}
}
这是输入的一个例子:
18.7 30 18.7
3 4 5
20.72 20.72 20.72
和所需的输出:
18.7 30.0 18.7
Perimeter: 67.40
Isosceles
3.0 4.0 5.0
Perimeter: 12.00
Scalene
20.7 20.7 20.7
Perimeter: 62.16
Equilateral
提前致谢(我绝不打算让任何人为我做任务,所以请原谅我,如果有这样的话 - 谢谢!) 任何帮助或指导表示赞赏!
答案 0 :(得分:1)
如果Triangle和TriangleEvaluator在同一个包中(I.E通常只是同一个目录),你可以通过在方法之前指定类来调用Triangle中的静态方法。
Triangle.isIsoceles(1.0,2.0,3.0)。
如果它们不在同一个包中,则必须像java.io一样导入Triangle类。但是你几乎肯定不需要导入Triangle。
这仅适用于静态方法。如果方法是动态的(在方法声明中没有静态),则必须使用(当前未指定的)三角形构造函数创建Triangle对象。然后你可以通过myTriangleObject.aMethod()
调用它们