中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      Java編寫計算器的的常見做法

      時間:2024-08-12 10:30:43 JAVA認證 我要投稿
      • 相關推薦

      Java編寫計算器的的常見做法

        用java怎么編寫簡易計算器?有哪幾種編寫方法呢?下面跟yjbys小編一起來看看吧!

        界面設計:用一個JPanel1 布局是網格 (4*4),分別放置數字和功能鍵,再用一個JPanel2 放置顯示區(JTextArea)1和2,在把JPanel1放入JPanel2中,JPanel2 放入JFrame中;

        計算:

        有數字按鈕按下時,把相應的值讀入顯示區里,當有功能鍵按下時,顯示區清空,在讀入第二操作數,當有”=”按下時,調用相應的函數計算結果,并顯示。并激活相應的探聽器。

        方法1:

        import java.awt.*;

        import java.awt.event.*;

        public class MyCalculator {

        private Frame f;

        private TextField tf = new TextField(30);

        private long result;

        private boolean append=false;

        private char operator='=';

        private Button[] btn=new Button[15];

        public MyCalculator() {

        initComponent();

        }

        private void initComponent() {

        f = new Frame("My Calculator V1.0");

        f.setLayout(new BorderLayout()); //The frame uses BorderLayout

        f.addWindowListener(new WindowAdapter() {

        public void windowClosing(WindowEvent evt) {

        System.exit(0);

        }

        });

        Panel centerPanel = new Panel();

        centerPanel.setLayout(new GridLayout(5, 3)); //The panel uses GridLayout

        NumberListener nl=new NumberListener();

        OperatorListener ol=new OperatorListener();

        btn[10]=new Button("+");

        btn[11]=new Button("-");

        btn[12]=new Button("*");

        btn[13]=new Button("/");

        btn[14]=new Button("=");

        for (int i=0;i<=9;i++){

        btn[i]=new Button(String.valueOf(i));

        centerPanel.add(btn[i]);

        btn[i].addActionListener(nl);

        if (i%2==1){

        centerPanel.add(btn[(i+19)/2]);

        btn[(i+19)/2].addActionListener(ol);

        }

        }

        f.add(centerPanel, BorderLayout.CENTER);

        Panel northPanel = new Panel();

        tf.setEditable(false);

        northPanel.add(tf);

        f.add(northPanel, BorderLayout.NORTH);

        }

        public void go() {

        f.pack();

        f.setVisible(true);

        }

        public static void main(String[] args) {

        new MyCalculator().go();

        }

        /**

        *采用成員內部類方式,實現探聽器接口,方便訪問主類內類內部成員。

        *此類負責數字按鈕Action事件監聽和處理

        */

        class NumberListener implements ActionListener{

        public void actionPerformed(ActionEvent e){

        if (!append) {

        tf.setText("");

        append=true;

        }

        String s=tf.getText();

        s+=e.getActionCommand();

        tf.setText(s);

        if (!btn[10].isEnabled()){

        for(int i=10;i<=14;i++) btn[i].setEnabled(true);

        }

        }

        }

        /**

        * 成員內部類,負責操作符按鈕的事件處理

        */

        class OperatorListener implements ActionListener{

        public void actionPerformed(ActionEvent e){

        if (!append) return;

        for(int i=10;i<=14;i++) btn[i].setEnabled(false);

        String s=tf.getText();

        long num=Long.parseLong(s);//get the number of textfield

        append=false; //set append

        switch(operator){

        case '+':result+=num;break;

        case '-':result-=num;break;

        case '*':result*=num;break;

        case '/':{

        if (num==0) result=0;

        else result/=num;

        break;

        }

        case '=':result=num;break;

        }

        tf.setText(String.valueOf(result));

        //set the value of result to textfield

        String op=e.getActionCommand();

        operator=op.charAt(0); // set operator

        }

        }

        }

        方法2:

        ——————————————————————————————————————————————

        package wanwa;

        import java.util.*;

        public class calc {

        public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.println("*****************簡易計算器****************");

        System.out.println("*/t/t/t/t/t*");

        System.out.println("* 使用說明: 1.加法 2.減法 3.乘法 4.除法 *");

        System.out.println("*/t/t/t/t/t*");

        System.out.println("*****************************************");

        for(int i=0;i<100;i++){

        System.out.print("/n請選擇運算規則:");

        int num = input.nextInt();

        switch(num){

        case 1:

        System.out.println("/n******你選擇了加法******/n");

        System.out.print("請輸入第1個加數:");

        int jiashu1 = input.nextInt();

        System.out.print("請輸入第2個加數:");

        int jiashu2 = input.nextInt();

        System.out.println("運算結果為:" + jiashu1 + " + " + jiashu1 + " = " + (jiashu1 + jiashu2));

        break;

        case 2:

        System.out.println("/n******你選擇了減法******/n");

        System.out.print("請輸入被減數:");

        int jianshu1 = input.nextInt();

        System.out.print("請輸入減數:");

        int jianshu2 = input.nextInt();

        System.out.println("運算結果為:" + jianshu1 + " - " + jianshu2 + " = " + (jianshu1 - jianshu2));

        break;

        case 3:

        System.out.println("/n******你選擇了乘法******/n");

        System.out.print("請輸入第1個因數:");

        int chengfa1 = input.nextInt();

        System.out.print("請輸入第2個因數:");

        int chengfa2 = input.nextInt();

        System.out.println("運算結果為:" + chengfa1 + " * " + chengfa2 + " = " + (chengfa1 * chengfa2));

        break;

        case 4:

        System.out.println("/n******你選擇了除法******/n");

        System.out.print("請輸入被除數:");

        double chufa1 = input.nextInt();

        System.out.print("請輸入除數:");

        double chufa2 = input.nextInt();

        System.out.println("運算結果為:" + chufa1 + " / " + chufa2 + " = " + (chufa1 / chufa2) + " 余 " + (chufa1 % chufa2));

        break;

        default:

        System.out.println("/n你的選擇有錯,請重新選擇!");

        break;

        }

        }

        }

        }

        第三種寫法:

        ——————————————————————————————————————————————

        package wanwa;

        import java.awt.*;

        import java.awt.event.*;

        import javax.swing.*;

        public class Calculator extends JFrame {

        private Container container;

        private GridBagLayout layout;

        private GridBagConstraints constraints;

        private JTextField displayField;// 計算結果顯示區

        private String lastCommand;// 保存+,-,*,/,=命令

        private double result;// 保存計算結果

        private boolean start;// 判斷是否為數字的開始

        public Calculator() {

        super("Calculator");

        container = getContentPane();

        layout = new GridBagLayout();

        container.setLayout(layout);

        constraints = new GridBagConstraints();

        start = true;

        result = 0;

        lastCommand = "=";

        displayField = new JTextField(20);

        displayField.setHorizontalAlignment(JTextField.RIGHT);

        constraints.gridx = 0;

        constraints.gridy = 0;

        constraints.gridwidth = 4;

        constraints.gridheight = 1;

        constraints.fill = GridBagConstraints.BOTH;

        constraints.weightx = 100;

        constraints.weighty = 100;

        layout.setConstraints(displayField, constraints);

        container.add(displayField);

        ActionListener  = new InsertAction();

        ActionListener command = new CommandAction();

        // addButton("Backspace", 0, 1, 2, 1, );

        // addButton("CE", 2, 1, 1, 1, );

        // addButton("C", 3, 1, 1, 1, );

        addButton("7", 0, 2, 1, 1, );

        addButton("8", 1, 2, 1, 1, );

        addButton("9", 2, 2, 1, 1, );

        addButton("/", 3, 2, 1, 1, command);

        addButton("4", 0, 3, 1, 1, );

        addButton("5", 1, 3, 1, 1, );

        addButton("6", 2, 3, 1, 1, );

        addButton("*", 3, 3, 1, 1, command);

        addButton("1", 0, 4, 1, 1, );

        addButton("2", 1, 4, 1, 1, );

        addButton("3", 2, 4, 1, 1, );

        addButton("-", 3, 4, 1, 1, command);

        addButton("0", 0, 5, 1, 1, );

        // addButton("+/-", 1, 5, 1, 1, );// 只顯示"-"號,"+"沒有實用價值

        addButton(".", 2, 5, 1, 1, );

        addButton("+", 3, 5, 1, 1, command);

        addButton("=", 0, 6, 4, 1, command);

        this.setResizable(false);

        setSize(180, 200);

        setVisible(true);

        }

        private void addButton(String label, int row, int column, int with,

        int height, ActionListener listener) {

        JButton button = new JButton(label);

        constraints.gridx = row;

        constraints.gridy = column;

        constraints.gridwidth = with;

        constraints.gridheight = height;

        constraints.fill = GridBagConstraints.BOTH;

        button.addActionListener(listener);

        layout.setConstraints(button, constraints);

        container.add(button);

        }

        private class InsertAction implements ActionListener {

        public void actionPerformed(ActionEvent event) {

        String input = event.getActionCommand();

        if (start) {

        displayField.setText("");

        start = false;

        if (input.equals("+/-"))

        displayField.setText(displayField.getText() + "-");

        }

        if (!input.equals("+/-")) {

        if (input.equals("Backspace")) {

        String str = displayField.getText();

        if (str.length() > 0)

        displayField.setText(str.substring(0, str.length() - 1));

        } else if (input.equals("CE") || input.equals("C")) {

        displayField.setText("0");

        start = true;

        } else

        displayField.setText(displayField.getText() + input);

        }

        }

        }

        private class CommandAction implements ActionListener {

        public void actionPerformed(ActionEvent evt) {

        String command = evt.getActionCommand();

        if (start) {

        lastCommand = command;

        } else {

        calculate(Double.parseDouble(displayField.getText()));

        lastCommand = command;

        start = true;

        }

        }

        }

        public void calculate(double x) {

        if (lastCommand.equals("+"))

        result += x;

        else if (lastCommand.equals("-"))

        result -= x;

        else if (lastCommand.equals("*"))

        result *= x;

        else if (lastCommand.equals("/"))

        result /= x;

        else if (lastCommand.equals("="))

        result = x;

        displayField.setText("" + result);

        }

        public static void main(String[] args) {

        Calculator calculator = new Calculator();

        calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        }

        }

        第四種寫法:

        ——————————————————————————————————————————————

        package wanwa;

        import java.awt.*;

        import java.awt.event.*;

        import javax.swing.*;

        public class Calculator extends JFrame {

        private Container container;

        private GridBagLayout layout;

        private GridBagConstraints constraints;

        private JTextField displayField;// 計算結果顯示區

        private String lastCommand;// 保存+,-,*,/,=命令

        private double result;// 保存計算結果

        private boolean start;// 判斷是否為數字的開始

        public Calculator() {

        super("Calculator");

        container = getContentPane();

        layout = new GridBagLayout();

        container.setLayout(layout);

        constraints = new GridBagConstraints();

        start = true;

        result = 0;

        lastCommand = "=";

        displayField = new JTextField(20);

        displayField.setHorizontalAlignment(JTextField.RIGHT);

        constraints.gridx = 0;

        constraints.gridy = 0;

        constraints.gridwidth = 4;

        constraints.gridheight = 1;

        constraints.fill = GridBagConstraints.BOTH;

        constraints.weightx = 100;

        constraints.weighty = 100;

        layout.setConstraints(displayField, constraints);

        container.add(displayField);

        ActionListener  = new InsertAction();

        ActionListener command = new CommandAction();

        // addButton("Backspace", 0, 1, 2, 1, );

        // addButton("CE", 2, 1, 1, 1, );

        // addButton("C", 3, 1, 1, 1, );

        addButton("7", 0, 2, 1, 1, );

        addButton("8", 1, 2, 1, 1, );

        addButton("9", 2, 2, 1, 1, );

        addButton("/", 3, 2, 1, 1, command);

        addButton("4", 0, 3, 1, 1, );

        addButton("5", 1, 3, 1, 1, );

        addButton("6", 2, 3, 1, 1, );

        addButton("*", 3, 3, 1, 1, command);

        addButton("1", 0, 4, 1, 1, );

        addButton("2", 1, 4, 1, 1, );

        addButton("3", 2, 4, 1, 1, );

        addButton("-", 3, 4, 1, 1, command);

        addButton("0", 0, 5, 1, 1, );

        // addButton("+/-", 1, 5, 1, 1, );// 只顯示"-"號,"+"沒有實用價值

        addButton(".", 2, 5, 1, 1, );

        addButton("+", 3, 5, 1, 1, command);

        addButton("=", 0, 6, 4, 1, command);

        this.setResizable(false);

        setSize(180, 200);

        setVisible(true);

        }

        private void addButton(String label, int row, int column, int with,

        int height, ActionListener listener) {

        JButton button = new JButton(label);

        constraints.gridx = row;

        constraints.gridy = column;

        constraints.gridwidth = with;

        constraints.gridheight = height;

        constraints.fill = GridBagConstraints.BOTH;

        button.addActionListener(listener);

        layout.setConstraints(button, constraints);

        container.add(button);

        }

        private class InsertAction implements ActionListener {

        public void actionPerformed(ActionEvent event) {

        String input = event.getActionCommand();

        if (start) {

        displayField.setText("");

        start = false;

        if (input.equals("+/-"))

        displayField.setText(displayField.getText() + "-");

        }

        if (!input.equals("+/-")) {

        if (input.equals("Backspace")) {

        String str = displayField.getText();

        if (str.length() > 0)

        displayField.setText(str.substring(0, str.length() - 1));

        } else if (input.equals("CE") || input.equals("C")) {

        displayField.setText("0");

        start = true;

        } else

        displayField.setText(displayField.getText() + input);

        }

        }

        }

        private class CommandAction implements ActionListener {

        public void actionPerformed(ActionEvent evt) {

        String command = evt.getActionCommand();

        if (start) {

        lastCommand = command;

        } else {

        calculate(Double.parseDouble(displayField.getText()));

        lastCommand = command;

        start = true;

        }

        }

        }

        public void calculate(double x) {

        if (lastCommand.equals("+"))

        result += x;

        else if (lastCommand.equals("-"))

        result -= x;

        else if (lastCommand.equals("*"))

        result *= x;

        else if (lastCommand.equals("/"))

        result /= x;

        else if (lastCommand.equals("="))

        result = x;

        displayField.setText("" + result);

        }

        public static void main(String[] args) {

        Calculator calculator = new Calculator();

        calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        }

        }

      【Java編寫計算器的的常見做法】相關文章:

      Java怎么編寫Oracle存儲過程09-15

      Java怎么編寫走馬燈程序08-19

      java運行常見異常舉例08-30

      Java編程常見問題匯總10-05

      Java中最常見的錯誤盤點09-25

      常見日本料理做法09-14

      常見的日本料理做法10-09

      炸豬排飯的常見做法06-14

      常見韓國料理的極簡做法07-19

      主站蜘蛛池模板: 亚洲精品白浆高清久久| 日本一区二区三区看片| 亚洲欧美成人在线免费| 精品91精品91精品国产片| 湛江市| 日本女优中文字幕在线一区| 丰满少妇棚拍无码视频| 91青青草久久| 91九色蝌蚪国产精品| 超级少妇一区二区三区| 日韩一区二区三区中文字幕| 国产精品反差婊在线观看| 毛片av中文字幕一区二区| 免费在线观看国产v片| av手机在线天堂网| 国产精品不卡在线视频| 原平市| 久久一区av蜜桃人妻| 峨边| 麻江县| 毕节市| 清新县| 岐山县| 全州县| 国产精品色内内在线播放| 孟津县| 昌图县| 国产一区二区三区高清视频| 国产成品精品午夜视频| 国产精品伦人视频免费看| 南通市| 91青青草久久| 国产主播一区二区在线观看| 黄和色美女啪啪啪亚洲| 麻豆密入视频在线观看| 亚洲精品无人区一区二区三区| 亚洲国产精品成人久久av| 精品粉嫩国产一区二区三区 | 粉嫩av一区二区在线观看| 粉嫩av一区二区在线观看| 国产成人亚洲欧美三区综合|