Skip to content

Commit 04dcb59

Browse files
authored
Merge branch 'master' into master
2 parents 61c0d5d + bd9a2f4 commit 04dcb59

File tree

8 files changed

+75
-24
lines changed

8 files changed

+75
-24
lines changed

.gitignore

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,8 @@
1+
/nbproject/private/
12
/build/
2-
/dist/
3+
/dist/
4+
*.class
5+
6+
# Mac OS System
7+
.DS_Store*
8+
._*

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Simple Java Calculator
22

3+
![Logo Simple Java Calculator](logo.png)
4+
35
This project was originally written using Eclipse, but I have migrated it to NetBeans.
46
This calculator is simple with an easy code to help novices learn how to create a calculator program with Java.
57

SimpleJavaCalculator.jar

3.01 KB
Binary file not shown.

logo.png

45 KB
Loading

nbproject/private/private.properties

Lines changed: 0 additions & 2 deletions
This file was deleted.

nbproject/private/private.xml

Lines changed: 0 additions & 7 deletions
This file was deleted.

src/simplejavacalculator/Calculator.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
package simplejavacalculator;
22

3+
import static java.lang.Math.log;
4+
import static java.lang.Math.log10;
5+
import static java.lang.Math.pow;
6+
37
public class Calculator {
48
public enum BiOperatorModes {
5-
normal, add, minus, multiply, divide
9+
normal, add, minus, multiply, divide , xpowerofy
610
}
711

812
public enum MonoOperatorModes {
9-
square, squareRoot, oneDevidedBy, cos, sin, tan
13+
square, squareRoot, oneDevidedBy, cos, sin, tan ,log , rate, abs
1014
}
1115

1216
private Double num1, num2;
@@ -28,6 +32,9 @@ private Double calculateBiImpl() {
2832
if (mode == BiOperatorModes.divide) {
2933
return num1 / num2;
3034
}
35+
if (mode == BiOperatorModes.xpowerofy) {
36+
return pow(num1,num2);
37+
}
3138

3239
// never reach
3340
throw new Error();
@@ -78,6 +85,17 @@ public Double calculateMono(MonoOperatorModes newMode, Double num) {
7885
if (newMode == MonoOperatorModes.tan) {
7986
return Math.tan(num);
8087
}
88+
if (newMode == MonoOperatorModes.log) {
89+
return log10(num);
90+
}
91+
if (newMode == MonoOperatorModes.rate) {
92+
return num / 100;
93+
}
94+
if(newMode == MonoOperatorModes.abs){
95+
return Math.abs(num);
96+
}
97+
98+
8199

82100
// never reach
83101
throw new Error();

src/simplejavacalculator/UI.java

Lines changed: 46 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@
1010
* @create 2012-03-30
1111
*
1212
* @modifiedby Achintha Gunasekara
13+
* @modifiedby Kydon Chantzaridis
1314
* @modweb http://www.achinthagunasekara.com
1415
* @modemail contact@achinthagunasekara.com
16+
* @modemail kchantza@csd.auth.gr
1517
*/
1618
package simplejavacalculator;
1719

@@ -31,7 +33,7 @@ public class UI implements ActionListener {
3133
private final JTextArea text;
3234
private final JButton but[], butAdd, butMinus, butMultiply, butDivide,
3335
butEqual, butCancel, butSquareRoot, butSquare, butOneDevidedBy,
34-
butCos, butSin, butTan, butBinary;
36+
butCos, butSin, butTan, butxpowerofy, butlog, butrate, butabs, butBinary;
3537
private final Calculator calc;
3638

3739
private final String[] buttonValue = {"0", "1", "2", "3", "4", "5", "6",
@@ -59,6 +61,10 @@ public UI() {
5961
butCos = new JButton("Cos");
6062
butSin = new JButton("Sin");
6163
butTan = new JButton("Tan");
64+
butxpowerofy = new JButton("x^y");
65+
butlog = new JButton("log10(x)");
66+
butrate = new JButton("x%");
67+
butabs = new JButton("abs(x)");
6268

6369
butCancel = new JButton("C");
6470
butBinary = new JButton("Bin");
@@ -68,15 +74,18 @@ public UI() {
6874

6975
public void init() {
7076
frame.setVisible(true);
71-
frame.setSize(350, 280);
77+
frame.setSize(330, 300);
7278
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
7379
frame.add(panel);
7480

7581
panel.add(text);
76-
for (int i = 0; i < 10; i++) {
82+
83+
for (int i = 1; i < 10; i++) {
7784
panel.add(but[i]);
7885
but[i].addActionListener(this);
7986
}
87+
panel.add(but[0]);
88+
but[0].addActionListener(this);
8089

8190
panel.add(butAdd);
8291
panel.add(butMinus);
@@ -88,6 +97,11 @@ public void init() {
8897
panel.add(butCos);
8998
panel.add(butSin);
9099
panel.add(butTan);
100+
panel.add(butxpowerofy);
101+
panel.add(butlog);
102+
panel.add(butrate);
103+
panel.add(butabs);
104+
panel.add(butabs);
91105
panel.add(butBinary);
92106

93107
panel.add(butEqual);
@@ -103,9 +117,14 @@ public void init() {
103117
butCos.addActionListener(this);
104118
butSin.addActionListener(this);
105119
butTan.addActionListener(this);
120+
butxpowerofy.addActionListener(this);
121+
butlog.addActionListener(this);
122+
butrate.addActionListener(this);
123+
butabs.addActionListener(this);
124+
butBinary.addActionListener(this);
125+
106126
butEqual.addActionListener(this);
107127
butCancel.addActionListener(this);
108-
butBinary.addActionListener(this);
109128
}
110129

111130
@Override
@@ -129,43 +148,58 @@ public void actionPerformed(ActionEvent e) {
129148

130149
if (source == butMultiply) {
131150
writer(calc.calculateBi(Calculator.BiOperatorModes.multiply,
132-
reader()));
151+
reader()));
133152
}
134153

135154
if (source == butDivide) {
136155
writer(calc
137-
.calculateBi(Calculator.BiOperatorModes.divide, reader()));
156+
.calculateBi(Calculator.BiOperatorModes.divide, reader()));
157+
}
158+
if (source == butxpowerofy) {
159+
writer(calc
160+
.calculateBi(Calculator.BiOperatorModes.xpowerofy, reader()));
138161
}
139162

140163
if (source == butSquare) {
141164
writer(calc.calculateMono(Calculator.MonoOperatorModes.square,
142-
reader()));
165+
reader()));
143166
}
144167

145168
if (source == butSquareRoot) {
146169
writer(calc.calculateMono(Calculator.MonoOperatorModes.squareRoot,
147-
reader()));
170+
reader()));
148171
}
149172

150173
if (source == butOneDevidedBy) {
151174
writer(calc.calculateMono(
152-
Calculator.MonoOperatorModes.oneDevidedBy, reader()));
175+
Calculator.MonoOperatorModes.oneDevidedBy, reader()));
153176
}
154177

155178
if (source == butCos) {
156179
writer(calc.calculateMono(Calculator.MonoOperatorModes.cos,
157-
reader()));
180+
reader()));
158181
}
159182

160183
if (source == butSin) {
161184
writer(calc.calculateMono(Calculator.MonoOperatorModes.sin,
162-
reader()));
185+
reader()));
163186
}
164187

165188
if (source == butTan) {
166189
writer(calc.calculateMono(Calculator.MonoOperatorModes.tan,
167-
reader()));
190+
reader()));
191+
}
192+
if (source == butlog) {
193+
writer(calc.calculateMono(Calculator.MonoOperatorModes.log,
194+
reader()));
195+
}
196+
if (source == butrate) {
197+
writer(calc.calculateMono(Calculator.MonoOperatorModes.rate,
198+
reader()));
168199
}
200+
if(source == butabs){
201+
writer(calc.calculateMono(Calculator.MonoOperatorModes.abs, reader()));
202+
}
169203

170204
if (source == butEqual) {
171205
writer(calc.calculateEqual(reader()));

0 commit comments

Comments
 (0)