commit 51f9de8c4f31084997ef5ab10f020b7b2ceea6de Author: YanJingting <2970785624@qq.com> Date: Mon Mar 9 12:11:34 2026 +0800 添加温度转换程序的代码,说明文档和记录文件 diff --git a/AI协助记录.txt b/AI协助记录.txt new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md new file mode 100644 index 0000000..7f3760a --- /dev/null +++ b/README.md @@ -0,0 +1,164 @@ +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的终端/控制台中,等待出现输入提示后输入温度,按回车即可。 \ No newline at end of file diff --git a/TemperatureConverter.java b/TemperatureConverter.java new file mode 100644 index 0000000..289983e --- /dev/null +++ b/TemperatureConverter.java @@ -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(); + } +} \ No newline at end of file diff --git a/程序运行截图.docx b/程序运行截图.docx new file mode 100644 index 0000000..8bc0d17 Binary files /dev/null and b/程序运行截图.docx differ