计算长方形的周长和面积(类和对象)

计算长方形的周长和面积(类和对象)
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
设计一个长方形类Rect,计算长方形的周长与面积。
成员变量:整型、私有的数据成员length(长)、width(宽);
构造方法如下:
(1)Rect(int length) —— 1个整数表示正方形的边长
(2)Rect(int length, int width)——2个整数分别表示长方形长和宽
成员方法:包含求面积和周长。(可适当添加其他方法)
要求:编写主函数,对Rect类进行测试,输出每个长方形的长、宽、周长和面积。
Input
输入多组数据;
一行中若有1个整数,表示正方形的边长;
一行中若有2个整数(中间用空格间隔),表示长方形的长度、宽度。
若输入数据中有负数,则不表示任何图形,长、宽均为0。
Output
每行测试数据对应一行输出,格式为:(数据之间有1个空格)
长度 宽度 周长 面积
Sample Input

1
2 3
4 5
2
-2
-2 -3

Sample Output

1 1 4 1
2 3 10 6
4 5 18 20
2 2 8 4
0 0 0 0
0 0 0 0

Hint

Source
zhouxq

import java.text.DecimalFormat;
import java.util.Scanner;

class Rect{
    private int width,length;
    Rect(int width,int length){
        if(width > 0 && length > 0) {
            this.width = width;
            this.length = length;
        }
        else {
            width = length = 0;
        }
    }
    Rect(int width){
        if(width > 0) {
            this.width = width;
            length = width;
        }
        else {
            width = length = 0;
        }

    }
    public int getArea() {
        return width*length;
    }
    public int getLength() {          //返回周长
        return (width+length)*2;
    }
    public int getWidth() {
        return width;
    }
    public int getLeng() {             //返回长度
        return length; 
    }
}

public class Main {
    public static void main(String args[]){
        Scanner input = new Scanner(System.in);
        DecimalFormat df = new DecimalFormat("0.00");
        while(input.hasNext()) {
            String str = input.nextLine();
            String[] ch = str.split(" ");
            int[] a = new int[50];
            int i;
            for(i = 0;i < ch.length;i++) {
                a[i] = Integer.parseInt(ch[i]);
            }
            if(i == 1) {
                Rect rr = new Rect(a[0]);
                System.out.println(rr.getWidth()+" "+rr.getLeng()+" "+rr.getLength()+" "+rr.getArea());
            }
            else if(i == 2) {
                Rect rr = new Rect(a[0],a[1]);
                System.out.println(rr.getWidth()+" "+rr.getLeng()+" "+rr.getLength()+" "+rr.getArea());
            }
            else {
                System.out.println("0 0 0 0");
            }
        }
        input.close();
    }
}

猜你喜欢

转载自blog.csdn.net/qq_40014462/article/details/80087749
今日推荐