Compare commits

...

No commits in common. 'main' and 'w1' have entirely different histories.
main ... w1

  1. 0
      AI协助记录.txt
  2. 5
      HelloWorld.java
  3. 166
      README.md
  4. 68
      TemperatureConverter.java
  5. 1
      W2/java
  6. BIN
      main/w5/Circle.class
  7. BIN
      main/w5/Rectangle.class
  8. BIN
      main/w5/Shape.class
  9. BIN
      main/w5/ShapeAreaCalculator.class
  10. 77
      main/w5/ShapeAreaCalculator.java
  11. BIN
      main/w5/ShapeUtil.class
  12. BIN
      main/w5/Triangle.class
  13. BIN
      main/w5/ai协助记录.docx
  14. BIN
      程序运行截图.docx

0
AI协助记录.txt

5
HelloWorld.java

@ -1,5 +0,0 @@
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}

166
README.md

@ -1,2 +1,164 @@
# java
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的终端/控制台中,等待出现输入提示后输入温度,按回车即可。

68
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();
}
}

1
W2/java

@ -1 +0,0 @@
Subproject commit a9b861a27d38d63afdda0018c2daeaacdee7146f

BIN
main/w5/Circle.class

Binary file not shown.

BIN
main/w5/Rectangle.class

Binary file not shown.

BIN
main/w5/Shape.class

Binary file not shown.

BIN
main/w5/ShapeAreaCalculator.class

Binary file not shown.

77
main/w5/ShapeAreaCalculator.java

@ -1,77 +0,0 @@
// 抽象图形类
abstract class Shape {
public abstract double getArea();
}
// 圆形类
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
// 矩形类
class Rectangle extends Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double getArea() {
return width * height;
}
}
// 三角形类
class Triangle extends Shape {
private double base;
private double height;
public Triangle(double base, double height) {
this.base = base;
this.height = height;
}
@Override
public double getArea() {
return 0.5 * base * height;
}
}
// 图形工具类
class ShapeUtil {
public static void printArea(Shape shape) {
System.out.printf("该图形的面积为:%.2f%n", shape.getArea());
}
}
// 主程序入口
public class ShapeAreaCalculator {
public static void main(String[] args) {
// 创建不同图形对象
Shape circle = new Circle(2.0);
Shape rectangle = new Rectangle(3.0, 4.0);
Shape triangle = new Triangle(3.0, 4.0);
// 统一调用工具类打印面积
System.out.println("圆形:");
ShapeUtil.printArea(circle);
System.out.println("矩形:");
ShapeUtil.printArea(rectangle);
System.out.println("三角形:");
ShapeUtil.printArea(triangle);
}
}

BIN
main/w5/ShapeUtil.class

Binary file not shown.

BIN
main/w5/Triangle.class

Binary file not shown.

BIN
main/w5/ai协助记录.docx

Binary file not shown.

BIN
程序运行截图.docx

Binary file not shown.
Loading…
Cancel
Save