今天来做个特别实用的编程练习——计算矩形面积。这就像咱们装修房子要算地板面积一样,是编程里最基础但超级实用的技能。
案例解析
矩形面积计算器
编写一个程序,从键盘上输入一个矩形的长和宽,其类型为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();
}
}
运行结果
依次输入10和8,会得到:
=== 矩形面积计算器 === 请输入矩形的长度: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();
}
}
运行结果
依次输入10和8,会得到:
=== 三角形面积计算 === 请输入底边长度: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();
}
}
运行结果
依次输入5、6、7会得到:
=== 梯形面积计算 === 请输入上底长度: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();
}
}
运行结果
依次输入10和8,会得到:
请输入长度: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();
}
}
运行结果
依次输入3、4和5,会得到:
请输入长度: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();
}
}
运行结果
依次输入1、10和8,会得到:
请选择图形类型: 1.矩形 2.圆形 3.三角形 您的选择:1 请输入长度:10 请输入宽度:8 面积为:80.00
依次输入2和10,会得到:
请选择图形类型: 1.矩形 2.圆形 3.三角形 您的选择:2 请输入半径:10 面积为:314.16
技巧:使用switch-case结构处理用户选择更清晰。每个case里处理对应图形的输入和计算逻辑。注意处理无效输入的情况。