<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • Java編寫計(jì)算器的的常見(jiàn)做法

    時(shí)間:2024-08-12 10:30:43 JAVA認(rèn)證 我要投稿
    • 相關(guān)推薦

    Java編寫計(jì)算器的的常見(jiàn)做法

      用java怎么編寫簡(jiǎn)易計(jì)算器?有哪幾種編寫方法呢?下面跟yjbys小編一起來(lái)看看吧!

      界面設(shè)計(jì):用一個(gè)JPanel1 布局是網(wǎng)格 (4*4),分別放置數(shù)字和功能鍵,再用一個(gè)JPanel2 放置顯示區(qū)(JTextArea)1和2,在把JPanel1放入JPanel2中,JPanel2 放入JFrame中;

      計(jì)算:

      有數(shù)字按鈕按下時(shí),把相應(yīng)的值讀入顯示區(qū)里,當(dāng)有功能鍵按下時(shí),顯示區(qū)清空,在讀入第二操作數(shù),當(dāng)有”=”按下時(shí),調(diào)用相應(yīng)的函數(shù)計(jì)算結(jié)果,并顯示。并激活相應(yīng)的探聽(tīng)器。

      方法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();

      }

      /**

      *采用成員內(nèi)部類方式,實(shí)現(xiàn)探聽(tīng)器接口,方便訪問(wèn)主類內(nèi)類內(nèi)部成員。

      *此類負(fù)責(zé)數(shù)字按鈕Action事件監(jiān)聽(tīng)和處理

      */

      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

      }

      }

      }

      方法2:

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

      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("* 使用說(shuō)明: 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;

      }

      }

      }

      }

      第三種寫法:

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

      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ù)字的開(kāi)始

      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, );// 只顯示"-"號(hào),"+"沒(méi)有實(shí)用價(jià)值

      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;// 計(jì)算結(jié)果顯示區(qū)

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

      private double result;// 保存計(jì)算結(jié)果

      private boolean start;// 判斷是否為數(shù)字的開(kāi)始

      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, );// 只顯示"-"號(hào),"+"沒(méi)有實(shí)用價(jià)值

      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編寫計(jì)算器的的常見(jiàn)做法】相關(guān)文章:

    Java怎么編寫Oracle存儲(chǔ)過(guò)程09-15

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

    java運(yùn)行常見(jiàn)異常舉例08-30

    Java編程常見(jiàn)問(wèn)題匯總10-05

    Java中最常見(jiàn)的錯(cuò)誤盤點(diǎn)09-25

    常見(jiàn)日本料理做法09-14

    常見(jiàn)的日本料理做法10-09

    炸豬排飯的常見(jiàn)做法06-14

    常見(jiàn)韓國(guó)料理的極簡(jiǎn)做法07-19

    主站蜘蛛池模板: 成人午夜视频精品一区| 国产精品免费精品自在线观看| 十八18禁国产精品www| 久久国产精品99精品国产987| 亚洲精品无码专区2| 亚洲国产成人久久精品动漫| 亚洲欧洲成人精品香蕉网| 在线观看日韩精品| 久久99热只有频精品8| 久久精品成人一区二区三区| 国产成人久久久精品二区三区| 日本一区二区三区精品国产| 久久se精品一区精品二区| 久热这里只有精品视频6| 久久精品国产亚洲AV不卡| 四虎国产精品免费久久久| 国产综合精品一区二区三区| 人妻无码久久精品| 国产精品综合专区中文字幕免费播放| 国产精品国产精品国产专区不卡 | 国产精品电影在线观看| 无码人妻精品一区二区三区久久久 | 精品国产亚洲一区二区在线观看 | 亚洲精品乱码久久久久66| 国産精品久久久久久久| 亚洲午夜精品久久久久久人妖| 国产AV午夜精品一区二区三区 | 97在线精品视频| 日韩AV无码精品人妻系列| 成人精品一区二区三区电影黑人 | 久久精品国产福利国产秒| 久久久久女人精品毛片| 伊人久久综合精品无码AV专区| 麻豆精品国产自产在线观看一区| 国产精品自在线拍国产第一页| 97视频在线精品国自产拍| 亚洲综合一区二区精品导航| 国产精品久久毛片完整版| 国产91精品在线| 国产精品黄网站| 国产精品久久久福利|