From f92fd6a519af765140c84a2d10fb30cc27e38f94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E5=81=A5=E5=BC=BA?= <1210165995@qq.com> Date: Sun, 6 Jun 2021 22:09:45 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20=E6=A2=81=E5=81=A5?= =?UTF-8?q?=E5=BC=BA=20src?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\346\242\201\345\201\245\345\274\272 src/.keep" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "src/java2020spring/\346\242\201\345\201\245\345\274\272 src/.keep" diff --git "a/src/java2020spring/\346\242\201\345\201\245\345\274\272 src/.keep" "b/src/java2020spring/\346\242\201\345\201\245\345\274\272 src/.keep" new file mode 100644 index 0000000..e69de29 -- Gitee From 359ba25868000cb26199e279553973b2f6084f40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E5=81=A5=E5=BC=BA?= <1210165995@qq.com> Date: Sun, 6 Jun 2021 22:12:05 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20src/?= =?UTF-8?q?java2020spring/=E6=A2=81=E5=81=A5=E5=BC=BA=20src/.keep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\346\242\201\345\201\245\345\274\272 src/.keep" | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 "src/java2020spring/\346\242\201\345\201\245\345\274\272 src/.keep" diff --git "a/src/java2020spring/\346\242\201\345\201\245\345\274\272 src/.keep" "b/src/java2020spring/\346\242\201\345\201\245\345\274\272 src/.keep" deleted file mode 100644 index e69de29..0000000 -- Gitee From cbe5792ff53d02c551c7ce78d54a1742a844e92c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E5=81=A5=E5=BC=BA?= <1210165995@qq.com> Date: Thu, 10 Jun 2021 12:47:13 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20src/?= =?UTF-8?q?java2020spring?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/Test.java | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 src/java2020spring/Test.java diff --git a/src/java2020spring/Test.java b/src/java2020spring/Test.java deleted file mode 100644 index fc09c19..0000000 --- a/src/java2020spring/Test.java +++ /dev/null @@ -1,10 +0,0 @@ -package java2020spring; - -public class Test { - - public static void main(String[] args) { - System.out.println("Hello world!"); - - } - -} -- Gitee From 3bea4a722747fb536572e113c24bd270fe58a999 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E5=81=A5=E5=BC=BA?= <1210165995@qq.com> Date: Thu, 10 Jun 2021 12:56:02 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E6=A2=81=E5=81=A5=E5=BC=BA=20=E4=BF=A1?= =?UTF-8?q?=E7=AE=A1=E5=9B=9B=E7=8F=AD=200411?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Mymath.java | 27 ++++ "\350\256\241\347\256\227.java" | 127 ++++++++++++++++++ "\350\256\241\347\256\227\345\231\250.java" | 135 ++++++++++++++++++++ 3 files changed, 289 insertions(+) create mode 100644 Mymath.java create mode 100644 "\350\256\241\347\256\227.java" create mode 100644 "\350\256\241\347\256\227\345\231\250.java" diff --git a/Mymath.java b/Mymath.java new file mode 100644 index 0000000..375d242 --- /dev/null +++ b/Mymath.java @@ -0,0 +1,27 @@ +package ÆÚÄ©×÷Òµ; +import java.math.BigDecimal; +public class Mymath { +static BigDecimal getBigDecimal(double number){ + return new BigDecimal(number); + } + public static double add(double num1, double num2) { + BigDecimal first = getBigDecimal(num1); + BigDecimal second = getBigDecimal(num2); + return first.add(second).doubleValue(); + } + public static double subtract(double num1, double num2) { + BigDecimal first = getBigDecimal(num1); + BigDecimal second = getBigDecimal(num2); + return first.subtract(second).doubleValue(); + } + public static double multiply(double num1, double num2) { + BigDecimal first = getBigDecimal(num1); + BigDecimal second = getBigDecimal(num2); + return first.multiply(second).doubleValue(); + } + public static double divide(double num1, double num2) { + BigDecimal first = getBigDecimal(num1); + BigDecimal second = getBigDecimal(num2); + return first.divide(second,3,BigDecimal.ROUND_HALF_UP).doubleValue(); + } +} \ No newline at end of file diff --git "a/\350\256\241\347\256\227.java" "b/\350\256\241\347\256\227.java" new file mode 100644 index 0000000..3c1eabe --- /dev/null +++ "b/\350\256\241\347\256\227.java" @@ -0,0 +1,127 @@ +package ÆÚÄ©×÷Òµ; + +public class ¼ÆËã { + private boolean isSecondNum = false; + String lastOp; + String firstNum = "0"; + String secondNum = "null"; + double store; +String numString = "0123456789."; +String opString = "+-*/"; + + public String catNum(String cmd, String text) { + String result = cmd; + if (!"0".equals(text)) { + if (isSecondNum) { + isSecondNum = false; + } else { + result = text + cmd; + } + } + if (result.indexOf(".") == 0) { + result = "0" + result; + } + return result; + } + public String setOp(String cmd, String text) { + this.lastOp = cmd; + this.firstNum = text; + this.secondNum = null; + this.isSecondNum = true; + return null; + } + + public String cal(String text, boolean isPercent) { + double secondResult = secondNum == null ? Double.valueOf(text) + .doubleValue() : Double.valueOf(secondNum).doubleValue(); + if(secondResult == 0 && this.lastOp.equals("/")){ + return "0"; + } + if(isPercent){ + secondResult = Mymath.multiply(Double.valueOf(firstNum), Mymath.divide(secondResult, 100)); + } + if(this.lastOp.equals("+")){ + firstNum = String.valueOf(Mymath.add(Double.valueOf(firstNum),secondResult)); + }else if (this.lastOp.equals("-")) { + firstNum = String.valueOf(Mymath.subtract(Double.valueOf(firstNum),secondResult)); + }else if (this.lastOp.equals("*")) { + firstNum = String.valueOf(Mymath.multiply(Double.valueOf(firstNum),secondResult)); + }else if (this.lastOp.equals("/")) { + firstNum = String.valueOf(Mymath.divide(Double.valueOf(firstNum),secondResult)); + } + secondNum = secondNum == null ? text :secondNum; + this.isSecondNum = true; + return firstNum; + } + public String sqrt(String text){ + this.isSecondNum = true; + return String.valueOf(Math.sqrt(Double.valueOf(text))); + } + public String setReciprocal(String text){ + if (text.equals("0")){ + return text; + }else{ + this.isSecondNum = true; + return String.valueOf(Mymath.divide(1, Double.valueOf(text))); + } + } + public String mCmd(String cmd,String text){ + if(cmd.equals("M+")){ + store = Mymath.add(store, Double.valueOf(text)); + }else if (cmd.equals("MC")) { + store = 0; + }else if (cmd.equals("MR")) { + isSecondNum = true; + return String.valueOf(store); + }else if (cmd.equals("MS")) { + store = Double.valueOf(text).doubleValue(); + } + return null; + } + + public String backSpace(String text){ + return text.equals("0") || text.equals("") ? "0" :text.substring(0,text.length()-1); + } + + public String setNegative(String text){ + if(text.indexOf("-") == 0){ + return text.substring(1,text.length()); + }else{ + return "-" + text; + } + } + public String clearAll(){ + this.firstNum = "0"; + this.secondNum = null; + return this.firstNum; + } + public String clear(String text){ + return "0"; + } + + public String callMethod(String cmd, String text){ + if(cmd.equals("C")){ + return clearAll(); + }else if(cmd.equals("CE")){ + return clear(text); + }else if (cmd.equals("Back")) { + return backSpace(text); + }else if (numString.indexOf(cmd) != -1) { + return catNum(cmd, text); + }else if (opString.indexOf(cmd) != -1) { + return setOp(cmd, text); + }else if (cmd.equals("+/-")) { + return setNegative(text); + }else if(cmd.equals("1/x")){ + return setReciprocal(text); + }else if (cmd.equals("sqrt")) { + return sqrt(text); + }else if(cmd.equals("%")){ + return cal(text, true); + }else if(cmd.equals("=")){ + return cal(text, false); + }else { + return mCmd(cmd, text); + } + } +} diff --git "a/\350\256\241\347\256\227\345\231\250.java" "b/\350\256\241\347\256\227\345\231\250.java" new file mode 100644 index 0000000..f2f7cc1 --- /dev/null +++ "b/\350\256\241\347\256\227\345\231\250.java" @@ -0,0 +1,135 @@ +package ÆÚÄ©×÷Òµ; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.GridLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.Arrays; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.JTextField; +public class ¼ÆËãÆ÷ extends JFrame { + int PRE_WIDTH = 500; + int PRE_HEIGHT = 400; + JTextField text = null; + JButton button = null; + String[] °´¼ü1 = {"7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0","+/-",".","+","="}; + String[] °´¼ü2 = {"MC","MR","MS","M+"}; + String[] °´¼ü3 = {"Back","CE","C"}; + ¼ÆËã service = new ¼ÆËã(); + public ¼ÆËãÆ÷(){ + this.setTitle("¼ÆËãÆ÷"); + this.setSize(PRE_WIDTH, PRE_HEIGHT); + this.setLocationRelativeTo(null); + this.setResizable(false); + JPanel panel = new JPanel(); + panel.setLayout(new BorderLayout(10,1)); + panel.add(getTextField(), BorderLayout.NORTH); + panel.setPreferredSize(new Dimension(PRE_WIDTH, PRE_HEIGHT)); + JButton[] mButton = getMButton(); + JPanel panel1 = new JPanel(); + panel1.setLayout(new GridLayout(5,1,0,5)); + for(JButton b : mButton ){ + panel1.add(b); + } + panel.add(panel1,BorderLayout.WEST); + JButton[] rButton = getRButton(); + JPanel panel2 = new JPanel(); + panel2.setLayout(new BorderLayout(1,5)); + JPanel panel21 = new JPanel(); + panel21.setLayout(new GridLayout(1,3,3,3)); + for(JButton b : rButton){ + panel21.add(b); + } + panel2.add(panel21,BorderLayout.NORTH); + + JButton[] nButton = getNButton(); + JPanel panel22 = new JPanel(); + panel22.setLayout(new GridLayout(4,5,3,5)); + for(JButton b : nButton){ + panel22.add(b); + } + panel2.add(panel22,BorderLayout.CENTER); + panel.add(panel2,BorderLayout.CENTER); + + this.add(panel); + this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + this.setVisible(true); + + + } +JTextField getTextField(){ + text = new JTextField("0",10); + return text; + } + + JButton[] getNButton(){ + String[] redButton = {"/","*","-","+","="}; + JButton[] nbutton = new JButton[°´¼ü1.length]; + for(int i = 0; i < this.°´¼ü1.length; i++){ + JButton b = new JButton(this.°´¼ü1[i]); + b.addActionListener(getActionListener()); + Arrays.sort(redButton); + if(Arrays.binarySearch(redButton, °´¼ü1[i]) >= 0){ + b.setForeground(Color.red); + }else{ + b.setForeground(Color.blue); + } + nbutton[i] = b; + } + return nbutton; + } +JButton[] getMButton(){ + JButton[] mbutton = new JButton[°´¼ü2.length + 1]; + mbutton[0] = getButton(); + for(int i = 0; i < this.°´¼ü2.length; i++){ + JButton b = new JButton(this.°´¼ü2[i]); + b.addActionListener(getActionListener()); + b.setForeground(Color.red); + mbutton[i+1] = b; + } + return mbutton; + } + JButton[] getRButton(){ + JButton[] rbutton = new JButton[°´¼ü3.length]; + for(int i = 0; i < this.°´¼ü3.length; i++){ + JButton b = new JButton(this.°´¼ü3[i]); + b.addActionListener(getActionListener()); + b.setForeground(Color.red); + rbutton[i] = b; + } + return rbutton; + } + JButton getButton(){ + button = new JButton(); + return button; + } + ActionListener getActionListener(){ + ActionListener actionListener = new ActionListener() { + public void actionPerformed(ActionEvent e) { + String cmd = e.getActionCommand(); + String result = null; + try { + result = service.callMethod(cmd, text.getText()); + } catch (Exception e2) { + System.out.println(e2.getMessage()); + } + if(cmd.indexOf("MC") == 0){ + button.setText(""); + }else if(cmd.indexOf("M") == 0){ + button.setText("M"); + } + if(result != null){ + text.setText(result); + } + + } + }; + return actionListener; + } + public static void main(String[] args) { + new ¼ÆËãÆ÷(); + } +} \ No newline at end of file -- Gitee From a409657301c8a21c887ac3b878bf873d3146cf70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E5=81=A5=E5=BC=BA?= <1210165995@qq.com> Date: Fri, 11 Jun 2021 08:51:28 +0800 Subject: [PATCH 5/7] update Mymath.java. --- Mymath.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Mymath.java b/Mymath.java index 375d242..93580de 100644 --- a/Mymath.java +++ b/Mymath.java @@ -1,27 +1,27 @@ -package ÆÚÄ©×÷Òµ; +package java2020spring; import java.math.BigDecimal; public class Mymath { static BigDecimal getBigDecimal(double number){ - return new BigDecimal(number); + return new BigDecimal(number); } public static double add(double num1, double num2) { BigDecimal first = getBigDecimal(num1); BigDecimal second = getBigDecimal(num2); return first.add(second).doubleValue(); - } +} public static double subtract(double num1, double num2) { BigDecimal first = getBigDecimal(num1); BigDecimal second = getBigDecimal(num2); return first.subtract(second).doubleValue(); - } +} public static double multiply(double num1, double num2) { - BigDecimal first = getBigDecimal(num1); - BigDecimal second = getBigDecimal(num2); + BigDecimal first = getBigDecimal(num1); + BigDecimal second = getBigDecimal(num2); return first.multiply(second).doubleValue(); - } +} public static double divide(double num1, double num2) { BigDecimal first = getBigDecimal(num1); BigDecimal second = getBigDecimal(num2); - return first.divide(second,3,BigDecimal.ROUND_HALF_UP).doubleValue(); - } + return 0; +} } \ No newline at end of file -- Gitee From 1e560a12d565ce287425596b58740399c61885ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E5=81=A5=E5=BC=BA?= <1210165995@qq.com> Date: Fri, 11 Jun 2021 08:53:17 +0800 Subject: [PATCH 6/7] =?UTF-8?q?rename=20=E8=AE=A1=E7=AE=97.java=20to=20JiS?= =?UTF-8?q?uan.java.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\256\241\347\256\227.java" => JiSuan.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) rename "\350\256\241\347\256\227.java" => JiSuan.java (93%) diff --git "a/\350\256\241\347\256\227.java" b/JiSuan.java similarity index 93% rename from "\350\256\241\347\256\227.java" rename to JiSuan.java index 3c1eabe..a936eb4 100644 --- "a/\350\256\241\347\256\227.java" +++ b/JiSuan.java @@ -1,6 +1,5 @@ -package ÆÚÄ©×÷Òµ; - -public class ¼ÆËã { +package java2020spring; +public class JiSuan { private boolean isSecondNum = false; String lastOp; String firstNum = "0"; @@ -30,7 +29,6 @@ String opString = "+-*/"; this.isSecondNum = true; return null; } - public String cal(String text, boolean isPercent) { double secondResult = secondNum == null ? Double.valueOf(text) .doubleValue() : Double.valueOf(secondNum).doubleValue(); @@ -49,7 +47,6 @@ String opString = "+-*/"; }else if (this.lastOp.equals("/")) { firstNum = String.valueOf(Mymath.divide(Double.valueOf(firstNum),secondResult)); } - secondNum = secondNum == null ? text :secondNum; this.isSecondNum = true; return firstNum; } @@ -124,4 +121,4 @@ String opString = "+-*/"; return mCmd(cmd, text); } } -} +} \ No newline at end of file -- Gitee From 21e81ea1130e71471fba19b831f8cbd451a4007e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E5=81=A5=E5=BC=BA?= <1210165995@qq.com> Date: Fri, 11 Jun 2021 08:54:19 +0800 Subject: [PATCH 7/7] =?UTF-8?q?rename=20=E8=AE=A1=E7=AE=97=E5=99=A8.java?= =?UTF-8?q?=20to=20JiSuanQi.java.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...256\227\345\231\250.java" => JiSuanQi.java | 84 +++++++++---------- 1 file changed, 39 insertions(+), 45 deletions(-) rename "\350\256\241\347\256\227\345\231\250.java" => JiSuanQi.java (58%) diff --git "a/\350\256\241\347\256\227\345\231\250.java" b/JiSuanQi.java similarity index 58% rename from "\350\256\241\347\256\227\345\231\250.java" rename to JiSuanQi.java index f2f7cc1..a10b16b 100644 --- "a/\350\256\241\347\256\227\345\231\250.java" +++ b/JiSuanQi.java @@ -1,4 +1,4 @@ -package ÆÚÄ©×÷Òµ; +package java2020spring; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; @@ -10,28 +10,28 @@ import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; -public class ¼ÆËãÆ÷ extends JFrame { - int PRE_WIDTH = 500; - int PRE_HEIGHT = 400; +public class JiSuanQi extends JFrame { + int PRE_WIDTH = 700; + int PRE_HEIGHT = 600; JTextField text = null; JButton button = null; - String[] °´¼ü1 = {"7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0","+/-",".","+","="}; - String[] °´¼ü2 = {"MC","MR","MS","M+"}; - String[] °´¼ü3 = {"Back","CE","C"}; - ¼ÆËã service = new ¼ÆËã(); - public ¼ÆËãÆ÷(){ - this.setTitle("¼ÆËãÆ÷"); - this.setSize(PRE_WIDTH, PRE_HEIGHT); - this.setLocationRelativeTo(null); - this.setResizable(false); - JPanel panel = new JPanel(); - panel.setLayout(new BorderLayout(10,1)); - panel.add(getTextField(), BorderLayout.NORTH); - panel.setPreferredSize(new Dimension(PRE_WIDTH, PRE_HEIGHT)); - JButton[] mButton = getMButton(); - JPanel panel1 = new JPanel(); - panel1.setLayout(new GridLayout(5,1,0,5)); - for(JButton b : mButton ){ + String[] 按键1 = {"7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0","+/-",".","+","="}; + String[] 按键2 = {"MC","MR","MS","M+"}; + String[] 按键3 = {"Back","CE","C"}; + JiSuan service = new JiSuan(); + public JiSuanQi(){ + this.setTitle("计算器"); + this.setSize(PRE_WIDTH, PRE_HEIGHT); + this.setLocationRelativeTo(null); + this.setResizable(false); + JPanel panel = new JPanel(); + panel.setLayout(new BorderLayout(10,1)); + panel.add(getTextField(), BorderLayout.NORTH); + panel.setPreferredSize(new Dimension(PRE_WIDTH, PRE_HEIGHT)); + JButton[] mButton = getMButton(); + JPanel panel1 = new JPanel(); + panel1.setLayout(new GridLayout(5,1,0,5)); + for(JButton b : mButton ){ panel1.add(b); } panel.add(panel1,BorderLayout.WEST); @@ -44,7 +44,6 @@ public class panel21.add(b); } panel2.add(panel21,BorderLayout.NORTH); - JButton[] nButton = getNButton(); JPanel panel22 = new JPanel(); panel22.setLayout(new GridLayout(4,5,3,5)); @@ -53,51 +52,47 @@ public class } panel2.add(panel22,BorderLayout.CENTER); panel.add(panel2,BorderLayout.CENTER); - this.add(panel); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.setVisible(true); - - } JTextField getTextField(){ text = new JTextField("0",10); return text; } - JButton[] getNButton(){ String[] redButton = {"/","*","-","+","="}; - JButton[] nbutton = new JButton[°´¼ü1.length]; - for(int i = 0; i < this.°´¼ü1.length; i++){ - JButton b = new JButton(this.°´¼ü1[i]); + JButton[] nbutton = new JButton[按键1.length]; + for(int i = 0; i < this.按键1.length; i++){ + JButton b = new JButton(this.按键1[i]); b.addActionListener(getActionListener()); Arrays.sort(redButton); - if(Arrays.binarySearch(redButton, °´¼ü1[i]) >= 0){ - b.setForeground(Color.red); + if(Arrays.binarySearch(redButton, 按键1[i]) >= 0){ + b.setForeground(Color.black); }else{ - b.setForeground(Color.blue); - } - nbutton[i] = b; + b.setForeground(Color.black); + } + nbutton[i] = b; } return nbutton; } JButton[] getMButton(){ - JButton[] mbutton = new JButton[°´¼ü2.length + 1]; + JButton[] mbutton = new JButton[按键2.length + 1]; mbutton[0] = getButton(); - for(int i = 0; i < this.°´¼ü2.length; i++){ - JButton b = new JButton(this.°´¼ü2[i]); + for(int i = 0; i < this.按键2.length; i++){ + JButton b = new JButton(this.按键2[i]); b.addActionListener(getActionListener()); - b.setForeground(Color.red); + b.setForeground(Color.black); mbutton[i+1] = b; } return mbutton; } JButton[] getRButton(){ - JButton[] rbutton = new JButton[°´¼ü3.length]; - for(int i = 0; i < this.°´¼ü3.length; i++){ - JButton b = new JButton(this.°´¼ü3[i]); + JButton[] rbutton = new JButton[按键3.length]; + for(int i = 0; i < this.按键3.length; i++){ + JButton b = new JButton(this.按键3[i]); b.addActionListener(getActionListener()); - b.setForeground(Color.red); + b.setForeground(Color.black); rbutton[i] = b; } return rbutton; @@ -123,13 +118,12 @@ JButton[] getMButton(){ } if(result != null){ text.setText(result); - } - + } } }; return actionListener; } public static void main(String[] args) { - new ¼ÆËãÆ÷(); + new JiSuanQi(); } } \ No newline at end of file -- Gitee