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

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

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic

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.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            String s = in.nextLine();
            char[] a = s.toCharArray();
            int flag = 0;
            for (int i = 0; i < a.length; i++) {
                if (a[i] == ' ') {
                    flag = 1;
                    break;
                }
            }
            if (flag == 0) // 判断输入数字的个数  即判定是否为正方形
            {
                int len = Integer.parseInt(s); // 确定字符串中不含 空格  将字符串转化为整形
                if (len <= 0) // 如果正方形边长 <=0 不符合
                    System.out.println("0 0 0 0");
                else {
                    React R = new React(len);
                }
            } else {
                String[] s1 = s.split(" "); // 以空格为参数  对字符串进行分割为子串
                int length = Integer.parseInt(s1[0]);
                int wideth = Integer.parseInt(s1[1]);
                if (length <= 0 || wideth <= 0)
                    System.out.println("0 0 0 0");
                else {
                    React R = new React(length, wideth);
                }
            }
        }
    }
}

class React {
    React(int len, int wide) {
        System.out.printf("%d %d %d %d\n", len, wide, 2 * (len + wide), len * wide);
    }

    React(int len) {
        System.out.printf("%d %d %d %d\n", len, len, 4 * len, len * len);
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值