Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
我为班级编写了一个程序,我认为这是我在测试其他班级时的问题。
这里是我粘贴自ideone.com的链接。
https://ideone.com/UB7x87-
https://ideone.com/watbZq-测试人员
这是测试人员课程
---------------------------------------------- *
参见--------------------------
当我尝试创建该对象时,Java给我一个错误。我对Java还是很陌生,所以我只是想了解我做错了什么。而且我的布尔方法似乎没有打印true或false?
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
我为班级编写了一个程序,我认为这是我在测试其他班级时的问题。
这里是我粘贴自ideone.com的链接。
https://ideone.com/UB7x87-
https://ideone.com/watbZq-测试人员
import static java.lang.Math.sqrt;
public class ThreePoints {
float x0;
float y0;
float x1;
float y1;
float x2;
float y2;
public ThreePoints(){
this.x0 = 0;
this.y0 = 0;
this.x1 = 0;
this.y1 = 0;
this.x2 = 0;
this.y2 = 0;
}
public ThreePoints(float x0, float y0, float x1, float y1, float x2, float y2){
this.x0 = x0;
this.y0 = y0;
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
}
public double getLength(int side){
if(side == 0 && isTriangle()){
return Math.sqrt((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1));
} else if (side == 1 && isTriangle()){
return Math.sqrt((x2-x0) * (x2-x0) + (y2-y0) * (y1-y0));
} else if (side == 2 && isTriangle()){
return Math.sqrt((x1-x0) * (x1-x0) + (y1-y0) * (y1-y0));
}else{ return 0;
}
}
public double getAngle(int vertex){
if(vertex == 0 && isTriangle()) {
double angle = Math.acos((-Math.pow(this.getLength(0),2)
+Math.pow(this.getLength(1),2)
+Math.pow(this.getLength(2),2))
/(2*this.getLength(1)*this.getLength(2)));
return angle;
} else if(vertex == 1 && isTriangle()) {
double angle = Math.acos((Math.pow(this.getLength(0),2)- Math.pow(this.getLength(1),2)
+Math.pow(this.getLength(2),2))/
(2*this.getLength(0)*this.getLength(2)));
return angle;
} else if(vertex == 2 && isTriangle()){
double angle = Math.acos((Math.pow(this.getLength(0),2)
+Math.pow(this.getLength(1),2)- Math.pow(this.getLength(2),2)) /(2*this.getLength(0)*this.getLength(1)));
return angle;
} else {
return 0;
}
}
public boolean isTriangle(){
if (!(x0 * (y1-y2) + x1 * (y2-y0) + x2 * (y0-y1) == 0)){
return true;
}
return false;
}
public boolean isEquilateral(){
if (getLength(0) != getLength(1))
return false;
if (getLength(0) != getLength(2))
return false;
if (getLength(1) != getLength(2))
return false;
return true;
}
public boolean isIsosceles(){
if (getLength(0) == getLength(1))
return true;
if (getLength(0) == getLength(2))
return true;
if (getLength(1) == getLength(2))
return true;
return false;
}
public boolean isScalene(){
if (getLength(0) == getLength(1))
return true;
if (getLength(0) == getLength(2))
return true;
if (getLength(1) == getLength(2))
return true;
return false;
}
public boolean isAcute(){
if (getAngle(0) < 90 && getAngle(1) < 90 && getAngle(2) < 90){
return true;
}
return false;
}
public boolean isObtuse(){
if (getAngle(0) > 90 && getAngle(1) > 90 && getAngle(2) > 90){
return true;
}
return false;
}
public double getPerimeter(){
double perimeter;
perimeter = (getLength(0) + getLength(1) + getLength(2));
return perimeter;
}
public boolean isRight(){
if (getAngle(0) == 90 && getAngle(1) == 90 && getAngle(2) == 90){
return true;
}
return false;
}
public double getArea(){
double s = ((getLength(0) + getLength(1) + getLength(2))/2);
double area = sqrt(s * (s-getLength(0))*(s-getLength(1))*(s-getLength(2)));
return area;
}
private boolean approxEqual (double x, double y) {
return Math.abs(x - y) <= 1E-12;
}
}
这是测试人员课程
public class ThreePointsTester {
public static void main(String[] args) {
ThreePoints tp = new ThreePoints();
double tpAngle0 = tp.getAngle(0);
double tpAngle1 = tp.getAngle(1);
double tpAngle2 = tp.getAngle(2);
System.out.println("tp angle 0 is " + tpAngle0);
System.out.println("tp angle 1 is " + tpAngle1);
System.out.println("tp angle 2 is " + tpAngle2);
double tpLength0 = tp.getLength(0);
double tpLength1 = tp.getLength(1);
double tpLength2 = tp.getLength(2);
System.out.println("tp side 0 is " + tpLength0);
System.out.println("tp side 1 is " + tpLength1);
System.out.println("tp side 2 is " + tpLength2);
tp.isTriangle();
tp.isEquilateral();
tp.isIsosceles();
tp.isScalene();
tp.isAcute();
tp.isObtuse();
tp.isRight();
---------------------------------------------- *
ThreePoints tp2 = new ThreePoints(3.32, 2.32, 2.12, 4.54, 5.43, 4.23);
double tpAngle0 = tp2.getAngle(0);
double tpAngle1 = tp2.getAngle(1);
double tpAngle2 = tp2.getAngle(2);
System.out.println("tp2 angle 0 is " + tpAngle0);
System.out.println("tp2 angle 1 is " + tpAngle1);
System.out.println("tp2 angle 2 is " + tpAngle2);
double tpLength0 = tp2.getLength(0);
double tpLength1 = tp2.getLength(1);
double tpLength2 = tp2.getLength(2);
System.out.println("tp2 side 0 is " + tpLength0);
System.out.println("tp2 side 1 is " + tpLength1);
System.out.println("tp2 side 2 is " + tpLength2);
tp2.isTriangle();
tp2.isEquilateral();
tp2.isIsosceles();
tp2.isScalene();
tp2.isAcute();
tp2.isObtuse();
tp2.isRight();
}
}
参见--------------------------
当我尝试创建该对象时,Java给我一个错误。我对Java还是很陌生,所以我只是想了解我做错了什么。而且我的布尔方法似乎没有打印true或false?
最佳答案
尝试这个。new ThreePoints(3.32f, 2.32f, 2.12f, 4.54f, 5.43f, 4.23f)
默认情况下,此类数字文字为双精度。
您需要添加f
使其显式浮动。
不确定如何测试布尔方法
如果您的代码无法编译。
10-08 02:50