diff --git a/pom.xml b/pom.xml
index 8e594bb01a36601873e8b046d8e495de70730963..3542646ead3434c30d15c3262c3c32c4a32fcb51 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,19 +26,34 @@
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- 3.3.0
-
-
-
- com.example.climenu.Main
-
-
-
-
-
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 3.6.0
+
+
+ jar-with-dependencies
+
+
+
+ com.example.climenu.Main
+
+
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/example/climenu/MenuCommand.java b/src/main/java/com/example/climenu/MenuCommand.java
index 22b3841d26999e9dd73587ef5d9d876e4dfc9be4..fcc6c585e06478548b81489144da253f2f1bb135 100644
--- a/src/main/java/com/example/climenu/MenuCommand.java
+++ b/src/main/java/com/example/climenu/MenuCommand.java
@@ -38,7 +38,8 @@ public class MenuCommand implements Callable {
}
System.out.println(Ansi.AUTO.string("@|yellow 斐波那契数列(前" + fibonacciCount + "项):|@"));
for (int i = 0; i < fibonacciCount; i++) {
- System.out.println(" " + Ansi.AUTO.string("@|cyan " + fibonacci(i) + "|@"));
+ System.out.println(" " + Ansi.AUTO.string(stringWithMarkup: "@|cyan " + fibonacci(i + 1) + "|@"));
+// 说明:i从0开始,+1后对应第1、2...n项,与方法逻辑匹配
}
return 0;
}
@@ -55,11 +56,47 @@ public class MenuCommand implements Callable {
System.out.println("2. " + Ansi.AUTO.string("@|yellow 计算斐波那契数列|@"));
System.out.println("3. " + Ansi.AUTO.string("@|yellow 退出程序|@"));
System.out.println(Ansi.AUTO.string("@|bold,blue ========================================|@") + "\n");
- System.out.println(Ansi.AUTO.string("@|italic 提示: 运行 --help 查看详细帮助信息。|@"));
- }
+ System.out.println(Ansi.AUTO.string("@|italic 提示: 运行 --help 查看详细帮助信息。|@"));// 新增:选项交互处理
+ Scanner scanner = new Scanner(System.in);
+ System.out.print("请选择操作(输入 1-3 或 'exit' 退出):");
+ String choice = scanner.nextLine().trim();
+
+ switch (choice) {
+ case "1":
+ 选项1:显示当前时间(与 -t 参数逻辑统一)
+ String now = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ System.out.println("⏰ " + Ansi.AUTO.string(stringWithMarkup: "@|bold,green " + now + "|@"));
+ break;
+ case "2":
+ // 选项2:计算斐波那契数列(已有代码,保持不变)
+ try {
+ System.out.print("请输入斐波那契数列的项数:");
+ int num = Integer.parseInt(scanner.nextLine().trim());
+ if (num <= 0) {
+ System.out.println(Ansi.AUTO.string(stringWithMarkup: "@|red 错误:请输入正整数!|@"));
+ break;
+ }
+ long result = fibonacci(num); // 调用公共计算方法
+ System.out.println("第" + num + "项斐波那契数是:" + Ansi.AUTO.string(stringWithMarkup: "@|cyan " + result + "|@"));
+ } catch (NumberFormatException e) {
+ System.out.println(Ansi.AUTO.string(stringWithMarkup: "@|red 错误:请输入有效的整数!|@"));
+ }
+ break;
+ case "3":
+ case "exit":
+ 选项3:退出程序
+ System.out.println("👋 " + Ansi.AUTO.string(stringWithMarkup: "@|green 退出程序,再见!|@"));
+ scanner.close(); // 退出前关闭Scanner
+ System.exit(0);
+ break;
+ default:
+ System.out.println(Ansi.AUTO.string(stringWithMarkup: "@|red 输入无效,请重新选择 1-3 或输入 'exit' 退出!|@"));
+ }
- private long fibonacci(int n) {
- if (n <= 1) return n;
+ // 公共斐波那契计算方法,供 Main 类调用
+ public long fibonacci(int n) {
+ if (n <= 0) return 0; // 输入非正整数返回0
+ if (n == 1 || n == 2) return 1; // 第1、2项均为1(符合常规定义)
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
\ No newline at end of file