簡體   English   中英

計算器如何制作可以執行多種操作的計算器

[英]Calculator How to make a calculator that can do multiple operations

我創建了一個計算器,可以進行簡單的計算,例如9 + 8 = 17或10 * 3 = 30,但是我想制作一個可以執行多種操作的計算器,例如9 * 5/2或9 * 5 * 6等。

這是我的代碼:

    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==zero){
            if(answerField.getText().length()<16){
                if(clearField ==1){
                    answerField.setText("0");
                    clearField = 0;
                }
                else{
                    answerField.setText(answerField.getText()+"0");
                }
            }
        }
        else if(e.getSource()==one){
            if(answerField.getText().length()<16){
                if(clearField ==1){
                    answerField.setText("1");
                    clearField = 0;
                }
                else{
                    answerField.setText(answerField.getText()+"1");
                }
            }
        }
        else if(e.getSource()==two){
            if(answerField.getText().length()<16){
                if(clearField ==1){
                    answerField.setText("2");
                    clearField = 0;
                }
                else{
                    answerField.setText(answerField.getText()+"2");
                }
            }
        }
        else if(e.getSource()==three){
            if(answerField.getText().length()<16){
                if(clearField ==1){
                    answerField.setText("3");
                    clearField = 0;
                }
                else{
                    answerField.setText(answerField.getText()+"3");
                }
            }
        }
        else if(e.getSource()==four){
            if(answerField.getText().length()<16){
                if(clearField ==1){
                    answerField.setText("4");
                    clearField = 0;
                }
                else{
                    answerField.setText(answerField.getText()+"4");
                }
            }
        }
        else if(e.getSource()==five){
            if(answerField.getText().length()<16){
                if(clearField ==1){
                    answerField.setText("5");
                    clearField = 0;
                }
                else{
                    answerField.setText(answerField.getText()+"5");
                }
            }
        }
        else if(e.getSource()==six){
            if(answerField.getText().length()<16){
                if(clearField ==1){
                    answerField.setText("6");
                    clearField = 0;
                }
                else{
                    answerField.setText(answerField.getText()+"6");
                }
            }
        }
        else if(e.getSource()==seven){
            if(answerField.getText().length()<16){
                if(clearField ==1){
                    answerField.setText("7");
                    clearField = 0;
                }
                else{
                    answerField.setText(answerField.getText()+"7");
                }
            }
        }
        else if(e.getSource()==eight){
            if(answerField.getText().length()<16){
                if(clearField ==1){
                    answerField.setText("8");
                    clearField = 0;
                }
                else{
                    answerField.setText(answerField.getText()+"8");
                }
            }
        }
        else if(e.getSource()==nine){
            if(answerField.getText().length()<16){
                if(clearField ==1){
                    answerField.setText("9");
                    clearField = 0;
                }
                else{
                    answerField.setText(answerField.getText()+"9");
                }
            }
        }
        else if(e.getSource()== negativePositive){
            if(answerField.getText().equals("")||answerField.getText().equals("-")){
                answerField.setText("-");
            }
            else{
                negativePositive1 = (Double.parseDouble(String.valueOf(answerField.getText())));
                negativePositive1 *= -1;
                answerField.setText(String.valueOf(negativePositive1));
            }
        }
        else if(e.getSource()==clear){
            answerField.setText("");
            num1 = 0;
            num2 = 0;
            addClick = 0;
            subClick = 0;
            divClick = 0;
            multiClick = 0;

        }
        else if(e.getSource()==decimal){
            if(answerField.getText().contains(".")){
                answerField.setText(answerField.getText());
            }
            else{
            answerField.setText(answerField.getText()+".");
            }
        }
        else if(e.getSource()==add){
            if(answerField.getText()!=null){
                num1 = Double.parseDouble(String.valueOf(answerField.getText()));
                addClick = 1;
                clearField = 1;
            }
        }
        else if(e.getSource()==Subtract){
            if(answerField.getText()!=null){
                num1 = Double.parseDouble(String.valueOf(answerField.getText()));
                subClick = 1;
                clearField = 1;
            }
        }
        else if(e.getSource()==multiply){
            if(answerField.getText()!=null){
                num1 = Double.parseDouble(String.valueOf(answerField.getText()));
                multiClick = 1;
                clearField = 1;
            }
        }
        else if(e.getSource()==divide){
            if(answerField!=null){
            answerField.setText(answerField.getText()+"/");
            }
            if(answerField.getText()!=null){

                num1 = Double.parseDouble(String.valueOf(answerField.getText()));
                divClick = 1;
                clearField = 1;
            }
        }
        else if(e.getSource()==equal){
            num2 = Double.parseDouble(String.valueOf(answerField.getText()));
            answerField.setText(answerField.getText());
            if(addClick ==1){
                ans = num1+num2;
                answerField.setText(String.valueOf(ans));
                addClick = 0;
            }
            if(subClick ==1){
                ans = num1-num2;
                answerField.setText(String.valueOf(ans));
                subClick = 0;
            }
            if(multiClick ==1){
                ans = num1*num2;
                answerField.setText(String.valueOf(ans));
                multiClick = 0;
            }
            if(divClick ==1){
                ans = Num1/Num2;
                answerField.setText(String.valueOf(ans));
                divClick = 0;
            }

        }

    }

有人知道我將如何處理嗎? 我知道我缺少什么

考慮此示例,您有3個按鈕:加,減和等於

private int number = 0;
private void setNumber(int no){
    this.number = no;
}
private Integer getNumber(){
    return this.number;
}
private void addActionPerformed(java.awt.event.ActionEvent evt) {       
    int i = 1;
    int newAddedNumber = this.number + i;
    setNumber(newAddedNumber);
}   
private void substractActionPerformed(java.awt.event.ActionEvent evt) {                                  
    int i = 1;
    int newSubtractedNumber = this.number - i;
    setNumber(newSubstractedNumber);
}
private void equalsActionPerformed(java.awt.event.ActionEvent evt) {
   int displayCurrentNo = getNumber();
   System.out.println("current Number is : "  + displayCurrentNo) 
}

這應該做的就是從當前數字中添加或刪除1。 它只是一個示例,不一定是可編譯的,但這應該可以使您有所了解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM