用键盘输入三角形三条边,判断能否构成三角形,如果能再求三角形面积和周长并输出
菜鸟望大神指点。
判断:任意两边之和大于第三条边
周长:三边和
面积:s = (周长)/2
面积 = (平方根)((s-边1)*(s-边2)*(s-边3)*s)
/*
时间:
2012-10-08
作者:
烟大
程序要求:
1.封装一类三角形对象Triangle,该类对象具有三条边的属性,
具有初始化三角形的功能、修改边长的功能、判断三条边能否构成三角形的功能、
求周长的功能、求面积的功能。
程序分析:
1.程序要进行封装;
2.具体数据要进行私有化,保证安全;
3.面积要用到公式,需要记忆(蛮简单的公式)
*/
class Da......
答案就在这里:java求三角形面积以及周长---封装
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?
这是代码用实现:
import java.util.Scanner;
public class Test
{
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请输入三角形边长:");
double a=scan.nextDouble();
double b=scan.nextDouble();
double c=scan.nextDouble();
Triangle s=new Triangle();
if((a+b)>c&&(a+c)>b&&(b+c)>a){
s=new Triangle(a,b,c);
System.out.println("三角形的三边分别为:"+a+"\t"+b+"\t"+c);
}
else{
System.out.println("输入的三边不能形成三角形!");
System.exit(0);
}
System.out.println("周长为:"+s.round());
System.out.println("面积为:"+s.area());
}
}
class Triangle{
double a;
double b;
double c;
public Triangle(){
}
public Triangle(double x,double y,double z){
this.a=x;
this.b=y;
this.c=z;
}
public double round(){
return a+b+c;
}
public double area(){
double p=(this.a+this.b+this.c)/2.0;
double x=Math.sqrt(p*(p-this.a)*(p-this.b)*(p-this.c));
return x;
}
}
public void triangle(double a,double b,double c){
boolean isTriangle=false;//是否是三角形(默认为false)
double area=0;//面积(默认为0)
double girth=0;//周长(默认为0)
if((a+b)>c){
if((a+b)>c){
if((a+b)>c){
isTriangle=true;
}
}
}
if(isTriangle){
girth=a+b+c;
double p=girth/2.0;
area=Math.sqrt(p*(p-a)*(p-b)*(p-c));
System.out.println("是三角形;面积:"+area+";周长:"+girth);
}else{
System.out.println("不是三角形");
}
}
自己随便写的一个方法,希望对你有所帮助
我这个代码是实现用户手动输入三角形的三条边长,如果三条边可以构成三角形,则计算这个三角形的周长和面积,如果不可以,则提示输入的数不能构成三角形,如有不对,请指正,此回复供互相交流学习谢谢!!!(这个程序我一共创建了两个类,一个实现结果的方法类、另一个是主函数类),下面是实现代码过程
这是实现的方法类:
/*
import java.util.Scanner;
public class ch026MianXiangZuoYe6 {
int a;//三角形底
int b;//三角形左边腰
int c;//三角形右边腰
int C = 0;//三角形周长
double S;//三角形面积
boolean q=false;//判断是否能构成三角形,对则构成,假则不构成
// 用户输入三角形底(a)
public int di ()
{
Scanner in = new Scanner(System.in);
System.out.println("请输入三角形的底的长度");
this.a=in.nextInt();
return a;
}
//输入三角形的左边腰长
public int left ()
{
Scanner in = new Scanner(System.in);
System.out.println("请输入三角形左边腰的长度");
this.b=in.nextInt();
return b;
}
//输入三角形的右边腰长
public int right ()
{
Scanner in = new Scanner(System.in);
System.out.println("请输入三角形右边腰的长度");
this.c=in.nextInt();
return c;
}
// 计算是否能构成三角形
public boolean goucheng(boolean q)
{
if (a+b>c&&b+c>a&&a+c>b)
{
q=true;
this.q=q;
System.out.println("能构成三角形");
}else
{
q=false;
this.q=q;
System.out.println("不能构成三角形");
System.exit(0);
}
return q;
}
// 计算三角形周长
public int CC(int cc) {
cc =a+b+c;
this.C = cc;
System.out.println("三角形周长为"+cc);
return C;
}
//计算三角形面积
public double SS(double ss) {
// 此题未知三角形高,所以计算三角形的面积用海伦公式:S=√ p*(p-a)(p-b)(p-c)
// * √为根号,P为周长的一半
// java中内置的开根函数: Math.sqrt(num)
// int zz=(C/2)((C/2)-a)((C/2)-b)((C/2)-c);
ss= (C/2)((C/2)-a)((C/2)-b)((C/2)-c);
System.out.println("三角形面积为"+Math.sqrt(ss));
this.S=ss;
return S;
}
}
下面是主函数类:
/*
ch026MianXiangZuoYe6的测试类
*/
public class ch026MianXiangZuoYe9 {
public static void main(String[] args) {
// aa为ch026MianXiangZuoYe6和ch026MianXiangZuoYe9的连接口
ch026MianXiangZuoYe6 aa = new ch026MianXiangZuoYe6();
aa.di();//用户输入三角形底
aa.left();//用户输入三角形左边腰长
aa.right();//用户输入三角形右边腰长
aa.goucheng(aa.q);//判断用户输入的数是否能构成三角形
aa.CC(aa.C);//能够成三角形的话,计算此三角形周长
aa.SS(aa.S);//能够成三角形的话,计算此三角形面积
}
}