xiaolai 6 months ago
parent 80352db2ee
commit 1fba01512d

@ -1,72 +1,48 @@
import java.util.Scanner; import javax.swing.*;
import java.awt.*;
public class Calculator {
// 加法 public class SimpleCalculator extends JFrame {
public double add(double a, double b) {
return a + b; private JTextField display;
} private JPanel panel;
private double operand1 = 0;
// 减法 private double operand2 = 0;
public double subtract(double a, double b) { private char operator;
return a - b; private boolean userIsTypingSecondNumber = false;
}
public SimpleCalculator() {
// 乘法 setTitle("Simple Calculator");
public double multiply(double a, double b) { setSize(400, 500);
return a * b; setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} setLocationRelativeTo(null);
// 除法 // Display text field
public double divide(double a, double b) { display = new JTextField();
if (b == 0) { display.setEditable(false);
throw new IllegalArgumentException("Denominator cannot be zero."); display.setHorizontalAlignment(SwingConstants.RIGHT);
} add(display, BorderLayout.NORTH);
return a / b;
} // Panel for buttons
panel = new JPanel();
// 取余 panel.setLayout(new GridLayout(5, 4, 10, 10));
public double remainder(double a, double b) {
return a % b; // Add numbers and operations to panel
} String[] buttons = {
"7", "8", "9", "/",
public static void main(String[] args) { "4", "5", "6", "*",
Scanner scanner = new Scanner(System.in); "1", "2", "3", "-",
Calculator calc = new Calculator(); "0", ".", "=", "+",
"C"
System.out.println("Enter first number:"); };
double num1 = scanner.nextDouble();
for (String text : buttons) {
System.out.println("Enter second number:"); JButton button = new JButton(text);
double num2 = scanner.nextDouble(); button.setFont(new Font("Verdana", Font.PLAIN, 24));
button.setFocusable(false);
System.out.println("Choose operation (+, -, *, /, %):"); panel.add(button);
char operation = scanner.next().charAt(0); button.addActionListener(new ButtonClickListener());
}
double result;
switch (operation) { add(panel, BorderLayout.CENTER);
case '+':
result = calc.add(num1, num2);
break;
case '-':
result = calc.subtract(num1, num2);
break;
case '*':
result = calc.multiply(num1, num2);
break;
case '/':
result = calc.divide(num1, num2);
break;
case '%':
result = calc.remainder(num1, num2);
break;
default:
System.out.println("Invalid operation");
scanner.close();
return;
}
System.out.println("Result: " + result);
scanner.close();
} }
}
Loading…
Cancel
Save