Calcolatrice JAVA

di il
4 risposte

Calcolatrice JAVA

Buongiorno ragazzi, sto studiando Java da un po', il prof ci ha assegnato come test una calcolatrice da fare con il wizard della grafica, l'ho completata e funziona benissimo, l'unico problema è che vorrei anche calcolare più numeri e non soltanto due valori (ho creato una classe a parte che mi gestisce le operazioni di addizione, sottrazione, moltiplicazione e divisione), mi spiego meglio esempio:
se faccio 3+3=6+2=8-4=4/2=2 va bene
se invece faccio 3+3+3=6 quindi in questo caso quando faccio uguale mi prende sempre e solo due valori.
Come potrei fare per calcolare anche 10 valori per poi alla fine usare l'uguale?
Grazie spero di essermi spiegato bene.

4 Risposte

  • Re: Calcolatrice JAVA

    Castrese ha scritto:


    se invece faccio 3+3+3=6 quindi in questo caso quando faccio uguale mi prende sempre e solo due valori.
    Come potrei fare per calcolare anche 10 valori per poi alla fine usare l'uguale?
    Dipende come hai gestito la logica di gestione dei calcoli e anche come rappresenti visivamente il risultato.

    Prendo una calcolatrice "vera" che ho nel cassetto. La accendo, all'inizio c'è 0, poi premo 3 e compare 3, poi premo + (resta visualizzato 3), poi premo 5, poi premo + e subito si visualizza 8. Ecco questo il punto, al + successivo sa già di avere 2 operandi completi ed ha già fatto la operazione di addizione e si tiene il risultato come nuova base per il seguito.

    Hai ragionato così? Se no, cambia logica!
  • Re: Calcolatrice JAVA

    Grazie della risposta, come dici tu l'ho già fatto ma senza il wizard, il problema sorge con il wizard ti mando il codice cosi posso farmi capire meglio:
    int op1;
    int op2;
    int risul;
    int flag=0, flag_oper=0, flag_d=0;
    Operazioni ca=new Operazioni();


    private void addizione_bActionPerformed(java.awt.event.ActionEvent evt) {

    flag_oper=1;

    op1=ca.n1=Integer.parseInt(ris_t.getText());
    ris_t.setText("");

    }

    private void numero4_bActionPerformed(java.awt.event.ActionEvent evt) {

    ris_t.setText(ris_t.getText()+numero4_b.getText());
    }

    private void numero7_bActionPerformed(java.awt.event.ActionEvent evt) {
    ris_t.setText(ris_t.getText()+numero7_b.getText());
    }

    private void numero9_bActionPerformed(java.awt.event.ActionEvent evt) {
    ris_t.setText(ris_t.getText()+numero9_b.getText());
    }

    private void divisione_bActionPerformed(java.awt.event.ActionEvent evt) {
    flag_oper=4;
    op1=ca.n1=Integer.parseInt(ris_t.getText());
    ris_t.setText("");
    }

    private void numero1_bActionPerformed(java.awt.event.ActionEvent evt) {
    ris_t.setText(ris_t.getText()+numero1_b.getText());
    }

    private void numero2_bActionPerformed(java.awt.event.ActionEvent evt) {
    ris_t.setText(ris_t.getText()+numero2_b.getText());
    }

    private void sottrazione_bActionPerformed(java.awt.event.ActionEvent evt) {
    flag_oper=2;

    op1= ca.n1=Integer.parseInt(ris_t.getText());
    ris_t.setText("");


    }

    private void moltiplicazione_bActionPerformed(java.awt.event.ActionEvent evt) {
    flag_oper=3;

    op1= ca.n1=Integer.parseInt(ris_t.getText());
    ris_t.setText("");
    }


    private void uguale_bActionPerformed(java.awt.event.ActionEvent evt) {


    try {

    op2=ca.n2=Integer.parseInt(ris_t.getText());

    if (flag_oper==1) {

    risul= ca.somma(op1, op2);}


    else if (flag_oper==2){
    risul= ca.meno(op1, op2);}


    else if (flag_oper==3){
    risul= ca.molti(op1, op2);}


    else{
    risul= ca.diviso(op1, op2);

    }
    ris_t.setText(Integer.toString(risul));}

    catch (ArithmeticException err){

    JOptionPane.showMessageDialog(this, "Attenzione! Operazione errata");}

    catch (Exception err){

    JOptionPane.showMessageDialog(this,"Attenzione! Inserire un numero!");}


    }
  • Re: Calcolatrice JAVA

    Utilizza il tag <code> per una più facile e pulita lettura per noi lettori.
    Ad ogni modo, il tuo codice rispecchia sommariamente il consiglio di @andbin. Dov'è il problema?

    Per quanto concerne quello che chiedevi nella prima domanda, ovvero una calcolatrice più moderna (o scientifica, dove inserire tutta una formula) è leggermente un pelo complesso: dovresti lavorare con la stringa e ricondurre il problema ad operazioni binarie, cercando in un primo mento le parentesi, poi svolgere le moltiplicazioni e divisioni ed infine somma e sottrazioni. Il "complesso" sta nel fatto che una volta che svolgi un'operazione, l'equazione cambia e quindi devi trovare la soluzione più adatta, come ad esempio modificare la stringa e svolgerla in modo ricorsivo finchè non si rimane solo con il risultato.

    Ma questa soluzione chiede più complessità nella manipolazione della stringa che nell'effettuare i calcoli...

    Fai qualche tentativo e fammi sapere!
  • Re: Calcolatrice JAVA

    Buongiorno, no il "problema" è che utilizzando il wizard della grafica non riesco a calcolare più di due numeri, mentre senza il wizard ci riesco.
    Nel caso della calcolatrice scentifica è ancora un po complesso al momento.
Devi accedere o registrarti per scrivere nel forum
4 risposte