Compare commits
No commits in common. 'main' and 'w1' have entirely different histories.
14 changed files with 232 additions and 85 deletions
@ -1,5 +0,0 @@ |
|||
public class HelloWorld { |
|||
public static void main(String[] args) { |
|||
System.out.println("Hello, World!"); |
|||
} |
|||
} |
|||
@ -1,2 +1,164 @@ |
|||
# java |
|||
TemperatureConverter 温度转换程序 |
|||
|
|||
一款基于Java开发的轻量级温度转换工具,支持**摄氏度(°C)与华氏度(°F)**之间的双向互转,输入格式灵活,包含完善的输入校验,上手简单。 |
|||
|
|||
功能特性 |
|||
|
|||
1. 支持摄氏度转华氏度、华氏度转摄氏度双向转换 |
|||
2. 输入格式灵活:可输入 数值+空格+单位 (如 36.6 C ),也可仅输入数值(默认按摄氏度处理) |
|||
3. 单位匹配宽松:支持 c/C/℃ 、 f/F/℉ 等单位写法,程序自动识别 |
|||
4. 完善的异常处理:对空输入、非数字输入、未知单位等情况给出明确提示 |
|||
5. 输出结果格式化:保留两位小数,显示标准温度单位,直观易读 |
|||
|
|||
运行环境 |
|||
|
|||
- JDK 1.8 及以上版本(兼容主流JDK版本) |
|||
- 任意终端/命令行工具(PowerShell、CMD、Git Bash、Linux/Mac终端等) |
|||
- 也可在IDEA、VS Code、Eclipse等Java开发工具中直接运行 |
|||
|
|||
快速开始 |
|||
|
|||
1. 代码保存 |
|||
|
|||
将温度转换程序代码保存为TemperatureConverter.java文件,确保文件名与类名完全一致(Java语法要求)。 |
|||
|
|||
2. 编译代码 |
|||
|
|||
打开终端/命令行,进入 TemperatureConverter.java 文件所在的目录,执行编译命令: |
|||
|
|||
bash |
|||
|
|||
javac TemperatureConverter.java |
|||
|
|||
|
|||
编译成功后,目录下会生成 TemperatureConverter.class 字节码文件(运行程序的核心文件)。 |
|||
|
|||
3. 运行程序 |
|||
|
|||
在同一目录下,执行运行命令: |
|||
|
|||
bash |
|||
|
|||
java TemperatureConverter |
|||
|
|||
|
|||
程序启动后,终端会出现输入提示,按要求输入温度即可完成转换。 |
|||
|
|||
输入输出示例 |
|||
|
|||
示例1:摄氏度转华氏度(标准输入) |
|||
|
|||
输入: |
|||
|
|||
plaintext |
|||
|
|||
36.6 C |
|||
|
|||
|
|||
输出: |
|||
|
|||
plaintext |
|||
|
|||
36.60 °C = 97.88 °F |
|||
|
|||
|
|||
示例2:华氏度转摄氏度 |
|||
|
|||
输入: |
|||
|
|||
plaintext |
|||
|
|||
98.6 F |
|||
|
|||
|
|||
输出: |
|||
|
|||
plaintext |
|||
|
|||
98.60 °F = 37.00 °C |
|||
|
|||
|
|||
示例3:仅输入数值(默认按摄氏度处理) |
|||
|
|||
输入: |
|||
|
|||
plaintext |
|||
|
|||
0 |
|||
|
|||
|
|||
输出: |
|||
|
|||
plaintext |
|||
|
|||
0.00 °C = 32.00 °F |
|||
|
|||
|
|||
示例4:单位大小写不敏感 |
|||
|
|||
输入: |
|||
|
|||
plaintext |
|||
|
|||
100 c |
|||
|
|||
|
|||
输出: |
|||
|
|||
plaintext |
|||
|
|||
100.00 °C = 212.00 °F |
|||
|
|||
|
|||
常见错误及解决办法 |
|||
|
|||
错误1:终端直接输入 36.6C / 98.6F 报错 |
|||
|
|||
原因:未先运行程序,直接在终端输入内容被识别为系统命令,而非程序输入。 |
|||
解决:先执行 java TemperatureConverter 启动程序,待出现输入提示后,再输入温度。 |
|||
|
|||
错误2:编译时提示 找不到文件 |
|||
|
|||
原因:终端当前目录与 TemperatureConverter.java 文件所在目录不一致。 |
|||
解决:使用 cd 文件夹路径 命令切换到文件所在目录,再执行编译命令。 |
|||
|
|||
错误3:编译时提示 类名与文件名不一致 |
|||
|
|||
原因:Java要求公共类的类名必须与文件名完全一致(包括大小写)。 |
|||
解决:将文件名修改为 TemperatureConverter.java ,与代码中的 public class TemperatureConverter 保持一致。 |
|||
|
|||
错误4:输入非数字内容提示解析失败 |
|||
|
|||
原因:程序仅支持数字型温度值,输入文字/符号会无法解析。 |
|||
解决:按提示输入数字+单位的格式,例如 25 C 、 77 F 。 |
|||
|
|||
核心方法说明 |
|||
|
|||
1. 摄氏度转华氏度 |
|||
|
|||
java |
|||
|
|||
public static double celsiusToFahrenheit(double c) |
|||
|
|||
|
|||
- 参数: c - 待转换的摄氏温度值(double类型) |
|||
- 返回值:转换后的华氏温度值(double类型) |
|||
- 公式: F = C × 9/5 + 32 |
|||
|
|||
2. 华氏度转摄氏度 |
|||
|
|||
java |
|||
|
|||
public static double fahrenheitToCelsius(double f) |
|||
|
|||
|
|||
- 参数: f - 待转换的华氏温度值(double类型) |
|||
- 返回值:转换后的摄氏温度值(double类型) |
|||
- 公式: C = (F - 32) × 5/9 |
|||
|
|||
开发工具运行说明(以VS Code为例) |
|||
|
|||
1. 安装VS Code的Java Extension Pack插件(Java开发必备) |
|||
2. 打开 TemperatureConverter.java 文件所在的文件夹 |
|||
3. 点击代码右上角的运行按钮(或按 F5 ) |
|||
4. 在VS Code的终端/控制台中,等待出现输入提示后输入温度,按回车即可。 |
|||
@ -0,0 +1,68 @@ |
|||
import java.util.Scanner; |
|||
|
|||
/** |
|||
* 温度转换器示例程序(Java版) |
|||
* 支持摄氏度(C)与华氏度(F)之间互转 |
|||
*/ |
|||
public class TemperatureConverter { |
|||
|
|||
/** |
|||
* 将摄氏度转换为华氏度。 |
|||
* |
|||
* @param c 摄氏温度 |
|||
* @return 对应的华氏温度 |
|||
*/ |
|||
public static double celsiusToFahrenheit(double c) { |
|||
return c * 9.0 / 5.0 + 32.0; |
|||
} |
|||
|
|||
/** |
|||
* 将华氏度转换为摄氏度。 |
|||
* |
|||
* @param f 华氏温度 |
|||
* @return 对应的摄氏温度 |
|||
*/ |
|||
public static double fahrenheitToCelsius(double f) { |
|||
return (f - 32.0) * 5.0 / 9.0; |
|||
} |
|||
|
|||
public static void main(String[] args) { |
|||
Scanner scanner = new Scanner(System.in); |
|||
|
|||
// 提示用户输入,格式示例:"36.6 C" 或 "97 F"
|
|||
System.out.print("请输入要转换的温度与单位(例如 36.6 C 或 97 F):"); |
|||
String s = scanner.nextLine().trim(); |
|||
|
|||
if (s.isEmpty()) { |
|||
System.out.println("输入为空,程序退出。"); |
|||
return; |
|||
} |
|||
|
|||
String[] parts = s.split("\\s+"); |
|||
double value; |
|||
String unit; |
|||
|
|||
try { |
|||
value = Double.parseDouble(parts[0]); |
|||
// 允许用户输入两个部分:数值与单位,若单位缺失则默认为 'C'
|
|||
unit = (parts.length > 1) ? parts[1].toUpperCase() : "C"; |
|||
} catch (NumberFormatException e) { |
|||
System.out.println("输入解析失败,请按示例输入数值与单位,例如:36.6 C"); |
|||
return; |
|||
} |
|||
|
|||
if (unit.startsWith("C")) { |
|||
// 从摄氏度转换为华氏度
|
|||
double f = celsiusToFahrenheit(value); |
|||
System.out.printf("%.2f °C = %.2f °F%n", value, f); |
|||
} else if (unit.startsWith("F")) { |
|||
// 从华氏度转换为摄氏度
|
|||
double c = fahrenheitToCelsius(value); |
|||
System.out.printf("%.2f °F = %.2f °C%n", value, c); |
|||
} else { |
|||
System.out.println("未知单位,请使用 C 或 F。"); |
|||
} |
|||
|
|||
scanner.close(); |
|||
} |
|||
} |
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,77 +0,0 @@ |
|||
// 抽象图形类
|
|||
abstract class Shape { |
|||
public abstract double getArea(); |
|||
} |
|||
|
|||
// 圆形类
|
|||
class Circle extends Shape { |
|||
private double radius; |
|||
|
|||
public Circle(double radius) { |
|||
this.radius = radius; |
|||
} |
|||
|
|||
@Override |
|||
public double getArea() { |
|||
return Math.PI * radius * radius; |
|||
} |
|||
} |
|||
|
|||
// 矩形类
|
|||
class Rectangle extends Shape { |
|||
private double width; |
|||
private double height; |
|||
|
|||
public Rectangle(double width, double height) { |
|||
this.width = width; |
|||
this.height = height; |
|||
} |
|||
|
|||
@Override |
|||
public double getArea() { |
|||
return width * height; |
|||
} |
|||
} |
|||
|
|||
// 三角形类
|
|||
class Triangle extends Shape { |
|||
private double base; |
|||
private double height; |
|||
|
|||
public Triangle(double base, double height) { |
|||
this.base = base; |
|||
this.height = height; |
|||
} |
|||
|
|||
@Override |
|||
public double getArea() { |
|||
return 0.5 * base * height; |
|||
} |
|||
} |
|||
|
|||
// 图形工具类
|
|||
class ShapeUtil { |
|||
public static void printArea(Shape shape) { |
|||
System.out.printf("该图形的面积为:%.2f%n", shape.getArea()); |
|||
} |
|||
} |
|||
|
|||
// 主程序入口
|
|||
public class ShapeAreaCalculator { |
|||
public static void main(String[] args) { |
|||
// 创建不同图形对象
|
|||
Shape circle = new Circle(2.0); |
|||
Shape rectangle = new Rectangle(3.0, 4.0); |
|||
Shape triangle = new Triangle(3.0, 4.0); |
|||
|
|||
// 统一调用工具类打印面积
|
|||
System.out.println("圆形:"); |
|||
ShapeUtil.printArea(circle); |
|||
|
|||
System.out.println("矩形:"); |
|||
ShapeUtil.printArea(rectangle); |
|||
|
|||
System.out.println("三角形:"); |
|||
ShapeUtil.printArea(triangle); |
|||
} |
|||
} |
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue