基于Java计算器 科学计算器与标准计算器相互转化
生活随笔
收集整理的這篇文章主要介紹了
基于Java计算器 科学计算器与标准计算器相互转化
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文件名:Calculator.java
package calculator;import java.awt.Color; import java.awt.Container; import java.awt.Font; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;import javax.script.ScriptEngineManager; import javax.script.ScriptException; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JSeparator; import javax.swing.JTextField; import javax.swing.WindowConstants;/*** * @author Fish·Potato·Chen**/@SuppressWarnings("serial") public class Calculator extends JFrame {private Container container = this.getContentPane();// 創(chuàng)建容器private GridBagLayout gridBagLayout = new GridBagLayout();// 使用GirdBagLayout布局器private GridBagConstraints gridBagConstraints = new GridBagConstraints();private JTextField displayFielddown;// 創(chuàng)建科學(xué)計算器的輸入欄private JTextField displayFieldup;// 創(chuàng)建科學(xué)計算器的展示欄private JTextField displayField;// 創(chuàng)建標準計算器的輸入欄private JMenuBar bar;// 菜單欄private JMenu set1;// 菜單欄中的項private JMenu set2;// 菜單欄中的項private JMenuItem itemsfunction[];// 菜單欄下的功能選項private JMenuItem itemshelp[];// 菜單欄下的幫助選項private String lastCommand = "=";int order = 0;int mode = 1;// 1為標準計算器2為科學(xué)計算器double result = 0;double x;private boolean start = true;boolean down = true;boolean up = true;boolean indown = false;public Calculator() {super("計算器");setLocation(100, 100);getContentPane().setBackground(Color.DARK_GRAY);container.setLayout(gridBagLayout);createmenu();initDisplayArea();initButtons();initFrame(900, 900);}private void createmenu() {// 創(chuàng)建菜單欄bar = new JMenuBar();set1 = new JMenu("切換");set2 = new JMenu("幫助");// 在每個菜單選項下添加項itemsfunction = new JMenuItem[2];itemshelp = new JMenuItem[3];// 菜單項每項下加入選項itemsfunction[0] = new JMenuItem("標準計算器");itemsfunction[1] = new JMenuItem("科學(xué)計算器");itemshelp[0] = new JMenuItem("使用說明");itemshelp[1] = new JMenuItem("開發(fā)者");itemshelp[2] = new JMenuItem("警告");// 創(chuàng)建標準計算器itemsfunction[0].addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {if (mode != 1) {mode = 1;container.removeAll();initDisplayArea();initButtons();initFrame(900, 900);}}});// 創(chuàng)建科學(xué)計算器itemsfunction[1].addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {if (mode != 2) {mode = 2;container.removeAll();initDisplayAreaup(0, 0, 20);initDisplayAreadown(0, 1, 40);initButtons();initFrame(1000, 800);}}});// 創(chuàng)建使用說明itemshelp[0].addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {JOptionPane.showMessageDialog(null,"在科學(xué)計算器中,為了彌補x的y次方(x^y)與x開y次方(y√x)的的不足,我對兩者使用方法進行了改進(以下將兩者的按鍵統(tǒng)稱\n為按鍵):\n\n "+ "使用時先輸入x(或一個等式并計算結(jié)果)之后點擊按鍵,然后輸入y(或另一個等式并計算結(jié)果),之后再次點擊按鍵,便可得\n到值,該值"+ "還可以參與其他運算.\n\n例如:\n5^(6*5) : 先輸入5,點擊按鈕,再輸入6*5點擊等于計算出結(jié)果,再次點擊按鈕得到結(jié)果.\n(15+2*3)√"+ "(8*7-2) : 先輸入8*7-2,點擊等于,計算結(jié)果,再點擊按鈕,之后輸入15+2*3,點擊等于,計算結(jié)果,最后點擊按鈕得到結(jié)果.","幫助", JOptionPane.PLAIN_MESSAGE);}});// 創(chuàng)建開發(fā)者信息itemshelp[1].addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {JOptionPane.showMessageDialog(null, "作者:Fish·Potato·Chen\nQQ:2411016277\n郵箱:Fishcqy@163.com", "開發(fā)者",JOptionPane.PLAIN_MESSAGE);}});// 創(chuàng)建警告itemshelp[2].addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {JOptionPane.showMessageDialog(null, "如果計算器按動任何按鍵都無反應(yīng),點擊清除(C)按鍵.", "警告", JOptionPane.PLAIN_MESSAGE);}});// 將創(chuàng)建的選項加入到各自的菜單欄下for (int i = 0; i < 2; i++) {set1.add(itemsfunction[i]);set1.add(new JSeparator());}for (int i = 0; i < 3; i++) {set2.add(itemshelp[i]);set2.add(new JSeparator());}bar.add(set1);bar.add(set2);Calculator.this.setJMenuBar(bar);}// 設(shè)置彈窗位置private void initFrame(int x, int y) {setSize(x, y);setVisible(true);setResizable(true);setForeground(Color.black);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}// 增加按鈕private void initButtons() {// 標準計算器下的按鈕if (mode == 1) {ActionListener insert = new Calculator.InsertAction();ActionListener command = new Calculator.CommandAction();addButton("←", 0, 1, 2, 1, insert, Color.DARK_GRAY);addButton("C", 2, 1, 1, 1, insert, Color.DARK_GRAY);addButton("7", 0, 2, 1, 1, insert, Color.BLACK);addButton("8", 1, 2, 1, 1, insert, Color.BLACK);addButton("9", 2, 2, 1, 1, insert, Color.BLACK);addButton("+", 3, 1, 1, 1, command, Color.DARK_GRAY);addButton("4", 0, 3, 1, 1, insert, Color.BLACK);addButton("5", 1, 3, 1, 1, insert, Color.BLACK);addButton("6", 2, 3, 1, 1, insert, Color.BLACK);addButton("-", 3, 2, 1, 1, command, Color.DARK_GRAY);addButton("1", 0, 4, 1, 1, insert, Color.BLACK);addButton("2", 1, 4, 1, 1, insert, Color.BLACK);addButton("3", 2, 4, 1, 1, insert, Color.BLACK);addButton("*", 3, 3, 1, 1, command, Color.DARK_GRAY);addButton("±", 0, 5, 1, 1, insert, Color.DARK_GRAY);addButton("0", 1, 5, 1, 1, insert, Color.BLACK);addButton(".", 2, 5, 1, 1, insert, Color.DARK_GRAY);addButton("/", 3, 4, 1, 1, command, Color.DARK_GRAY);addButton("=", 3, 5, 1, 1, command, Color.DARK_GRAY);}// 科學(xué)計算器下的按鈕else if (mode == 2) {ActionListener command1 = new Calculator.Command1Action();ActionListener command2 = new Calculator.Command2Action();ActionListener command3 = new Calculator.Command3Action();ActionListener command4 = new Calculator.Command4Action();ActionListener command5 = new Calculator.Command5Action();ActionListener command6 = new Calculator.Command6Action();ActionListener command7 = new Calculator.Command7Action();addButton("√x", 0, 2, 1, 1, command1, Color.DARK_GRAY);addButton("x^y", 1, 2, 1, 1, command3, Color.DARK_GRAY);addButton("y√x", 2, 2, 1, 1, command3, Color.DARK_GRAY);addButton("x^2", 3, 2, 1, 1, command1, Color.DARK_GRAY);addButton("CE", 4, 2, 1, 1, command7, Color.DARK_GRAY);addButton("C", 5, 2, 1, 1, command7, Color.DARK_GRAY);addButton("←", 6, 2, 1, 1, command7, Color.DARK_GRAY);addButton("+", 7, 2, 1, 1, command6, Color.DARK_GRAY);addButton("10^x", 0, 3, 1, 1, command1, Color.DARK_GRAY);addButton("ln", 1, 3, 1, 1, command1, Color.DARK_GRAY);addButton("sin", 2, 3, 1, 1, command1, Color.DARK_GRAY);addButton("arcsin", 3, 3, 1, 1, command1, Color.DARK_GRAY);addButton("7", 4, 3, 1, 1, command5, Color.BLACK);addButton("8", 5, 3, 1, 1, command5, Color.BLACK);addButton("9", 6, 3, 1, 1, command5, Color.BLACK);addButton("-", 7, 3, 1, 1, command6, Color.DARK_GRAY);addButton("e^x", 0, 4, 1, 1, command1, Color.DARK_GRAY);addButton("e", 1, 4, 1, 1, command2, Color.DARK_GRAY);addButton("cos", 2, 4, 1, 1, command1, Color.DARK_GRAY);addButton("arccos", 3, 4, 1, 1, command1, Color.DARK_GRAY);addButton("4", 4, 4, 1, 1, command5, Color.BLACK);addButton("5", 5, 4, 1, 1, command5, Color.BLACK);addButton("6", 6, 4, 1, 1, command5, Color.BLACK);addButton("*", 7, 4, 1, 1, command6, Color.DARK_GRAY);addButton("n!", 0, 5, 1, 1, command1, Color.DARK_GRAY);addButton("π", 1, 5, 1, 1, command2, Color.DARK_GRAY);addButton("tan", 2, 5, 1, 1, command1, Color.DARK_GRAY);addButton("arctan", 3, 5, 1, 1, command1, Color.DARK_GRAY);addButton("1", 4, 5, 1, 1, command5, Color.BLACK);addButton("2", 5, 5, 1, 1, command5, Color.BLACK);addButton("3", 6, 5, 1, 1, command5, Color.BLACK);addButton("/", 7, 5, 1, 1, command6, Color.DARK_GRAY);addButton("(", 0, 6, 1, 1, command4, Color.DARK_GRAY);addButton(")", 1, 6, 1, 1, command4, Color.DARK_GRAY);addButton("%", 2, 6, 1, 1, command1, Color.DARK_GRAY);addButton("Ans", 3, 6, 1, 1, command2, Color.DARK_GRAY);addButton("±", 4, 6, 1, 1, command1, Color.DARK_GRAY);addButton("0", 5, 6, 1, 1, command5, Color.BLACK);addButton(".", 6, 6, 1, 1, command6, Color.DARK_GRAY);addButton("=", 7, 6, 1, 1, command6, Color.DARK_GRAY);}}/*** 科學(xué)計算器上展示欄* * @param x為布局器中左上角橫坐標* @param y為布局器中左上角縱坐標* @param z為字體大小*/private void initDisplayAreaup(int x, int y, int z) {// 大小displayFieldup = new JTextField(20);displayFieldup.setHorizontalAlignment(4);// 顏色displayFieldup.setBackground(Color.DARK_GRAY);displayFieldup.setDisabledTextColor(Color.WHITE);// 不可鍵盤輸入displayFieldup.setEnabled(false);// 字體displayFieldup.setFont(new Font("微軟雅黑", Font.BOLD, z));// 布局器中位置與大小gridBagConstraints.gridx = x;gridBagConstraints.gridy = y;gridBagConstraints.gridwidth = 8;gridBagConstraints.gridheight = 1;gridBagConstraints.fill = 1;gridBagConstraints.weightx = 1;gridBagConstraints.weighty = 1;gridBagLayout.setConstraints(displayFieldup, gridBagConstraints);container.add(displayFieldup);}/*** 科學(xué)計算器的下展示欄* * @param x為布局器中左上角橫坐標* @param y為布局器中左上角縱坐標* @param z為字體大小*/private void initDisplayAreadown(int x, int y, int z) {// 大小displayFielddown = new JTextField(20);displayFielddown.setHorizontalAlignment(4);// 顏色displayFielddown.setBackground(Color.DARK_GRAY);displayFielddown.setDisabledTextColor(Color.WHITE);// 不可鍵盤輸入displayFielddown.setEnabled(false);// 字體displayFielddown.setFont(new Font("微軟雅黑", Font.BOLD, z));// 布局器中位置與大小gridBagConstraints.gridx = x;gridBagConstraints.gridy = y;gridBagConstraints.gridwidth = 8;gridBagConstraints.gridheight = 1;gridBagConstraints.fill = 1;gridBagConstraints.weightx = 1;gridBagConstraints.weighty = 1;gridBagLayout.setConstraints(displayFielddown, gridBagConstraints);container.add(displayFielddown);Calculator.this.displayFielddown.setText("0");}/*** 標準計算器的展示欄*/private void initDisplayArea() {// 大小displayField = new JTextField(20);displayField.setHorizontalAlignment(4);// 顏色displayField.setBackground(Color.DARK_GRAY);displayField.setDisabledTextColor(Color.WHITE);// 不可鍵盤輸入displayField.setEnabled(false);// 字體displayField.setFont(new Font("微軟雅黑", Font.BOLD, 50));// 布局器中位置與大小gridBagConstraints.gridx = 0;gridBagConstraints.gridy = 0;gridBagConstraints.gridwidth = 4;gridBagConstraints.gridheight = 1;gridBagConstraints.fill = 1;gridBagConstraints.weightx = 1;gridBagConstraints.weighty = 1;gridBagLayout.setConstraints(displayField, gridBagConstraints);container.add(displayField);}/*** * @param label 標簽* @param column 布局器中左上角位置* @param row 布局器中左上角位置* @param with 寬* @param height 高* @param listener 監(jiān)聽鼠標點擊* @param color 顏色*/private void addButton(String label, int column, int row, int with, int height, ActionListener listener,Color color) {// 增加標簽JButton button = new JButton(label);// 顏色button.setForeground(Color.WHITE);button.setBackground(color);// 標準計算器if (mode == 1)button.setFont(new Font("楷體", Font.BOLD, 36));// 科學(xué)計算器else if (mode == 2)button.setFont(new Font("楷體", Font.BOLD, 27));// 增加監(jiān)聽button.addActionListener(listener);// 去掉標簽焦點框button.setFocusPainted(false);// 位置與大小gridBagConstraints.gridx = column;gridBagConstraints.gridy = row;gridBagConstraints.gridwidth = with;gridBagConstraints.gridheight = height;gridBagConstraints.fill = GridBagConstraints.BOTH;gridBagConstraints.insets = new Insets(1, 1, 1, 1);gridBagLayout.setConstraints(button, gridBagConstraints);container.add(button);}/*** * @param x 傳入x與結(jié)果做加減乘除與百分*/public void calculate(double x) {if (this.lastCommand.equals("+")) {this.result += x;} else if (this.lastCommand.equals("-")) {this.result -= x;} else if (this.lastCommand.equals("*")) {this.result *= x;} else if (this.lastCommand.equals("/")) {this.result /= x;} else if (this.lastCommand.equals("=")) {this.result = x;} else if (this.lastCommand.equals("%")) {this.result /= 100;}this.displayField.setText("" + this.result);}/*** 使用類中類 讀取按鍵* * @author Fish·Potato·Chen**/private class CommandAction implements ActionListener {public void actionPerformed(ActionEvent evt) {String command = evt.getActionCommand();if (Calculator.this.start) {Calculator.this.lastCommand = command;} else {Calculator.this.calculate(Double.parseDouble(Calculator.this.displayField.getText()));Calculator.this.lastCommand = command;Calculator.this.start = true;}}}/*** 使用類中類 讀取按鍵* * @author Fish·Potato·Chen**/private class InsertAction implements ActionListener {public void actionPerformed(ActionEvent event) {String input = event.getActionCommand();if (Calculator.this.start) {Calculator.this.displayField.setText("");Calculator.this.start = false;if (input.equals("±"))Calculator.this.displayField.setText(Calculator.this.displayField.getText() + "-");}if (!input.equals("±")) {if (input.equals("←")) {String str = Calculator.this.displayField.getText();if (str.length() > 1)Calculator.this.displayField.setText(str.substring(0, str.length() - 1));else {Calculator.this.displayField.setText("0");Calculator.this.start = true;}} else if (input.equals("C")) {Calculator.this.displayField.setText("0");result = 0.0d;Calculator.this.start = true;} else {if (input.equals(".")) {if (Calculator.this.displayField.getText().trim().indexOf(".") == -1)Calculator.this.displayField.setText(Calculator.this.displayField.getText() + input);} elseCalculator.this.displayField.setText(Calculator.this.displayField.getText() + input);}}}}private class Command1Action implements ActionListener {public void actionPerformed(ActionEvent evt) {String command = evt.getActionCommand();if (command.equals("√x"))Calculator.this.displayFielddown.setText(String.valueOf(Math.sqrt(Double.parseDouble(Calculator.this.displayFielddown.getText()))));else if (command.equals("x^2"))Calculator.this.displayFielddown.setText(String.valueOf(Math.pow(Double.parseDouble(Calculator.this.displayFielddown.getText()), 2)));else if (command.equals("10^x"))Calculator.this.displayFielddown.setText(String.valueOf(Math.pow(10, Double.parseDouble(Calculator.this.displayFielddown.getText()))));else if (command.equals("ln"))Calculator.this.displayFielddown.setText(String.valueOf(Math.log(Double.parseDouble(Calculator.this.displayFielddown.getText()))));else if (command.equals("sin"))Calculator.this.displayFielddown.setText(String.valueOf(Math.sin(Double.parseDouble(Calculator.this.displayFielddown.getText()))));else if (command.equals("arcsin"))Calculator.this.displayFielddown.setText(String.valueOf(Math.asin(Double.parseDouble(Calculator.this.displayFielddown.getText()))));else if (command.equals("e^x"))Calculator.this.displayFielddown.setText(String.valueOf(Math.pow(Math.E, Double.parseDouble(Calculator.this.displayFielddown.getText()))));else if (command.equals("cos"))Calculator.this.displayFielddown.setText(String.valueOf(Math.cos(Double.parseDouble(Calculator.this.displayFielddown.getText()))));else if (command.equals("arccos"))Calculator.this.displayFielddown.setText(String.valueOf(Math.acos(Double.parseDouble(Calculator.this.displayFielddown.getText()))));else if (command.equals("n!"))Calculator.this.displayFielddown.setText(String.valueOf(Calculator.this.factorial((int) Double.parseDouble(Calculator.this.displayFielddown.getText()))));else if (command.equals("tan"))Calculator.this.displayFielddown.setText(String.valueOf(Math.tan(Double.parseDouble(Calculator.this.displayFielddown.getText()))));else if (command.equals("arctan"))Calculator.this.displayFielddown.setText(String.valueOf(Math.atan(Double.parseDouble(Calculator.this.displayFielddown.getText()))));else if (command.equals("%"))Calculator.this.displayFielddown.setText(String.valueOf(Double.parseDouble(Calculator.this.displayFielddown.getText()) / 100));down = false;indown = false;if (command.equals("±"))if (Double.parseDouble(Calculator.this.displayFielddown.getText()) != 0) {Calculator.this.displayFielddown.setText(String.valueOf(-1 * (Double.parseDouble(Calculator.this.displayFielddown.getText()))));} else {down = true;indown = true;}}}private class Command2Action implements ActionListener {public void actionPerformed(ActionEvent evt) {String command2 = evt.getActionCommand();if (command2.equals("e"))Calculator.this.displayFielddown.setText(String.valueOf(Math.E));else if (command2.equals("π"))Calculator.this.displayFielddown.setText(String.valueOf(Math.PI));else if (command2.equals("Ans"))Calculator.this.displayFielddown.setText(String.valueOf(Calculator.this.result));down = false;}}private class Command3Action implements ActionListener {public void actionPerformed(ActionEvent evt) {String command3 = evt.getActionCommand();if (order == 1) {Calculator.this.displayFielddown.setText(String.valueOf(Math.pow(x, Double.parseDouble(Calculator.this.displayFielddown.getText()))));order = 0;} else if (order == 2) {Calculator.this.displayFielddown.setText(String.valueOf(Math.pow(x, 1 / Double.parseDouble(Calculator.this.displayFielddown.getText()))));order = 0;} else {x = Double.parseDouble(Calculator.this.displayFielddown.getText());Calculator.this.displayFielddown.setText("0");indown = false;down = true;if (command3.equals("x^y"))order = 1;else if (command3.contentEquals("y√x"))order = 2;}}}private class Command4Action implements ActionListener {public void actionPerformed(ActionEvent evt) {String command4 = evt.getActionCommand();if (command4.equals("(")) {Calculator.this.displayFieldup.setText(Calculator.this.displayFieldup.getText() + "(");Calculator.this.displayFielddown.setText("0");} else if (command4.equals(")"))if (down) {Calculator.this.displayFieldup.setText(Calculator.this.displayFieldup.getText() + ")");Calculator.this.displayFielddown.setText("0");} else {Calculator.this.displayFieldup.setText(Calculator.this.displayFieldup.getText()+ Calculator.this.displayFielddown.getText() + ")");Calculator.this.displayFielddown.setText("");}down = true;}}private class Command5Action implements ActionListener {public void actionPerformed(ActionEvent evt) {String command5 = evt.getActionCommand();if (down && !command5.contentEquals("0")) {Calculator.this.displayFielddown.setText(command5);down = false;indown = true;} else if (indown)Calculator.this.displayFielddown.setText(Calculator.this.displayFielddown.getText() + command5);}}private class Command6Action implements ActionListener {public void actionPerformed(ActionEvent evt) {String command6 = evt.getActionCommand();if (command6.equals(".")) {if (Calculator.this.displayFielddown.getText().trim().indexOf(".") == -1)Calculator.this.displayFielddown.setText(Calculator.this.displayFielddown.getText() + command6);} else if (command6.equals("=")) {Calculator.this.displayFieldup.setText(Calculator.this.displayFieldup.getText() + Calculator.this.displayFielddown.getText());if (!Calculator.this.displayFieldup.getText().equals("")) {try {Calculator.this.result = (double) new ScriptEngineManager().getEngineByName("js").eval(Calculator.this.displayFieldup.getText() + "*1.0");// 上面這一行用不了就用下面的// Calculator.this.result = Double.parseDouble(String.valueOf(new// ScriptEngineManager().getEngineByName("js").eval(Calculator.this.displayFieldup.getText()// + "*1.0")));Calculator.this.displayFielddown.setText(String.valueOf(Calculator.this.result));} catch (ScriptException e) {Calculator.this.displayFielddown.setText("error");e.printStackTrace();}} else {Calculator.this.result = 0;Calculator.this.displayFielddown.setText(String.valueOf(Calculator.this.result));}Calculator.this.displayFieldup.setText("");down = true;indown = false;} else {if (Calculator.this.displayFielddown.getText().equals(""))Calculator.this.displayFieldup.setText(Calculator.this.displayFieldup.getText() + command6);elseCalculator.this.displayFieldup.setText(Calculator.this.displayFieldup.getText()+ String.valueOf(Double.parseDouble(Calculator.this.displayFielddown.getText()))+ command6);Calculator.this.displayFielddown.setText("0");down = true;}}}private class Command7Action implements ActionListener {public void actionPerformed(ActionEvent evt) {String command7 = evt.getActionCommand();if (command7.equals("CE")) {Calculator.this.displayFielddown.setText("0");down = true;indown = false;} else if (command7.equals("C")) {Calculator.this.displayFielddown.setText("0");Calculator.this.displayFieldup.setText("");indown = false;down = true;} else {if (!indown) {Calculator.this.displayFielddown.setText("0");down = true;} else {String str = Calculator.this.displayFielddown.getText();if (str.length() > 1)Calculator.this.displayFielddown.setText(str.substring(0, str.length() - 1));else {Calculator.this.displayFielddown.setText("0");down = true;indown = false;}}}}}private int factorial(int n) {int m = n;if (n == 0)return 1;else if (n < 0) {n = Math.abs(n);for (int i = 1; i < n; i++)m *= i;return -1 * n;} elsefor (int i = 1; i < n; i++)m *= i;return m;}public static void main(String[] args) {new Calculator();} }其實GUI就是不斷重復(fù)編寫按鍵,所以GUI沒有什么好說的(可能有讀者過來就是為了看GUI,建議拷貝到機子上跑一下就明白了),后面的那些計算判斷,就是硬判斷,用最笨的方法進行求解。其實可以直接使用逆波蘭表達式進行求解,我將在下一篇中用C++進行介紹。
BUG說明:
1.在科學(xué)計算器中無法輸入0.幾
2.在科學(xué)計算器中可以輸入00.
總結(jié)
以上是生活随笔為你收集整理的基于Java计算器 科学计算器与标准计算器相互转化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不同vlan之间如何ping通_【丰润达
- 下一篇: java jxl 写 excel文件_J