「Java案例」计算矩形面积

170 阅读5分钟

今天来做个特别实用的编程练习——计算矩形面积。这就像咱们装修房子要算地板面积一样,是编程里最基础但超级实用的技能。

案例解析

矩形面积计算器

编写一个程序,从键盘上输入一个矩形的长和宽,其类型为double,输出矩形的面积,并保留2位小数。

# 源文件保存为“RectangleArea.java”。
import java.util.Scanner;

public class RectangleArea {
    public static void main(String[] args) {
        // 创建一个Scanner对象用来接收键盘输入
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("=== 矩形面积计算器 ===");
        System.out.print("请输入矩形的长度:");
        double length = scanner.nextDouble();
        
        System.out.print("请输入矩形的宽度:");
        double width = scanner.nextDouble();
        
        // 计算面积
        double area = length * width;
        
        // 格式化输出,保留两位小数
        System.out.printf("矩形的面积是:%.2f", area);
        
        // 关闭Scanner
        scanner.close();
    }
}

运行结果 依次输入108,会得到:

=== 矩形面积计算器 === 请输入矩形的长度:10 请输入矩形的宽度:8 矩形的面积是:80.00

代码解析

  • Scanner就像个收银员,负责从键盘接收输入的数据。
  • nextDouble()方法是用来读取小数的输入。
  • 面积计算:面积 = 长 * 宽。
  • printf格式化输出信息,并保留2位小数。
  • 最后别忘记让scanner"下班",调用close()方法

三角形面积计算

编写一个程序,从键盘上输入一个三角形的低和高,其类型为double,输出三角形的面积,并保留2位小数。

# 源文件保存为“RectangleArea.java”。
import java.util.Scanner;

public class TriangleArea {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("=== 三角形面积计算 ===");
        System.out.print("请输入底边长度:");
        double base = scanner.nextDouble();
        
        System.out.print("请输入高度:");
        double height = scanner.nextDouble();
        
        double area = 0.5 * base * height;
        
        System.out.printf("三角形的面积是:%.2f", area);
        
        scanner.close();
    }
}

运行结果 依次输入108,会得到:

=== 三角形面积计算 === 请输入底边长度:10 请输入高度:8 三角形的面积是:40.00

特别说明:三角形面积公式是底乘高除以2,这里用0.5直接相乘更高效。同样保留了两位小数,让结果看起来更专业。

圆形面积计算

编写一个程序,从键盘上输入一个圆的半径,其类型为double,输出圆的面积,并保留2位小数。圆形的面积计算需要用到π,Java里可以用Math.PI:

# 源文件保存为“CircleArea.java”。
import java.util.Scanner;

public class CircleArea {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("=== 圆形面积计算 ===");
        System.out.print("请输入半径:");
        double radius = scanner.nextDouble();
        
        double area = Math.PI * radius * radius;
        
        System.out.printf("圆的面积是:%.2f", area);
        
        scanner.close();
    }
}

运行结果 输入10会得到:

=== 圆形面积计算 === 请输入半径:10 圆的面积是:314.16

注意的点Math.PI是Java自带的π值,精度超高。面积公式πr²在这里写成Math.PI * radius * radius,清晰易懂。

梯形面积计算

编写一个程序,从键盘上输入一个梯形的上底、下底和高,其类型为double,输出梯形的面积,并保留2位小数。

# 源文件保存为“TrapezoidArea.java”。
import java.util.Scanner;

public class TrapezoidArea {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("=== 梯形面积计算 ===");
        System.out.print("请输入上底长度:");
        double a = scanner.nextDouble();
        
        System.out.print("请输入下底长度:");
        double b = scanner.nextDouble();
        
        System.out.print("请输入高度:");
        double h = scanner.nextDouble();
        
        double area = (a + b) * h / 2;
        
        System.out.printf("梯形的面积是:%.2f", area);
        
        scanner.close();
    }
}

运行结果 依次输入567会得到:

=== 梯形面积计算 === 请输入上底长度:5 请输入下底长度:6 请输入高度:7 梯形的面积是:38.50

公式解析:梯形面积=(上底+下底)×高÷2。注意这里先加后乘最后除,用括号确保运算顺序正确。

练习题

改进矩形计算器

增加周长计算功能,输出格式为"面积:xx.xx,周长:xx.xx"

# 源文件保存为“RectangleCalculator.java”。
import java.util.Scanner;

public class RectangleCalculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("请输入长度:");
        double length = scanner.nextDouble();
        
        System.out.print("请输入宽度:");
        double width = scanner.nextDouble();
        
        double area = length * width;
        double perimeter = 2 * (length + width);
        
        System.out.printf("面积是:%.2f,周长:%.2f", area, perimeter);
        
        scanner.close();
    }
}

运行结果 依次输入108,会得到:

请输入长度:10 请输入宽度:8 面积是:80.00,周长:36.00

解析:周长公式是2倍的长加宽。

长方体计算器

编写一个程序,从键盘上输入一个正方体的长、宽、高,其类型为double,输出正方体的体积和表面积,并保留2位小数。

# 源文件保存为“CuboidCalculator.java”。
import java.util.Scanner;

public class CuboidCalculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("=== 长方体计算器 ===");
        System.out.print("请输入长度:");
        double l = scanner.nextDouble();

        System.out.print("请输入宽度:");
        double w = scanner.nextDouble();

        System.out.print("请输入高度:");
        double h = scanner.nextDouble();

        double volume = l * w * h;
        double surfaceArea = 2 * (l * w + l * h + w * h);

        System.out.printf("体积:%.2f,表面积:%.2f", volume, surfaceArea);

        scanner.close();
    }
}

运行结果 依次输入345,会得到:

请输入长度:3 请输入宽度:4 请输入高度:5 体积:60.00,表面积:94.00

关键点:表面积公式2(l * w + l * h + w * h);体积公式l * w * h。

智能图形计算器

编写一个程序,根据用户选择的图形类型,然后根据选择输入对应参数进行计算,求出该图形的面积。

# 源文件保存为“ShapeCalculator.java”。
import java.util.Scanner;

public class ShapeCalculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("请选择图形类型:");
        System.out.println("1.矩形");
        System.out.println("2.圆形");
        System.out.println("3.三角形");
        System.out.print("您的选择:");
        int choice = scanner.nextInt();

        double area = 0;

        switch (choice) {
            case 1:
                System.out.print("请输入长度:");
                double l = scanner.nextDouble();
                System.out.print("请输入宽度:");
                double w = scanner.nextDouble();
                area = l * w;
                break;
            case 2:
                System.out.print("请输入半径:");
                double r = scanner.nextDouble();
                area = Math.PI * r * r;
                break;
            case 3:
                System.out.print("请输入底边:");
                double b = scanner.nextDouble();
                System.out.print("请输入高度:");
                double h = scanner.nextDouble();
                area = 0.5 * b * h;
                break;
            default:
                System.out.println("无效选择!");
                return;
        }

        System.out.printf("面积为:%.2f", area);
        scanner.close();
    }
}

运行结果 依次输入1108,会得到:

请选择图形类型: 1.矩形 2.圆形 3.三角形 您的选择:1 请输入长度:10 请输入宽度:8 面积为:80.00

依次输入210,会得到:

请选择图形类型: 1.矩形 2.圆形 3.三角形 您的选择:2 请输入半径:10 面积为:314.16

技巧:使用switch-case结构处理用户选择更清晰。每个case里处理对应图形的输入和计算逻辑。注意处理无效输入的情况。