diff --git a/README.md b/README.md index a8687f1..606c7ef 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,28 @@ -# java - +# 温度转换器 TemperatureConverter + +## 项目说明 +这是一个简单的温度转换程序,可以将摄氏度(°C)与华氏度(°F)相互转换。 +本程序由 Python 版本移植为 Java 版本,功能完全一致。 + +## 功能特性 +- 摄氏度 → 华氏度转换 +- 华氏度 → 摄氏度转换 +- 支持用户交互式输入 +- 友好的错误提示 + +## 编译与运行 + +### 环境要求 +- JDK 8 或更高版本 + +### 编译 +在终端(或命令提示符)中进入程序所在目录,执行: +```bash +javac TemperatureConverter.java + + +## AI 协助记录 +1. 问:“Python 的 input() 在 Java 里怎么写?” → AI 教我使用 Scanner 类。 +2. 问:“编译时出现编码错误怎么办?” → AI 教我保存为 ANSI 编码或用 -encoding UTF-8。 +3. 问:“怎么运行 Java 程序?” → AI 教我 javac 编译,java 运行。 +AI 帮助我完成了从 Python 到 Java 的转换,解决了编码问题。 \ No newline at end of file diff --git a/TemperatureConverter.class b/TemperatureConverter.class new file mode 100644 index 0000000..9d6a691 Binary files /dev/null and b/TemperatureConverter.class differ diff --git a/TemperatureConverter.java b/TemperatureConverter.java new file mode 100644 index 0000000..b9b6bcf --- /dev/null +++ b/TemperatureConverter.java @@ -0,0 +1,66 @@ +/** + * Temperature Converter Program + * Convert between Celsius and Fahrenheit + */ +public class TemperatureConverter { + + /** + * Convert Celsius to Fahrenheit + * + * @param celsius Celsius temperature + * @return Fahrenheit temperature + */ + public static double celsiusToFahrenheit(double celsius) { + // Formula: Fahrenheit = Celsius * 9/5 + 32 + return celsius * 9.0 / 5.0 + 32.0; + } + + /** + * Convert Fahrenheit to Celsius + * + * @param fahrenheit Fahrenheit temperature + * @return Celsius temperature + */ + public static double fahrenheitToCelsius(double fahrenheit) { + // Formula: Celsius = (Fahrenheit - 32) * 5/9 + return (fahrenheit - 32.0) * 5.0 / 9.0; + } + + /** + * Main method - program entry point + */ + public static void main(String[] args) { + java.util.Scanner scanner = new java.util.Scanner(System.in); + + System.out.print("Please enter temperature and unit (e.g. 36.6 C or 97 F): "); + String s = scanner.nextLine().trim(); + + if (s.isEmpty()) { + System.out.println("Input is empty, program exit."); + scanner.close(); + return; + } + + String[] parts = s.split(" "); + + try { + double value = Double.parseDouble(parts[0]); + String unit = (parts.length > 1) ? parts[1].toUpperCase() : "C"; + + 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("Unknown unit, please use C or F."); + } + + } catch (Exception e) { + System.out.println("Input error, please use format like: 36.6 C"); + } finally { + scanner.close(); + } + } +} \ No newline at end of file diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000..f2e916e Binary files /dev/null and b/screenshot.png differ