6-2 面积求和

本文介绍了如何使用面向接口的设计模式,创建IGeometry接口和其实现类Rect和Circle,以及TotalArea类计算不同形状图形的总面积。通过实例展示了如何在主类中创建并计算多个几何图形的面积总和。
摘要由CSDN通过智能技术生成

分数 10

全屏浏览题目

切换布局

作者 yl

单位 西南石油大学

由于各种图形 求面积的方式不一样,为了使编写的程序能够适应求不同形状的面积和,当新增加一个图形的时候,不需要修改其他类,采用面向接口的编程,其类图如下图所示:

根据以上类图,你需要设计和编写如下类:
######1.IGeometry接口类 ,里面有double getArea()接口方法
2.Rect类实现接口,有属性 a,b,有参构造方法及对接口方法的实现
######3.Circle类实现接口,有属性r,有参构造方法及对接口方法的实现,其中PI=3.14
4.TotalArea类完成对不同形状图形面积求和,有属性IGeometry[] tuxing 数组用来存储 不同形状图形对象,SetTuxing(IGeometry[] t) 给属性tuxing赋值,double computeTotalArea()方法用来计算tuxing数组中存放的图形的面积和,并返回面积和。

主类已经给出,请结合主类完成上面类的编写

裁判测试程序主类:

 

public class Main { public static void main(String[] args) { IGeometry [] tuxing=new IGeometry[29]; //有29个Geometry对象 for(int i=0;i<tuxing.length;i++) { //29个Geometry对象分成两类 if(i%2==0) tuxing[i]=new Rect(16+i,68); else if(i%2==1) tuxing[i]=new Circle(10+i); } TotalArea computer=new TotalArea(); computer.setTuxing(tuxing); System.out.printf("各种图形的面积之和:\n%.2f",computer.computerTotalArea()); } } /* 请在这里填写答案 请结合主类代码,在代码框完成IGeometry接口类,Rect类,Circle类和TotalArea类*/

输入样例:

在这里给出一组输入。例如:

输出样例:

在这里给出相应的输出。例如:

各种图形的面积之和:
58778.36

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

代码

class Circle implements IGeometry{
    double r;
    Circle(double r){
        this.r = r;
    }
    public double getArea(){
        return r*r*3.14;
    }
}
class Rect implements IGeometry{
    double a,b;
    Rect(double a,double b){
           this.a = a;
           this.b = b;

    }
    public double getArea(){
          return a*b;
    }
}
class TotalArea {
    IGeometry[] tuxing;
    void setTuxing(IGeometry[] t){
           tuxing = t;
    }
    double computerTotalArea() {
        double sum = 0;
        for (int i = 0; i < tuxing.length; i++) {
            sum = sum + tuxing[i].getArea();
        }
        return sum;
    }
}
interface IGeometry {
    double getArea();
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值