首页 > 试题广场 >

KiKi设计类继承

[编程题]KiKi设计类继承
  • 热度指数:21152 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
KiKi理解了继承可以让代码重用,他现在定义一个基类shape,私有数据为坐标点x,y,  由它派生Rectangle类和Circle类,它们都有成员函数GetArea()求面积。派生类Rectangle类有数据:矩形的长和宽;派生类Circle类有数据:圆的半径。Rectangle类又派生正方形Square类,定义各类并测试。输入三组数据,分别是矩形的长和宽、圆的半径、正方形的边长,输出三组数据,分别是矩形、圆、正方形的面积。圆周率按3.14计算。

输入描述:
输入三行,
第一行为矩形的长和宽,
第二行为圆的半径,
第三行为正方形的边长。


输出描述:
三行,分别是矩形、圆、正方形的面积。
示例1

输入

7 8
10
5

输出

56
314
25
只有格式输出折腾半天
import java.text.DecimalFormat;
import java.util.Scanner;

class shape {
    private int x;
    private int y;
    public shape() {}
    public shape(int x, int y) {
        this.x = x;
        this.y = y;
    }
    public shape (int x) {
        this.x = x;
    }
    public int getX() {
        return this.x;
    }
    public int getY() {
        return this.y;
    }
    public double GetArea() {
        return 0.0;
    }
    public void printArea() {
        double area = this.GetArea();
                //格式化不足补零
        DecimalFormat decimalFormat = new DecimalFormat("#.##");
        String result = decimalFormat.format(area);
        if (result.endsWith(".00")) {//整数取整
            System.out.println((int) area);
        } else {
            System.out.println(result);
        }
    }
}
class Rectangle extends shape {
    public Rectangle(int x, int y) {
        super(x, y);
    }
    public double GetArea() {
        return super.getX() * super.getY();
    }
}

class Circle extends shape {
    public Circle (int x) {
        super(x);
    }
    public double GetArea() {
        return super.getX() * super.getX() * 3.14;
    }
}

class Square extends shape {
    public Square (int x) {
        super(x);
    }
    public double GetArea() {
        return super.getX() * super.getX();
    }
}

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        Rectangle s1 = new Rectangle(in.nextInt(), in.nextInt());
        s1.printArea();
        Circle s2  = new Circle(in.nextInt());
        s2.printArea();
        Square s3 = new Square(in.nextInt());
        s3.printArea();
    }
}


发表于 2023-05-02 14:00:08 回复(0)
import java.text.DecimalFormat;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Rectangle rectangle = new Rectangle();
        Circle circle = new Circle();
        Square square = new  Square();
        rectangle.setC(sc.nextInt());
        rectangle.setK(sc.nextInt());
        circle.setR(sc.nextInt());
        square.setC(sc.nextInt());
        System.out.println(rectangle.getArea());
        double AreaCircle = circle.getArea();
        int AreaCircle1 = (int)circle.getArea();
        DecimalFormat df = new DecimalFormat("###.0");
        double temp;
        if (AreaCircle > AreaCircle1){
            temp = Double.parseDouble(df.format(AreaCircle));
            if (temp != AreaCircle) {
                System.out.println(String.format("%.2f", AreaCircle));
            }else {
                System.out.println(AreaCircle);
            }
        }
        else {
            System.out.println(AreaCircle1);
        }
        System.out.println(square.getArea());


    }
}
class Shape{
    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }

    private int x;
    private int y;

}
class Rectangle extends Shape{

    private int c;

    public int getC() {
        return c;
    }

    public void setC(int c) {
        this.c = c;
    }

    public int getK() {
        return k;
    }

    public void setK(int k) {
        this.k = k;
    }

    private int k;
    public int getArea(){

        return c*k;
    }
}

class Circle extends Shape{
    public int getR() {
        return r;
    }

    public void setR(int r) {
        this.r = r;
    }

    private int r;
    public double getArea(){
        return 3.14*(double) (r*r);
    }

}

class Square extends Rectangle{
    @Override
    public int getC() {
        return c;
    }

    @Override
    public void setC(int c) {
        this.c = c;
    }

    private int c;
    public int getArea(){
        return c*c;
    }
}

发表于 2021-10-06 19:26:23 回复(0)
//需要对圆的面积结果进行处理,小数点后保留两位小数,小数点若是.00则将00舍去
//输出整数部分
import java.text.DecimalFormat;
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        int width=sc.nextInt();
        int height=sc.nextInt();
        int r=sc.nextInt();
        int s=sc.nextInt();
        Rectangle rectangle=new Rectangle(width,height);
        System.out.println(rectangle.GetArea());
        Circle circle=new Circle(r);

        Square square = new Square(s);



        double AreaCircle = circle.GetArea();
        int AreaCircle1 = (int)circle.GetArea();
        DecimalFormat df = new DecimalFormat("###.0");
        double temp;
        if (AreaCircle > AreaCircle1){
            temp = Double.parseDouble(df.format(AreaCircle));
            if (temp != AreaCircle) {
                System.out.println(String.format("%.2f", AreaCircle));
            }else {
                System.out.println(AreaCircle);
            }
        }
        else {
            System.out.println(AreaCircle1);
        }
        System.out.println(square.GetArea());


    }
    static class shape{
        private int x;
        private int y;

        public shape(int x, int y) {
            this.x = x;
            this.y = y;
        }
    }
    static class Rectangle extends shape{
        private int width;
        private int height;


        public Rectangle(int width, int height) {
            super(width, height);
            this.width = width;
            this.height = height;
        }
        public int GetArea(){
           int s1=width*height;
           return s1;
        }
    }
    static class  Circle extends shape{
        int r;


        public Circle( int r) {
            super(r, r);
            this.r = r;
        }
        public double GetArea(){
            double s2=3.14*r*r;
            return s2;
        }
    }
    static class Square extends Rectangle{
        int length;
        public  Square(int length){
            super(length,length);
            this.length=length;
        }
        public int GetArea(int length){
            int Area=length*length;
            return Area;
        }


    }

}

编辑于 2020-07-27 13:31:21 回复(0)