java求三个点组成的三角形面积
设计一个点类Point,一个求面积的类Triangle,怎么做啊,我做的时候,做求面积的类的时候,不知道引入点类的对象,怎么做啊,可以在Triangle类中实现求面积的方...
设计一个点类Point,一个求面积的类Triangle,怎么做啊,我做的时候,做求面积的类的时候,不知道引入点类的对象,怎么做啊,可以在Triangle类中实现求面积的方法吗,有哪位大哥写个程序让我参考下不啊,谢谢
展开
4个回答
推荐于2016-11-07 · 知道合伙人互联网行家
关注
展开全部
简单代码如下:
//引入输入输出包
import java.io.*;
public class getSize {
//主函数入口,如果输入有误则抛出异常
public static void main(String[] args) throws IOException {
//声明double类型变量 三个边长a,b,c,边长s,面积area
double a,b,c,s;
double area;
//首先实例化输入的reader对象,然后实例化缓存对象
InputStreamReader reader=new InputStreamReader(System.in);
BufferedReader input =new BufferedReader(reader);
//提示输入信息,并且输入
System.out.println("请输入三角形的边长a");
String temp=input.readLine();
a=Double.parseDouble(temp);
System.out.println("请输入三角形的边长b");
temp=input.readLine();
b=Double.parseDouble(temp);
System.out.println("请输入三角形的边长c");
temp=input.readLine();
c=Double.parseDouble(temp);
//如果输入的包含负数
if(false==((a>0)&&(b>0)&&(c>0))){
System.out.println("输入数据有误,请重试");
System.exit(1);
}
Boolean bool1=(a+b)>c;
Boolean bool2=(a+c)>b;
Boolean bool3=(b+c)>a;
//如果两边之和不大于第三边则不符合三角形组成条件
if(false==(bool1&&bool2&&bool3)){
System.out.println("抱歉,你输入的数据不能组成三角形,任意两边之和必须大于第三边");
System.exit(1);
}
//如果两边之差不小于第三边则不和三角形组成条件
bool1=(a-b)<c;
Boolean bool4=(b-a)<c;
bool2=(a-c)<b;
Boolean bool5=(c-a)<b;
bool3=(b-c)<a;
Boolean bool6=(c-b)<a;
if(false==(bool1&&bool2&&bool3&&bool4&bool5&bool6)){
System.out.println("抱歉,您输入的数据不能组成三角形,任意两个之差必须小于第三边");
System.exit(1);
}
//利用海伦公式获取三角形的面积
s=(a+b+c)/2;
area=Math.sqrt(s*(s-a)*(s-b)*(s-c));
System.out.println("该三角形的面积是:"+area);
}
}
//引入输入输出包
import java.io.*;
public class getSize {
//主函数入口,如果输入有误则抛出异常
public static void main(String[] args) throws IOException {
//声明double类型变量 三个边长a,b,c,边长s,面积area
double a,b,c,s;
double area;
//首先实例化输入的reader对象,然后实例化缓存对象
InputStreamReader reader=new InputStreamReader(System.in);
BufferedReader input =new BufferedReader(reader);
//提示输入信息,并且输入
System.out.println("请输入三角形的边长a");
String temp=input.readLine();
a=Double.parseDouble(temp);
System.out.println("请输入三角形的边长b");
temp=input.readLine();
b=Double.parseDouble(temp);
System.out.println("请输入三角形的边长c");
temp=input.readLine();
c=Double.parseDouble(temp);
//如果输入的包含负数
if(false==((a>0)&&(b>0)&&(c>0))){
System.out.println("输入数据有误,请重试");
System.exit(1);
}
Boolean bool1=(a+b)>c;
Boolean bool2=(a+c)>b;
Boolean bool3=(b+c)>a;
//如果两边之和不大于第三边则不符合三角形组成条件
if(false==(bool1&&bool2&&bool3)){
System.out.println("抱歉,你输入的数据不能组成三角形,任意两边之和必须大于第三边");
System.exit(1);
}
//如果两边之差不小于第三边则不和三角形组成条件
bool1=(a-b)<c;
Boolean bool4=(b-a)<c;
bool2=(a-c)<b;
Boolean bool5=(c-a)<b;
bool3=(b-c)<a;
Boolean bool6=(c-b)<a;
if(false==(bool1&&bool2&&bool3&&bool4&bool5&bool6)){
System.out.println("抱歉,您输入的数据不能组成三角形,任意两个之差必须小于第三边");
System.exit(1);
}
//利用海伦公式获取三角形的面积
s=(a+b+c)/2;
area=Math.sqrt(s*(s-a)*(s-b)*(s-c));
System.out.println("该三角形的面积是:"+area);
}
}
展开全部
先计算任意两点间的距离,既得到三条边的长度,再用海伦公式:S=√[p(p-a)(p-b)(p-c)] ,p为半周长p=(a+b+c)/2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
class Point{
private double x,y;
public Point(){
x=0;y=0;
}
public Point(double x,double y){
this.x=x;this.y=y;
}
public double getX(){
return x;
}
public double getY(){
return y;
}
}
class Triangle{
private Point p1,p2,p3;
public Triangle(){
p1=new Point();
p2=new Point();
p3=new Point();
}
public Triangle(double x1,double y1,double x2,double y2,double x3,double y3){
p1=new Point(x1,y1);
p2=new Point(x2,y2);
p3=new Point(x3,y3);
}
public double getArea(){
double x1=p1.getX(),y1=p1.getY(),x2=p2.getX(),y2=p2.getY(),x3=p3.getX(),y3=p3.getY();
double s1=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
double s2=Math.sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
double s3=Math.sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
double p=(s1+s2+s3)/2;
double a=Math.sqrt(p*(p-a)*(p-b)*(p-c));
return a;
}
}
应该是这样。
private double x,y;
public Point(){
x=0;y=0;
}
public Point(double x,double y){
this.x=x;this.y=y;
}
public double getX(){
return x;
}
public double getY(){
return y;
}
}
class Triangle{
private Point p1,p2,p3;
public Triangle(){
p1=new Point();
p2=new Point();
p3=new Point();
}
public Triangle(double x1,double y1,double x2,double y2,double x3,double y3){
p1=new Point(x1,y1);
p2=new Point(x2,y2);
p3=new Point(x3,y3);
}
public double getArea(){
double x1=p1.getX(),y1=p1.getY(),x2=p2.getX(),y2=p2.getY(),x3=p3.getX(),y3=p3.getY();
double s1=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
double s2=Math.sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
double s3=Math.sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
double p=(s1+s2+s3)/2;
double a=Math.sqrt(p*(p-a)*(p-b)*(p-c));
return a;
}
}
应该是这样。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
class Point{
private double x,y;
public Point(){
x=0;y=0;
}
public Point(double x,double y){
this.x=x;this.y=y;
}
public double getX(){
return x;
}
public double getY(){
return y;
}
}
class Triangle{
private Point p1,p2,p3;
public Triangle(){
p1=new Point();
p2=new Point();
p3=new Point();
}
public Triangle(double x1,double y1,double x2,double y2,double x3,double y3){
p1=new Point(x1,y1);
p2=new Point(x2,y2);
p3=new Point(x3,y3);
}
public double getArea(){
double x1=p1.getX(),y1=p1.getY(),x2=p2.getX(),y2=p2.getY(),x3=p3.getX(),y3=p3.getY();
double s1=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
double s2=Math.sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
double s3=Math.sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
double p=(s1+s2+s3)/2;
double a=Math.sqrt(p*(p-a)*(p-b)*(p-c));
return a;
}
}
应该是这样。
private double x,y;
public Point(){
x=0;y=0;
}
public Point(double x,double y){
this.x=x;this.y=y;
}
public double getX(){
return x;
}
public double getY(){
return y;
}
}
class Triangle{
private Point p1,p2,p3;
public Triangle(){
p1=new Point();
p2=new Point();
p3=new Point();
}
public Triangle(double x1,double y1,double x2,double y2,double x3,double y3){
p1=new Point(x1,y1);
p2=new Point(x2,y2);
p3=new Point(x3,y3);
}
public double getArea(){
double x1=p1.getX(),y1=p1.getY(),x2=p2.getX(),y2=p2.getY(),x3=p3.getX(),y3=p3.getY();
double s1=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
double s2=Math.sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
double s3=Math.sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
double p=(s1+s2+s3)/2;
double a=Math.sqrt(p*(p-a)*(p-b)*(p-c));
return a;
}
}
应该是这样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询