『壹』 java:编写求解几何图形(如三角形,矩型,圆,多边型)的周长、面积的应用程序
你这题比较简单,真想不出怎么还会涉及到内部类,抽象类的话计算方法没有共性,感觉也用不上。
定义一个接口:
/**
*接口类
*/
publicinterfaceShape{
/**
*求周长
*
*@return
*/
doubleperimeter();
/**
*求面积
*
*@return
*/
doublearea();
}
计算三角形面机:
/**
*三角形
*/
{
//三条边的边长
privatedoublea;
privatedoubleb;
privatedoublec;
publicTriangle(doublea,doubleb,doublec){
this.a=a;
this.b=b;
this.c=c;
}
@Override
publicdoubleperimeter(){
returna+b+c;
}
@Override
publicdoublearea(){
//已知三边长求面机的公式
return((0.25)*Math.sqrt((a+b+c)*(a+b-c)*(a+c-b)*(b+c-a)));
}
}
计算圆面积:
/**
*圆
*/
{
//半径
privatedoubler;
publicCircle(doubler){
this.r=r;
}
@Override
publicdoubleperimeter(){
return2*3.14*r;
}
@Override
publicdoublearea(){
return3.14*r*r;
}
}
计算矩形面积:
/**
*矩形
*/
{
privatedoublea;
privatedoubleb;
publicRectangle(doublea,doubleb){
this.a=a;
this.b=b;
}
@Override
publicdoubleperimeter(){
return2*(a+b);
}
@Override
publicdoublearea(){
returna*b;
}
}
测试:
publicclassTest{
publicstaticvoidmain(String[]args){
Shapetriangle=newTriangle(3,4,5);
System.out.println("三角形周长:"+triangle.perimeter());
System.out.println("三角形面积:"+triangle.area());
Shapecircle=newCircle(1);
System.out.println("圆周长:"+circle.perimeter());
System.out.println("圆面积:"+circle.area());
Shaperectangle=newRectangle(3,4);
System.out.println("矩形周长:"+rectangle.perimeter());
System.out.println("矩形面积:"+rectangle.area());
}
}
『贰』 1.求解用java写(如三角形,矩型,圆)的的周长,面积,要求用到继承,多态,抽象类,接口,内部类等。
//抽象的形状类
public abstract class Shape{ }
//接口
public interface IDisplay{
void display(); //显示图形的基本信息
double getArea(); //计算面积
double getGirth(); //计算周长
}
//三角形类
public class Triangle extends Shape implements IDisplay{
protected double a;
protected double b;
protected double c;
public Triangle(double a, double b, double c){
this.a = a; this.b = b; this.c = c;
}
@Override public double getArea() {
double s = (a + b + c) / 2;
return Math.sqrt(s*(s-a)*(s-b)*(s-c));
}
@Override public double getGirth() {
return this.a + this.b + this.c;
}
@Override public void display() {
System.out.println("三角形");
System.out.println("边长:" + a + ", " + b + ", " + c);
}
}
//矩形类
public class Rectangle extends Shape implements IDisplay {
protected double width; protected double height;
public Rectangle(double width, double height){
this.width = width;
this.height = height;
}
@Override public double getArea() {
return this.width * this.height;
}
@Override public double getGirth() {
return 2 * ( this.width + this.height);
}
@Override public void display() {
System.out.println("矩形");
System.out.println("宽:" + this.width + ", 高:" + this.height);
}
}
//圆类
public class Circle extends Shape implements IDisplay {
protected double radius;
public Circle(double radius){
this.radius = radius;
}
@Override public double getArea() {
return Math.PI * this.radius * this.radius;
}
@Override public double getGirth() {
return 2 * Math.PI * this.radius;
}
@Override public void display() {
System.out.println("圆");
System.out.println("半径:" + this.radius);
}
}
『叁』 java 应用海伦公式求三角形面积(要求判断三角型是否成立)
importjava.util.Scanner;
publicclassHeron{
publicstaticvoidmain(String[]args){
Doublea,b,c;
Scanners=newScanner(System.in);
System.out.println("输入三边长:");
try{
a=Double.parseDouble(s.nextLine());
b=Double.parseDouble(s.nextLine());
c=Double.parseDouble(s.nextLine());
}catch(Exceptione){
System.out.println("格式有误。");
s.close();
return;
}
if(isTriangle(a,b,c))
System.out.println("面积为:"+calcArea(a,b,c));
else
System.out.println("不是正确的三角形。");
s.close();
}
publicstaticbooleanisTriangle(Doublea,Doubleb,Doublec){
if((a+b>c)&&(a+c>b)&&(b+c>a))
returntrue;
returnfalse;
}
publicstaticDoublecalcArea(Doublea,Doubleb,Doublec){
Doubles=(a+b+c)/2;
Doublearea=Math.sqrt(s*(s-a)*(s-b)*(s-c));
returnarea;
}
}
结果如下:
『肆』 java中计算任意三角形面积。
publicvoidtest1(){
//利用海伦公式计算任意三角形面积
doublea,b,c;//a,b,c为三角形的三边
doublep;//p为三角形adc边长的一半
doubles;//最终的面积
Scannerinput=newScanner(System.in);
a=input.nextDouble();
b=input.nextDouble();
c=input.nextDouble();
p=(a+b+c)/2;
s=p*(p-a)*(p-b)*(p-c);
s=Math.sqrt(s);
System.out.println("面积="+s);
}