4 changed files with 94 additions and 2 deletions
@ -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 的转换,解决了编码问题。 |
||||
Binary file not shown.
@ -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(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
After Width: | Height: | Size: 24 KiB |
Loading…
Reference in new issue