6 changed files with 194 additions and 194 deletions
@ -1,12 +1,12 @@ |
|||
核心 prompt : |
|||
1. 修复温度转换 Java 代码的空格分割问题; |
|||
2. 实现批量读取文件转换温度的功能; |
|||
3. 编写规范的 README.md 运行说明; |
|||
4. 指导命令行编译运行的正确步骤。 |
|||
|
|||
AI 的帮助: |
|||
1.修正了代码中 split ("") 的分割逻辑为 split ("\s+"),解决单位识别失败问题; |
|||
2.提供了完整的批量转换方法代码,实现从 temps.txt 批量处理温度; |
|||
3.整理了包含编译 / 运行命令、示例的 README.md 模板; |
|||
4.解决了编译报错、文件路径等问题; |
|||
5. 检查代码结构与语法错误,指出方法位置错误、括号不匹配等问题,让程序能正常编译运行。 |
|||
核心 prompt : |
|||
1. 修复温度转换 Java 代码的空格分割问题; |
|||
2. 实现批量读取文件转换温度的功能; |
|||
3. 编写规范的 README.md 运行说明; |
|||
4. 指导命令行编译运行的正确步骤。 |
|||
|
|||
AI 的帮助: |
|||
1.修正了代码中 split ("") 的分割逻辑为 split ("\s+"),解决单位识别失败问题; |
|||
2.提供了完整的批量转换方法代码,实现从 temps.txt 批量处理温度; |
|||
3.整理了包含编译 / 运行命令、示例的 README.md 模板; |
|||
4.解决了编译报错、文件路径等问题; |
|||
5. 检查代码结构与语法错误,指出方法位置错误、括号不匹配等问题,让程序能正常编译运行。 |
|||
@ -1,5 +1,5 @@ |
|||
public class HelloWorld { |
|||
public static void main(String[] args) { |
|||
System.out.println("Hello World!"); |
|||
} |
|||
public class HelloWorld { |
|||
public static void main(String[] args) { |
|||
System.out.println("Hello World!"); |
|||
} |
|||
} |
|||
@ -1,54 +1,54 @@ |
|||
# 温度转换器(Java版) |
|||
## 功能说明 |
|||
实现摄氏度(C)和华氏度(F)互转,支持三种使用方式: |
|||
1. 交互式输入(控制台提示输入) |
|||
2. 命令行参数输入(加分项) |
|||
3. 批量转换(从文件读取多行温度,加分项) |
|||
|
|||
## 编译命令 |
|||
在代码所在目录执行: |
|||
```bash |
|||
javac -encoding UTF-8 TemperatureConverter.java |
|||
|
|||
## 运行命令 |
|||
方式 1:交互式运行(含批量转换) |
|||
```bash |
|||
java TemperatureConverter |
|||
- 先按提示输入单条温度(例如:36.6 C); |
|||
-程序自动读取同目录下 temps.txt 文件,批量转换所有行的温度。 |
|||
|
|||
方式 2:命令行参数运行 |
|||
```bash |
|||
java TemperatureConverter 36.6 C |
|||
# 或 |
|||
```bash |
|||
java TemperatureConverter 97 F |
|||
|
|||
## 运行示例 |
|||
示例 1:交互式 + 批量转换 |
|||
输入: |
|||
36.6 C |
|||
输出: |
|||
36.60 °C = 97.88 °F |
|||
|
|||
===== 批量转换开始 ===== |
|||
处理:36.6 C → 36.60 °C = 97.88 °F |
|||
处理:97 F → 97.00 °F = 36.11 °C |
|||
处理:100 C → 100.00 °C = 212.00 °F |
|||
处理:212 F → 212.00 °F = 100.00 °C |
|||
处理:25 C → 25.00 °C = 77.00 °F |
|||
处理:77 F → 77.00 °F = 25.00 °C |
|||
===== 批量转换结束 ===== |
|||
|
|||
示例 2:命令行转换华氏度到摄氏度 |
|||
输入命令:java TemperatureConverter 97 F输出:97.00 °F = 36.11 °C |
|||
批量转换说明 |
|||
1. 需在代码同目录下创建 temps.txt 文件; |
|||
2. 文件每行格式为「数值 单位」(例如:36.6 C); |
|||
3. 运行交互式模式时,程序自动执行批量转换。 |
|||
|
|||
注:批量转换所需的 temps.txt 文件因平台上传数量限制未单独上传,文件内容为: |
|||
36.6 C |
|||
97 F |
|||
100 C |
|||
# 温度转换器(Java版) |
|||
## 功能说明 |
|||
实现摄氏度(C)和华氏度(F)互转,支持三种使用方式: |
|||
1. 交互式输入(控制台提示输入) |
|||
2. 命令行参数输入(加分项) |
|||
3. 批量转换(从文件读取多行温度,加分项) |
|||
|
|||
## 编译命令 |
|||
在代码所在目录执行: |
|||
```bash |
|||
javac -encoding UTF-8 TemperatureConverter.java |
|||
|
|||
## 运行命令 |
|||
方式 1:交互式运行(含批量转换) |
|||
```bash |
|||
java TemperatureConverter |
|||
- 先按提示输入单条温度(例如:36.6 C); |
|||
-程序自动读取同目录下 temps.txt 文件,批量转换所有行的温度。 |
|||
|
|||
方式 2:命令行参数运行 |
|||
```bash |
|||
java TemperatureConverter 36.6 C |
|||
# 或 |
|||
```bash |
|||
java TemperatureConverter 97 F |
|||
|
|||
## 运行示例 |
|||
示例 1:交互式 + 批量转换 |
|||
输入: |
|||
36.6 C |
|||
输出: |
|||
36.60 °C = 97.88 °F |
|||
|
|||
===== 批量转换开始 ===== |
|||
处理:36.6 C → 36.60 °C = 97.88 °F |
|||
处理:97 F → 97.00 °F = 36.11 °C |
|||
处理:100 C → 100.00 °C = 212.00 °F |
|||
处理:212 F → 212.00 °F = 100.00 °C |
|||
处理:25 C → 25.00 °C = 77.00 °F |
|||
处理:77 F → 77.00 °F = 25.00 °C |
|||
===== 批量转换结束 ===== |
|||
|
|||
示例 2:命令行转换华氏度到摄氏度 |
|||
输入命令:java TemperatureConverter 97 F输出:97.00 °F = 36.11 °C |
|||
批量转换说明 |
|||
1. 需在代码同目录下创建 temps.txt 文件; |
|||
2. 文件每行格式为「数值 单位」(例如:36.6 C); |
|||
3. 运行交互式模式时,程序自动执行批量转换。 |
|||
|
|||
注:批量转换所需的 temps.txt 文件因平台上传数量限制未单独上传,文件内容为: |
|||
36.6 C |
|||
97 F |
|||
100 C |
|||
212 F |
|||
@ -1,121 +1,121 @@ |
|||
import java.util.Scanner; |
|||
import java.io.BufferedReader; |
|||
import java.io.FileReader; |
|||
import java.io.IOException; |
|||
|
|||
/** |
|||
* 温度转换器程序(Java版) |
|||
* 支持摄氏度(C)与华氏度(F)之间互转 |
|||
* 支持三种输入方式: |
|||
* 1. 交互式输入(控制台提示输入) |
|||
* 2. 命令行参数(例如:java TemperatureConverter 36.6 C) |
|||
* 3. 批量转换(从temps.txt文件读取多行温度) |
|||
*/ |
|||
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; |
|||
} |
|||
|
|||
/** |
|||
* 处理温度转换的核心逻辑 |
|||
* @param value 温度数值 |
|||
* @param unit 温度单位(C/F,不区分大小写) |
|||
*/ |
|||
public static void convert(double value, String unit) { |
|||
String upperUnit = unit.toUpperCase(); |
|||
if (upperUnit.equals("C")) { |
|||
double f = celsiusToFahrenheit(value); |
|||
System.out.printf("%.2f °C = %.2f °F%n", value, f); |
|||
} else if (upperUnit.equals("F")) { |
|||
double c = fahrenheitToCelsius(value); |
|||
System.out.printf("%.2f °F = %.2f °C%n", value, c); |
|||
} else { |
|||
System.out.println("未知单位,请使用 C 或 F。"); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 交互式输入模式(和Python原版一致) |
|||
*/ |
|||
public static void interactiveMode() { |
|||
Scanner scanner = new Scanner(System.in); |
|||
System.out.print("请输入要转换的温度与单位(例如 36.6 C 或 97 F):"); |
|||
String s = scanner.nextLine().trim(); |
|||
scanner.close(); |
|||
|
|||
if (s.isEmpty()) { |
|||
System.out.println("输入为空,程序退出。"); |
|||
return; |
|||
} |
|||
|
|||
try { |
|||
String[] parts = s.split("\\s+"); |
|||
double value = Double.parseDouble(parts[0]); |
|||
// 若用户只输数值,默认按摄氏度处理
|
|||
String unit = parts.length > 1 ? parts[1] : "C"; |
|||
convert(value, unit); |
|||
} catch (Exception e) { |
|||
System.out.println("输入解析失败,请按示例输入数值与单位,例如:36.6 C"); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 批量转换:从文件读取多行温度并输出结果(加分项) |
|||
* @param filePath 文件路径(每行格式:数值 单位,例如 36.6 C) |
|||
*/ |
|||
public static void batchConvert(String filePath) { |
|||
try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { |
|||
String line; |
|||
System.out.println("\n===== 批量转换开始 ====="); |
|||
while ((line = br.readLine()) != null) { |
|||
String trimLine = line.trim(); |
|||
// 跳过空行
|
|||
if (trimLine.isEmpty()) continue; |
|||
try { |
|||
String[] parts = trimLine.split("\\s+"); |
|||
double value = Double.parseDouble(parts[0]); |
|||
String unit = parts.length > 1 ? parts[1] : "C"; |
|||
System.out.print("处理:" + line + " → "); |
|||
convert(value, unit); |
|||
} catch (Exception e) { |
|||
System.out.println("行「" + line + "」格式错误,跳过"); |
|||
} |
|||
} |
|||
System.out.println("===== 批量转换结束 =====\n"); |
|||
} catch (IOException e) { |
|||
System.out.println("\n读取文件失败:找不到 " + filePath + " 文件(请确认文件在同目录下)\n"); |
|||
} |
|||
} |
|||
|
|||
public static void main(String[] args) { |
|||
// 优先处理命令行参数模式(加分项)
|
|||
if (args.length >= 2) { |
|||
try { |
|||
double value = Double.parseDouble(args[0]); |
|||
String unit = args[1]; |
|||
convert(value, unit); |
|||
} catch (Exception e) { |
|||
System.out.println("命令行参数解析失败!示例用法:java TemperatureConverter 36.6 C"); |
|||
} |
|||
} else { |
|||
// 无命令行参数则进入交互式模式 + 批量转换
|
|||
interactiveMode(); |
|||
batchConvert("temps.txt"); |
|||
} |
|||
} |
|||
import java.util.Scanner; |
|||
import java.io.BufferedReader; |
|||
import java.io.FileReader; |
|||
import java.io.IOException; |
|||
|
|||
/** |
|||
* 温度转换器程序(Java版) |
|||
* 支持摄氏度(C)与华氏度(F)之间互转 |
|||
* 支持三种输入方式: |
|||
* 1. 交互式输入(控制台提示输入) |
|||
* 2. 命令行参数(例如:java TemperatureConverter 36.6 C) |
|||
* 3. 批量转换(从temps.txt文件读取多行温度) |
|||
*/ |
|||
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; |
|||
} |
|||
|
|||
/** |
|||
* 处理温度转换的核心逻辑 |
|||
* @param value 温度数值 |
|||
* @param unit 温度单位(C/F,不区分大小写) |
|||
*/ |
|||
public static void convert(double value, String unit) { |
|||
String upperUnit = unit.toUpperCase(); |
|||
if (upperUnit.equals("C")) { |
|||
double f = celsiusToFahrenheit(value); |
|||
System.out.printf("%.2f °C = %.2f °F%n", value, f); |
|||
} else if (upperUnit.equals("F")) { |
|||
double c = fahrenheitToCelsius(value); |
|||
System.out.printf("%.2f °F = %.2f °C%n", value, c); |
|||
} else { |
|||
System.out.println("未知单位,请使用 C 或 F。"); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 交互式输入模式(和Python原版一致) |
|||
*/ |
|||
public static void interactiveMode() { |
|||
Scanner scanner = new Scanner(System.in); |
|||
System.out.print("请输入要转换的温度与单位(例如 36.6 C 或 97 F):"); |
|||
String s = scanner.nextLine().trim(); |
|||
scanner.close(); |
|||
|
|||
if (s.isEmpty()) { |
|||
System.out.println("输入为空,程序退出。"); |
|||
return; |
|||
} |
|||
|
|||
try { |
|||
String[] parts = s.split("\\s+"); |
|||
double value = Double.parseDouble(parts[0]); |
|||
// 若用户只输数值,默认按摄氏度处理
|
|||
String unit = parts.length > 1 ? parts[1] : "C"; |
|||
convert(value, unit); |
|||
} catch (Exception e) { |
|||
System.out.println("输入解析失败,请按示例输入数值与单位,例如:36.6 C"); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 批量转换:从文件读取多行温度并输出结果(加分项) |
|||
* @param filePath 文件路径(每行格式:数值 单位,例如 36.6 C) |
|||
*/ |
|||
public static void batchConvert(String filePath) { |
|||
try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { |
|||
String line; |
|||
System.out.println("\n===== 批量转换开始 ====="); |
|||
while ((line = br.readLine()) != null) { |
|||
String trimLine = line.trim(); |
|||
// 跳过空行
|
|||
if (trimLine.isEmpty()) continue; |
|||
try { |
|||
String[] parts = trimLine.split("\\s+"); |
|||
double value = Double.parseDouble(parts[0]); |
|||
String unit = parts.length > 1 ? parts[1] : "C"; |
|||
System.out.print("处理:" + line + " → "); |
|||
convert(value, unit); |
|||
} catch (Exception e) { |
|||
System.out.println("行「" + line + "」格式错误,跳过"); |
|||
} |
|||
} |
|||
System.out.println("===== 批量转换结束 =====\n"); |
|||
} catch (IOException e) { |
|||
System.out.println("\n读取文件失败:找不到 " + filePath + " 文件(请确认文件在同目录下)\n"); |
|||
} |
|||
} |
|||
|
|||
public static void main(String[] args) { |
|||
// 优先处理命令行参数模式(加分项)
|
|||
if (args.length >= 2) { |
|||
try { |
|||
double value = Double.parseDouble(args[0]); |
|||
String unit = args[1]; |
|||
convert(value, unit); |
|||
} catch (Exception e) { |
|||
System.out.println("命令行参数解析失败!示例用法:java TemperatureConverter 36.6 C"); |
|||
} |
|||
} else { |
|||
// 无命令行参数则进入交互式模式 + 批量转换
|
|||
interactiveMode(); |
|||
batchConvert("temps.txt"); |
|||
} |
|||
} |
|||
} |
|||
@ -1,6 +1,6 @@ |
|||
36.6 C |
|||
97 F |
|||
100 C |
|||
212 F |
|||
25 C |
|||
36.6 C |
|||
97 F |
|||
100 C |
|||
212 F |
|||
25 C |
|||
77 F |
|||
|
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 96 KiB |
Loading…
Reference in new issue