自定义Triangle,其中有:成员x,y和z作为边长,设置边长的方法setTriangle(a,b,c),从键盘输入数值分别给x,y,z赋值。求面积的方法getArea和显示三角型信息(三个边长)的方法showInfo。setTriangle方法中,如果输入的数值不是数字,则抛出异常NumberFormatException,提示重新输入直到输入合法的数据;getArea和showInfo方法中,但三条边不能构成一个三角形时,要抛出自定义异常NotTriangleException。否则显示正确信息。在测试类方法中构建一个Triangle对象,显示三角型信息和面积,要求捕获异常。简单的一个小程序,但是理的不是很清,哪位学长写个看看。
1、输入三角形的3边a、b、c,用循环做,输入不符合要求就继续,符合就跳出循环(需要写一个读取函数,读取时判断是否数字)
2、输入三个边长后判断3个边长是否能构成三角行(需要写一个判断能否构成三角形的函数)
3、计算三角形面积并输出(根据输入的三个边长计算面积并输出)
public class Triangle
{ /**
* @param args
*/
private double x,y,z,circle,area;
public Triangle()
{
x=0;
y=0;
z=0;
}
public void setTriangle(double a,double b,double c)
{
x=a;
y=b;
z=c;
}
public void showInfo()
{
double min,max,mid;
min=Math.min(Math.min(x,y),z);
max=Math.max(Math.max(x, y), z);
if(x==min||x==max)
{
if((y==min)||(y==max))
{
mid=z;
}
else
{
mid=y;
}
}
else {
{
mid=x;
}
}
try
{
if((max-min<mid)&&(min+mid>max))
{
System.out.println("三角形的三边长为:");
System.out.println("x="+x+" "+"y="+y+" "+"z="+z);
}
else
{
new NotTriangleException();
}
}
catch (Exception e)
{
// TODO: handle exception
e.printStackTrace();
}
}
public void getArea()
{
circle=(x+y+z)/2;
area=Math.sqrt(circle*(circle-x)*(circle-y)*(circle-z));
System.out.println("三角形的面积是:"+area);
}
class NotTriangleException
{
public NotTriangleException()
{
System.out.println("不能构成三角形!");
}
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
Triangle triangle=new Triangle();
double x1,y1,z1;
Scanner sc=new Scanner(System.in);
try
{
System.out.println("输入三边长:");
x1=sc.nextDouble();
y1=sc.nextDouble();
z1=sc.nextDouble();
triangle.setTriangle(x1,y1, z1);
triangle.showInfo();
triangle.getArea();
}
catch(NumberFormatException ex)
{
System.out.println("输入格式不正确!");
}
catch (Exception e)
{
// TODO: handle exception
e.printStackTrace();
}
}}