From 51b2675dac0db1ebd215ef0710bd4e10d76233dc Mon Sep 17 00:00:00 2001 From: clf <264939904@qq.com> Date: Thu, 10 Oct 2024 15:26:22 +0800 Subject: [PATCH] 222 --- Main.java | 201 ++++++++++++++++-------------- out/production/jeidui1/Main.class | Bin 2689 -> 5939 bytes 2 files changed, 107 insertions(+), 94 deletions(-) diff --git a/Main.java b/Main.java index c6d43f7..3347310 100644 --- a/Main.java +++ b/Main.java @@ -1,107 +1,120 @@ -import java.util.Scanner; - -public class Main { - - public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); - - System.out.println("欢迎使用简单计算器!"); - System.out.println("请选择操作:"); - System.out.println("1. 加法"); - System.out.println("2. 减法"); - System.out.println("3. 乘法"); - System.out.println("4. 除法"); - System.out.println("5. 取余"); - System.out.print("输入你的选择(1/2/3/4/5): "); - - int choice = scanner.nextInt(); - - switch (choice) { - case 1: - performAddition(scanner); - break; - case 2: - performSubtraction(scanner); - break; - case 3: - performMultiplication(scanner); - break; - case 4: - performDivision(scanner); - break; - case 5: - performModulus(scanner); - break; - default: - System.out.println("无效选择,请重试。"); +import javafx.application.Application; +import javafx.beans.binding.Bindings; +import javafx.beans.property.*; +import javafx.geometry.Pos; +import javafx.scene.Scene; +import javafx.scene.control.*; +import javafx.scene.layout.*; +import javafx.stage.Stage; + +public class Main extends Application { + private TextField display = new TextField(); + private Button[] numberButtons = new Button[10]; + private Button addButton, subtractButton, multiplyButton, divideButton, modulusButton, equalsButton, clearButton; + private Label statusLabel = new Label(""); + + private SimpleDoubleProperty firstOperand = new SimpleDoubleProperty(0); + private SimpleDoubleProperty secondOperand = new SimpleDoubleProperty(0); + private String operator = ""; + + @Override + public void start(Stage primaryStage) { + GridPane grid = new GridPane(); + grid.setAlignment(Pos.CENTER); + grid.setHgap(10); + grid.setVgap(10); + + display.setEditable(false); + grid.add(display, 0, 0, 4, 1); + + for (int i = 0; i < 10; i++) { + numberButtons[i] = new Button(String.valueOf(i)); + grid.add(numberButtons[i], (i % 3), (i / 3) + 1); } - scanner.close(); - } - - private static void performAddition(Scanner scanner) { - System.out.print("输入第一个数字: "); - double num1 = scanner.nextDouble(); - - System.out.print("输入第二个数字: "); - double num2 = scanner.nextDouble(); - - double result = num1 + num2; - - System.out.println("结果: " + result); - } - - private static void performSubtraction(Scanner scanner) { - System.out.print("输入第一个数字: "); - double num1 = scanner.nextDouble(); - - System.out.print("输入第二个数字: "); - double num2 = scanner.nextDouble(); - - double result = num1 - num2; + addButton = new Button("+"); + subtractButton = new Button("-"); + multiplyButton = new Button("*"); + divideButton = new Button("/"); + modulusButton = new Button("%"); + equalsButton = new Button("="); + clearButton = new Button("C"); + + grid.add(addButton, 3, 1); + grid.add(subtractButton, 3, 2); + grid.add(multiplyButton, 3, 3); + grid.add(divideButton, 3, 4); + grid.add(modulusButton, 3, 5); + grid.add(equalsButton, 3, 6); + grid.add(clearButton, 3, 7); + + for (int i = 0; i < 10; i++) { + int finalI = i; + numberButtons[i].setOnAction(e -> display.appendText(String.valueOf(finalI))); + } - System.out.println("结果: " + result); + addButton.setOnAction(e -> setOperator("+")); + subtractButton.setOnAction(e -> setOperator("-")); + multiplyButton.setOnAction(e -> setOperator("*")); + divideButton.setOnAction(e -> setOperator("/")); + modulusButton.setOnAction(e -> setOperator("%")); + equalsButton.setOnAction(e -> calculate()); + clearButton.setOnAction(e -> clear()); + + Scene scene = new Scene(grid, 300, 400); + primaryStage.setTitle("Calculator"); + primaryStage.setScene(scene); + primaryStage.show(); } - private static void performMultiplication(Scanner scanner) { - System.out.print("输入第一个数字: "); - double num1 = scanner.nextDouble(); - - System.out.print("输入第二个数字: "); - double num2 = scanner.nextDouble(); - - double result = num1 * num2; - - System.out.println("结果: " + result); + private void setOperator(String op) { + if (!operator.isEmpty()) { + calculate(); + } + operator = op; + firstOperand.setValue(Double.parseDouble(display.getText())); + display.clear(); } - private static void performDivision(Scanner scanner) { - System.out.print("输入第一个数字: "); - double num1 = scanner.nextDouble(); - - System.out.print("输入第二个数字: "); - double num2 = scanner.nextDouble(); - - if (num2 == 0) { - System.out.println("错误: 除数不能为零。"); - } else { - double result = num1 / num2; - System.out.println("结果: " + result); + private void calculate() { + if (!operator.isEmpty()) { + secondOperand.setValue(Double.parseDouble(display.getText())); + double result = 0; + switch (operator) { + case "+": + result = firstOperand.get() + secondOperand.get(); + break; + case "-": + result = firstOperand.get() - secondOperand.get(); + break; + case "*": + result = firstOperand.get() * secondOperand.get(); + break; + case "/": + if (secondOperand.get() != 0) { + result = firstOperand.get() / secondOperand.get(); + } else { + statusLabel.setText("Cannot divide by zero"); + return; + } + break; + case "%": + result = firstOperand.get() % secondOperand.get(); + break; + } + display.setText(String.format("%.2f", result)); + operator = ""; } } - private static void performModulus(Scanner scanner) { - System.out.print("输入第一个数字: "); - int num1 = scanner.nextInt(); - - System.out.print("输入第二个数字: "); - int num2 = scanner.nextInt(); + private void clear() { + display.clear(); + firstOperand.setValue(0); + secondOperand.setValue(0); + operator = ""; + } - if (num2 == 0) { - System.out.println("错误: 除数不能为零。"); - } else { - int result = num1 % num2; - System.out.println("结果: " + result); - } + public static void main(String[] args) { + launch(args); } } diff --git a/out/production/jeidui1/Main.class b/out/production/jeidui1/Main.class index 2da2f9b9fde98de62d39beede91fac5e6fe8192a..0ec60dd97191991cb3057b5484fb884fc81d4b09 100644 GIT binary patch literal 5939 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 Sir6=b*f)#V!$s^{c;J5+Rc&Yh literal 2689 zcmbVN|5H>|6#qOH*vGP>f+zyQ`XymOSOHA|#V-(ufRd{uS=wWFg@?=Tw(OE-Gnsuc zOR^ayf}FCl!5kB_nT1qz`n7+fWr3gk3vBw__nxpS)ga8f=iYnHJ?HZ|_nfHHuL{ipVe7PDEe?v| zkQmy;@R}G7%V-w{ugf?hHG~=iRIoK`Zn2>LYK@mfT4405@GdyM-myo{6yg0)hp`hZ@9c3DuEi_RBUe%@O`%gmFseNj%7BcOLrQaR)hRN09^oN5k zPrWLVm?H92DpF&`OIR;qsg|aAqGohj(FIi)bX#!(UI}@zn?FoH{31H>aO(2)sat0z z`v<0PeLr<;aB}GSqx&D2(PM=VeuAGK9h*6GKKA*~u}l5Yi7Sup4>M?4scrJJtFhk( zI4|e?+(ms}QEH3+{ zqr$PtvDsc_vmyY$6>lSG#mm@Y#Wpc)7ekF0c3_KyoY>&i*ubay@kjSB2$1Lcr$-0= zI&;>FUXh0tdYq}7H>2ZcqT@GW1GguC85I6Q2tTF1dm&Cu&9im3JFI%$qKM?FdzWJ0 zUJ*X}@QxTxT5$^RN?0{>d1!icv`S+W&d^`a&B+)V) z3%GJnN|Z@OV~~F3BmspSleJ9~?3`P50~Dc{s}yWN33qr{a>B%a;MzSTwBLbg42jKm zkd&Srfmuk|kST_=7&6t6Rzof_WLgA^iz8UFJ@*E^0`>efaFlEL74a+Mx0TabWHCEM5v<%J z7TLyPZ-L!anZ%uY$Y~!#Zu+VS^0Ja5$dABA>T_3`r+F$S=?x@VN>UDF6Hq>(R1%7S zT*P>crU3=5N|@?OV#y|%D$Y!_&S8Qokwlz)q85U)b0Ijl5a(7Rs3Oj4#^27!I~aH8 z3*h7{x)7Wv7J{>uIO~YBo;VwbvynKPh_m?xaPpxyaQSkn%6vn zH3fG6{{h$Qe?4m+*iYcC1b%?PodkY}SKP)PILym$$6g$nC9siN{mMaVqJ~9j)XbJf znNb>|nq?$BMzP71$MWD$mO*ENg(C{9A&$