作者TWTRubiks (阿哲)
看板java
標題[問題] 關於三角形座標和面積
時間Thu Oct 4 19:26:50 2012
剛接觸java不到一個禮拜.....想請為各位大大
老師出了一個作業
http://db.tt/0AJ31y88 (不知我有沒有抄錯)
我的程式碼,不過座標印不出來(亂碼),想請問我這樣的程式算正確嗎?!
package Test;
class Point{
private float x;
private float y;
public Point(float x,float y){
this.x=x; this.y=y;
}
public float getx(){
return x;
}
public float gety(){
return y;
}
public void printP(){
System.out.println("("+x+" , "+y+")");
}
}
class Triangle{
private Point A,B,C;
public Triangle(Point A, Point B, Point C) {
this.A = A;
this.B = B;
this.C = C;
}
public Point getA(){
return A;
}
public Point getB(){
return B;
}
public Point getC(){
return C;
}
public void printTriangle(){
System.out.println(A);
System.out.println(B);
System.out.println(C);
}
public void Area(){
double AB,BC,AC,s,area;
AB=Math.sqrt((A.getx()-B.getx())*(A.getx()-B.getx())+(A.gety()-B.gety())
*(A.gety()-B.gety()));
BC=Math.sqrt((B.getx()-C.getx())*(B.getx()-C.getx())+(B.gety()-C.gety())
*(B.gety()-C.gety()));
AC=Math.sqrt((A.getx()-C.getx())*(A.getx()-C.getx())+(A.gety()-C.gety())
*(A.gety()-C.gety()));
s=(AB+BC+AC)/2;
area=Math.sqrt(s*(s-AB)*(s-BC)*(s-AC));
System.out.println(area);
}
}
public class test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Point A=new Point(0,0);
Point B=new Point(0,3);
Point C=new Point(-4,0);
Triangle T = new Triangle(A,B,C);
System.out.print("三點座標分別為");
T.printTriangle();
System.out.print("三角形面積為:");
T.Area();
}
}
希望各位高手能幫幫我,想到快破惱了....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.64.91.231
※ 編輯: TWTRubiks 來自: 203.64.91.231 (10/04 19:30)
→ stimim:你看到的不是亂碼,println(A) 會印出 A.toString() 的結果 10/04 19:59
→ TWTRubiks:那請問我該怎麼改?! 才能正確的印出座標 10/04 20:00
推 stimim:你可以在 printTriangle 裡呼叫 printP 10/04 20:03
→ TWTRubiks:可是老師規定要用 T.printTriangle();印出 10/04 20:06
推 LaPass:就是在裡面改成A.printP(); B. .... 10/04 20:10
→ TWTRubiks:對吼~! 我真笨~! 跑出來了 10/04 20:15