-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample_java.java
More file actions
151 lines (132 loc) · 3.89 KB
/
Copy pathexample_java.java
File metadata and controls
151 lines (132 loc) · 3.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
package com.example.calculator;
import java.util.Scanner;
/**
* A simple calculator application.
* This class demonstrates basic arithmetic operations.
*/
public class Calculator {
private int result;
private String lastOperation;
/**
* Constructor for Calculator.
*/
public Calculator() {
this.result = 0;
this.lastOperation = "none";
}
/**
* Adds two numbers.
* @param a First number
* @param b Second number
* @return Sum of a and b
*/
public int add(int a, int b) {
if (a > 0 && b > 0) {
result = a + b;
lastOperation = "addition";
return result;
} else if (a < 0 || b < 0) {
System.out.println("Warning: Negative numbers");
result = a + b;
return result;
}
return 0;
}
/**
* Subtracts b from a.
* @param a First number
* @param b Second number
* @return Difference of a and b
*/
public int subtract(int a, int b) {
result = a - b;
lastOperation = "subtraction";
return result;
}
/**
* Multiplies two numbers.
* @param a First number
* @param b Second number
* @return Product of a and b
*/
public int multiply(int a, int b) {
result = a * b;
lastOperation = "multiplication";
return result;
}
/**
* Divides a by b.
* @param a Dividend
* @param b Divisor
* @return Quotient of a and b
* @throws ArithmeticException if b is zero
*/
public double divide(int a, int b) throws ArithmeticException {
if (b == 0) {
throw new ArithmeticException("Division by zero");
}
double res = (double) a / b;
lastOperation = "division";
return res;
}
/**
* Gets the last result.
* @return The last calculated result
*/
public int getResult() {
return result;
}
/**
* Gets the last operation performed.
* @return The name of the last operation
*/
public String getLastOperation() {
return lastOperation;
}
/**
* Main method to run the calculator.
* @param args Command line arguments
*/
public static void main(String[] args) {
Calculator calc = new Calculator();
Scanner scanner = new Scanner(System.in);
System.out.println("Simple Calculator");
System.out.println("================");
System.out.print("Enter first number: ");
int num1 = scanner.nextInt();
System.out.print("Enter second number: ");
int num2 = scanner.nextInt();
System.out.print("Enter operation (+, -, *, /): ");
String operation = scanner.next();
int result = 0;
switch (operation) {
case "+":
result = calc.add(num1, num2);
break;
case "-":
result = calc.subtract(num1, num2);
break;
case "*":
result = calc.multiply(num1, num2);
break;
case "/":
try {
double divResult = calc.divide(num1, num2);
System.out.println("Result: " + divResult);
scanner.close();
return;
} catch (ArithmeticException e) {
System.out.println("Error: " + e.getMessage());
scanner.close();
return;
}
default:
System.out.println("Invalid operation");
scanner.close();
return;
}
System.out.println("Result: " + result);
System.out.println("Last operation: " + calc.getLastOperation());
scanner.close();
}
}