Browse Source

w1作业上传

main
ZhengShiyi 1 month ago
parent
commit
1f1a11dcf5
  1. 24
      w1/AI协助记录.txt
  2. 8
      w1/HelloWorld.java
  3. 106
      w1/README.md
  4. 240
      w1/TemperatureConverter.java
  5. 10
      w1/temps.txt
  6. 0
      w1/运行截图.png

24
AI协助记录.txt → w1/AI协助记录.txt

@ -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. 检查代码结构与语法错误,指出方法位置错误、括号不匹配等问题,让程序能正常编译运行。

8
HelloWorld.java → w1/HelloWorld.java

@ -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!");
}
}

106
README.md → w1/README.md

@ -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

240
TemperatureConverter.java → w1/TemperatureConverter.java

@ -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");
}
}
}

10
temps.txt → w1/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

0
运行截图.png → w1/运行截图.png

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Loading…
Cancel
Save