乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      用Java編寫計(jì)算器的幾種常見的做法

       精髓_感知力 2016-03-07

      方法一:

      復(fù)制代碼
      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;// 計(jì)算結(jié)果顯示區(qū)
      
      private String lastCommand;// 保存+,-,*,/,=命令
      
      private double result;// 保存計(jì)算結(jié)果
      
      private boolean start;// 判斷是否為數(shù)字的開始
      
      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 insert = new InsertAction();
      ActionListener command = new CommandAction();
      // addButton("Backspace", 0, 1, 2, 1, insert);
      // addButton("CE", 2, 1, 1, 1, insert);
      // addButton("C", 3, 1, 1, 1, insert);
      addButton("7", 0, 2, 1, 1, insert);
      addButton("8", 1, 2, 1, 1, insert);
      addButton("9", 2, 2, 1, 1, insert);
      addButton("/", 3, 2, 1, 1, command);
      addButton("4", 0, 3, 1, 1, insert);
      addButton("5", 1, 3, 1, 1, insert);
      addButton("6", 2, 3, 1, 1, insert);
      addButton("*", 3, 3, 1, 1, command);
      addButton("1", 0, 4, 1, 1, insert);
      addButton("2", 1, 4, 1, 1, insert);
      addButton("3", 2, 4, 1, 1, insert);
      addButton("-", 3, 4, 1, 1, command);
      addButton("0", 0, 5, 1, 1, insert);
      // addButton("+/-", 1, 5, 1, 1, insert);// 只顯示"-"號(hào),"+"沒有實(shí)用價(jià)值
      addButton(".", 2, 5, 1, 1, insert);
      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);
      }
      
      }
      復(fù)制代碼

       

      方法二:

       

      復(fù)制代碼
      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();
         }
      
         /**
          *采用成員內(nèi)部類方式,實(shí)現(xiàn)監(jiān)聽器接口,方便訪問主類內(nèi)類內(nèi)部成員。
          *此類負(fù)責(zé)數(shù)字按鈕Action事件監(jiān)聽和處理
          */
         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);
                }
             }
         }
      
         /**
          * 成員內(nèi)部類,負(fù)責(zé)操作符按鈕的事件處理
          */
         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
             }
         }
      }
      復(fù)制代碼

       

       

      方法三:

      復(fù)制代碼
      package wanwa;
      import java.util.*;
      
      public class calc {
      
      public static void main(String[] args) {
      
      Scanner input = new Scanner(System.in);
      
      System.out.println("*****************簡(jiǎn)易計(jì)算器****************");
      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請(qǐng)選擇運(yùn)算規(guī)則:");
      int num = input.nextInt();
      switch(num){
      case 1:
      System.out.println("\n******你選擇了加法******\n");
      System.out.print("請(qǐng)輸入第1個(gè)加數(shù):");
      int jiashu1 = input.nextInt();
      System.out.print("請(qǐng)輸入第2個(gè)加數(shù):");
      int jiashu2 = input.nextInt();
      System.out.println("運(yùn)算結(jié)果為:" + jiashu1 + " + " + jiashu1 + " = " + (jiashu1 + jiashu2));
      break;
      case 2:
      System.out.println("\n******你選擇了減法******\n");
      System.out.print("請(qǐng)輸入被減數(shù):");
      int jianshu1 = input.nextInt();
      System.out.print("請(qǐng)輸入減數(shù):");
      int jianshu2 = input.nextInt();
      System.out.println("運(yùn)算結(jié)果為:" + jianshu1 + " - " + jianshu2 + " = " + (jianshu1 - jianshu2));
      break;
      case 3:
      System.out.println("\n******你選擇了乘法******\n");
      System.out.print("請(qǐng)輸入第1個(gè)因數(shù):");
      int chengfa1 = input.nextInt();
      System.out.print("請(qǐng)輸入第2個(gè)因數(shù):");
      int chengfa2 = input.nextInt();
      System.out.println("運(yùn)算結(jié)果為:" + chengfa1 + " * " + chengfa2 + " = " + (chengfa1 * chengfa2));
      break;
      case 4:
      System.out.println("\n******你選擇了除法******\n");
      System.out.print("請(qǐng)輸入被除數(shù):");
      double chufa1 = input.nextInt();
      System.out.print("請(qǐng)輸入除數(shù):");
      double chufa2 = input.nextInt();
      System.out.println("運(yùn)算結(jié)果為:" + chufa1 + " / " + chufa2 + " = " + (chufa1 / chufa2) + " 余 " + (chufa1 % chufa2));
      break;
      default:
      System.out.println("\n你的選擇有錯(cuò),請(qǐng)重新選擇!");
      break;
      }
      
      }
      }
      
      }
      復(fù)制代碼

       

      方法四:

      復(fù)制代碼
      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;// 計(jì)算結(jié)果顯示區(qū)
      
      private String lastCommand;// 保存+,-,*,/,=命令
      
      private double result;// 保存計(jì)算結(jié)果
      
      private boolean start;// 判斷是否為數(shù)字的開始
      
      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 insert = new InsertAction();
      ActionListener command = new CommandAction();
      // addButton("Backspace", 0, 1, 2, 1, insert);
      // addButton("CE", 2, 1, 1, 1, insert);
      // addButton("C", 3, 1, 1, 1, insert);
      addButton("7", 0, 2, 1, 1, insert);
      addButton("8", 1, 2, 1, 1, insert);
      addButton("9", 2, 2, 1, 1, insert);
      addButton("/", 3, 2, 1, 1, command);
      addButton("4", 0, 3, 1, 1, insert);
      addButton("5", 1, 3, 1, 1, insert);
      addButton("6", 2, 3, 1, 1, insert);
      addButton("*", 3, 3, 1, 1, command);
      addButton("1", 0, 4, 1, 1, insert);
      addButton("2", 1, 4, 1, 1, insert);
      addButton("3", 2, 4, 1, 1, insert);
      addButton("-", 3, 4, 1, 1, command);
      addButton("0", 0, 5, 1, 1, insert);
      // addButton("+/-", 1, 5, 1, 1, insert);// 只顯示"-"號(hào),"+"沒有實(shí)用價(jià)值
      addButton(".", 2, 5, 1, 1, insert);
      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);
      }
      
      } 
      復(fù)制代碼

       

       

       

       

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多