diff --git a/.idea/misc.xml b/.idea/misc.xml
index 07115cd..0e05be0 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..2b63946
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/demo/demo.iml b/demo/demo.iml
index 6db0c46..c90834f 100644
--- a/demo/demo.iml
+++ b/demo/demo.iml
@@ -5,7 +5,7 @@
-
+
\ No newline at end of file
diff --git a/demo/src/Main.java b/demo/src/Calculator.java
similarity index 74%
rename from demo/src/Main.java
rename to demo/src/Calculator.java
index 26c6c22..71a1548 100644
--- a/demo/src/Main.java
+++ b/demo/src/Calculator.java
@@ -1,6 +1,6 @@
import java.util.Scanner;
-public class Main {
+public class Calculator {
// 加法
public static double add(double num1, double num2) {
@@ -40,15 +40,32 @@ public class Main {
// 输入第一个数
System.out.print("请输入第一个数: ");
- double num1 = scanner.nextDouble();
+ String num3 = scanner.nextLine();
+ int num1;
+ try{
+ num1=Integer.parseInt(num3);
+ }catch (NumberFormatException e){
+ System.out.println("输入有误,请输入一个整数!");
+ return;
+ }
// 输入运算符
System.out.print("请输入运算符 (+, -, *, /, %): ");
char operator = scanner.next().charAt(0);
+ if (!(operator == '+' || operator == '-' || operator == '*' || operator == '/' || operator == '%')) {
+ throw new IllegalArgumentException("无效的运算符");
+ }
// 输入第二个数
System.out.print("请输入第二个数: ");
- double num2 = scanner.nextDouble();
+ String num4 = scanner.nextLine();
+ int num2;
+ try{
+ num2=Integer.parseInt(num3);
+ }catch (NumberFormatException e){
+ System.out.println("输入有误,请输入一个整数!");
+ return;
+ }
// 结果变量
double result = 0;
diff --git a/demo/src/CalculatorApp.java b/demo/src/CalculatorApp.java
new file mode 100644
index 0000000..e909209
--- /dev/null
+++ b/demo/src/CalculatorApp.java
@@ -0,0 +1,114 @@
+import javafx.application.Application;
+import javafx.geometry.Insets;
+import javafx.scene.Scene;
+import javafx.scene.control.Button;
+import javafx.scene.control.Label;
+import javafx.scene.control.TextField;
+import javafx.scene.layout.GridPane;
+import javafx.stage.Stage;
+
+public class CalculatorApp extends Application {
+
+ private TextField num1Field = new TextField();
+ private TextField num2Field = new TextField();
+ private Label resultLabel = new Label();
+ private Calculator calculator = new Calculator(); // 引入计算器逻辑类
+
+ public static void main(String[] args) {
+ launch(args);
+ }
+
+ @Override
+ public void start(Stage primaryStage) {
+ primaryStage.setTitle("JavaFX Calculator");
+
+ // 创建布局
+ GridPane grid = new GridPane();
+ grid.setPadding(new Insets(10, 10, 10, 10));
+ grid.setVgap(8);
+ grid.setHgap(10);
+
+ // 第一个数
+ Label num1Label = new Label("num1:");
+ GridPane.setConstraints(num1Label, 0, 0);
+ GridPane.setConstraints(num1Field, 1, 0);
+
+ // 第二个数
+ Label num2Label = new Label("num2:");
+ GridPane.setConstraints(num2Label, 0, 1);
+ GridPane.setConstraints(num2Field, 1, 1);
+
+ // 结果标签
+ Label resultText = new Label("结果:");
+ GridPane.setConstraints(resultText, 0, 2);
+ GridPane.setConstraints(resultLabel, 1, 2);
+
+ // 加法按钮
+ Button addButton = new Button("+");
+ addButton.setOnAction(e -> calculate('+'));
+ GridPane.setConstraints(addButton, 0, 3);
+
+ // 减法按钮
+ Button subtractButton = new Button("-");
+ subtractButton.setOnAction(e -> calculate('-'));
+ GridPane.setConstraints(subtractButton, 1, 3);
+
+ // 乘法按钮
+ Button multiplyButton = new Button("*");
+ multiplyButton.setOnAction(e -> calculate('*'));
+ GridPane.setConstraints(multiplyButton, 2, 3);
+
+ // 除法按钮
+ Button divideButton = new Button("/");
+ divideButton.setOnAction(e -> calculate('/'));
+ GridPane.setConstraints(divideButton, 3, 3);
+
+ // 取余按钮
+ Button remainderButton = new Button("%");
+ remainderButton.setOnAction(e -> calculate('%'));
+ GridPane.setConstraints(remainderButton, 4, 3);
+
+ // 添加所有组件到布局中
+ grid.getChildren().addAll(num1Label, num1Field, num2Label, num2Field, resultText, resultLabel,
+ addButton, subtractButton, multiplyButton, divideButton, remainderButton);
+
+ // 创建场景并设置到窗口
+ Scene scene = new Scene(grid, 400, 200);
+ primaryStage.setScene(scene);
+ primaryStage.show();
+ }
+
+ // 计算方法
+ private void calculate(char operator) {
+ try {
+ double num1 = Double.parseDouble(num1Field.getText());
+ double num2 = Double.parseDouble(num2Field.getText());
+ double result = 0;
+
+ switch (operator) {
+ case '+':
+ result = calculator.add(num1, num2);
+ break;
+ case '-':
+ result = calculator.subtract(num1, num2);
+ break;
+ case '*':
+ result = calculator.multiply(num1, num2);
+ break;
+ case '/':
+ result = calculator.divide(num1, num2);
+ break;
+ case '%':
+ result = calculator.remainder(num1, num2);
+ break;
+ }
+
+ resultLabel.setText(String.valueOf(result));
+
+ } catch (NumberFormatException e) {
+ resultLabel.setText("Invalid Input");
+ } catch (ArithmeticException e) {
+ resultLabel.setText(e.getMessage());
+ }
+ }
+}
\ No newline at end of file
diff --git a/out/production/demo/Calculator.class b/out/production/demo/Calculator.class
new file mode 100644
index 0000000..6aae97a
Binary files /dev/null and b/out/production/demo/Calculator.class differ
diff --git a/out/production/demo/CalculatorApp.class b/out/production/demo/CalculatorApp.class
new file mode 100644
index 0000000..59300cb
Binary files /dev/null and b/out/production/demo/CalculatorApp.class differ