/**
10年积累的成都网站制作、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有八宿免费网站建设让你可以放心的选择与我们合作。
* 利用海伦公式求面积就行了
如果周长为l,p为周长的一半,a,b,c为三边
面积s的平方 = p*(p-a)*(p-b)*(p-c)
【注意】,开发在java中使用Math。sqrt(要开平方的数)
* */
public class Triangle {
private boolean isTriangle = false; //用于判断3个点去定的3个边是否能组成三角形
private double a = 0.0d; //边a
private double b = 0.0d; //边b
private double c = 0.0d; //边c
private double l = 0.0d; //周长
private double s = 0.0f; //面积
//(x1,y1),(x2,y2),(x3,y3)分别为三角形三个顶点坐标
public Triangle(int x1, int y1, int x2, int y2, int x3, int y3){
Point p1 = new Point(x1,y1);
Point p2 = new Point(x2,y2);
Point p3 = new Point(x3,y3);
a = getSide(p1,p2); //利用两点求边
b = getSide(p1,p3);
c = getSide(p2,p3);
if(isTriangle){ //如果是三角形再求周长和面积
getL();
getS();
}
}
//利用两个点来获取边
private double getSide(Point p1, Point p2){
double sub1 = 0.0d; //横坐标之差
double sub2 = 0.0d; //纵坐标之差
sub1 = p1.x p2.x ? p1.x - p2.x : p2.x - p1.x;
sub1 = p1.y p2.y ? p1.y - p2.y : p2.y - p1.y;
return Math.sqrt((sub1*sub1 + sub2*sub2));
}
//获取周长
private void getL(){
l = a + b + c;
}
//获取面积
public void getS(){
double p = l/2;
s = Math.sqrt(p*(p-a)*(p-b)*(p-c));
}
public void print(){
System.out.println("三边长为:"+a+","+b+","+c);
System.out.println("周长为:"+l);
System.out.println("面积为:"+s);
}
//点类(仅供 Triangle 类使用的内部类)
private class Point{
public int x = 0;
public int y = 0;
public Point(int px, int py){
x = px;
y = py;
}
}
public static void main(String[] args) {
//求(1,1)、(1,4)、(5,1)三个坐标组成的三角形的周长和面积
Triangle tri = new Triangle(1,1,1,4,5,1);//实例化一个三角形
tri.print(); //输出属性
}
}
你并没有调用你在Trianglele类中定义的setTri()这个方法啊,也就是x1,x2,x3这三个double类型的属性都是默认值,也就是0,自然算出来的结果是0了
import java.util.Scanner;
public class Test{
private static double length;//边长
private static double bottom;//底
private static double tall;//高
private String perimeter;
private String area;
//无构造器
private Test(){}
//有构造器
private void Test(double length,double bottom,double tall){
this.length=length;
this.bottom=bottom;
this.tall=tall;}
//set和get方法
public void setlength(double length){
this.length=length;}
public void setbottom(double bottom){
this.bottom=bottom;}
public void settall(double tall){
this.tall=tall;}
public double getlength(){
return this.length;}
public double getbottom(){
return this.bottom;}
public double gettall(){
return this.tall;}
//周长和面积
public double getperimeter(){
return length+length+bottom;}
public double getarea(){
return bottom*tall/2;}
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入三角形的边长");
length = sc.nextDouble();
System.out.println("请输入三角形的底");
bottom = sc.nextDouble();
System.out.println("请输入三角形的高");
tall = sc.nextDouble();
System.out.println("三角形的周长是:"+new Test().getperimeter()+"三角形的面积是"+new Test().getarea());
}
}