『壹』 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);
}