Kalkulator

Kalkulator

Program: przedstawiający prosty kalkulator zawierający działania matematyczne.

Takie jak:

  • dodawanie,
  • odejmowanie,
  • mnożenie,
  • dzielenie,
  • silnia,
  • abs (wartość bezwzględną),
  • resztę z dzielenia (modulo),
  • pierwiastek,
  • potęgę,
  • logarytm o podstawie 10,
  • logarytm naturalny,
  • liczbę całkowitą z dzielenia,
  • obliczanie 100% na podstawie podanej liczby i procentu,
  • funkcje trygonometryczne wyliczane na podstawie radianów lub stopni,
  • zamianę radianów na stopnie i odwrotnie,

ponadto program posiada wbudowaną historię działań, którą można wyczyścić oraz resetowanie kalkulatora (C) jak i aktualnej wartości (CE).

Kompilator: Eclipse

Film:

Kod programu:

//Zmienne globalne
    float liczba1,liczba2,wynik;
    String buff;
    char znak;
    int dzialanie=0;
    int czysc=0;
//Mnożenie                                       
        liczba1=Float.parseFloat(jTextField1.getText());
        jTextField1.setText(" ");
        znak='*';
        dzialanie=0;
        jTextField2.setText(jTextField2.getText()+"*");
//Równa się                                        
        liczba2=Float.parseFloat(jTextField1.getText());
        jTextField2.setText(jTextField2.getText()+"=");
        switch(znak)
        {
            case '+':
            {
               wynik=liczba1+liczba2;
               buff=String.valueOf(wynik);
               jTextField1.setText(buff);
               jTextField2.setText(jTextField2.getText()+buff);
               break;
            }
            case '-':
            {
               wynik=liczba1-liczba2;
               buff=String.valueOf(wynik);
               jTextField1.setText(buff);
               jTextField2.setText(jTextField2.getText()+buff);
               break;
            }
            case '*':
            {
               wynik=liczba1*liczba2;
               buff=String.valueOf(wynik);
               jTextField1.setText(buff);
               jTextField2.setText(jTextField2.getText()+buff);
               break;
            }
            case 'P':
            {
               wynik=(float) Math.pow(liczba1,liczba2);
               buff=String.valueOf(wynik);
               jTextField1.setText(buff);
               jTextField2.setText(jTextField2.getText()+buff);
               break;
            }
            case '%':
            {
               wynik=(liczba1*100)/liczba2;
               buff=String.valueOf(wynik);
               jTextField1.setText(buff);
               jTextField2.setText(jTextField2.getText()+buff);
               break;
            }
            case 'M':
            {
               wynik=liczba1%liczba2;
               buff=String.valueOf(wynik);
               jTextField1.setText(buff);
               jTextField2.setText(jTextField2.getText()+buff);
               break;
            }
            case 'D':
            {
               wynik=(int) (liczba1 / liczba2);
               buff=String.valueOf(wynik);
               jTextField1.setText(buff);
               jTextField2.setText(jTextField2.getText()+buff);
               break;
            }
            case '/':
            {
                if(liczba2==0)
                {
                     jTextField1.setText("BLAD");
                     czysc=1;
                }
                else
                {
                    wynik=liczba1/liczba2;
                    buff=String.valueOf(wynik);
                    jTextField1.setText(buff);
                    jTextField2.setText(jTextField2.getText()+buff);
                }
                break;
            }
        }
//CE                                      
        jTextField1.setText(" ");
//1                                         
        if(czysc==1)
            jTextField1.setText(" ");
        jTextField1.setText(jTextField1.getText()+"1");
        jTextField2.setText(jTextField2.getText()+"1");
        dzialanie=1;
//2                                        
        if(czysc==1)
            jTextField1.setText(" ");
        jTextField1.setText(jTextField1.getText()+"2");
        jTextField2.setText(jTextField2.getText()+"2");
        dzialanie=1;
//3                                        
        if(czysc==1)
            jTextField1.setText(" ");
        jTextField1.setText(jTextField1.getText()+"3");
        jTextField2.setText(jTextField2.getText()+"3");
        dzialanie=1;
//4                                        
        if(czysc==1)
            jTextField1.setText(" ");
        jTextField1.setText(jTextField1.getText()+"4");
        jTextField2.setText(jTextField2.getText()+"4");
        dzialanie=1;
//5                                         
        if(czysc==1)
            jTextField1.setText(" ");
        jTextField1.setText(jTextField1.getText()+"5");
        jTextField2.setText(jTextField2.getText()+"5");
        dzialanie=1;
//6                                        
        if(czysc==1)
            jTextField1.setText(" ");
        jTextField1.setText(jTextField1.getText()+"6");
        jTextField2.setText(jTextField2.getText()+"6");
        dzialanie=1;
//7                                          
        if(czysc==1)
            jTextField1.setText(" ");
        jTextField1.setText(jTextField1.getText()+"7");
        jTextField2.setText(jTextField2.getText()+"7");
        dzialanie=1;
//8                                        
        if(czysc==1)
            jTextField1.setText(" ");
        jTextField1.setText(jTextField1.getText()+"8");
        jTextField2.setText(jTextField2.getText()+"8");
        dzialanie=1;
//9                                          
        if(czysc==1)
            jTextField1.setText(" ");
        jTextField1.setText(jTextField1.getText()+"9");
        jTextField2.setText(jTextField2.getText()+"9");
        dzialanie=1;
//0                                      
        if(czysc==1)
            jTextField1.setText(" ");
        if(dzialanie==1)
        {
            jTextField1.setText(jTextField1.getText()+"0");
            jTextField2.setText(jTextField2.getText()+"0");
        }
//Odejmowanie                                          
        if(dzialanie==1)
        {
            liczba1=Float.parseFloat(jTextField1.getText());
            jTextField1.setText(" ");
            jTextField2.setText(jTextField2.getText()+"-");
            znak='-';
            dzialanie=0;
        }
        else
        {
            jTextField1.setText("-");
            jTextField2.setText(jTextField2.getText()+"-");
        }
//Dodawanie                                        
        liczba1=Float.parseFloat(jTextField1.getText());
        jTextField1.setText(" ");
        jTextField2.setText(jTextField2.getText()+"+");
        znak='+';
        dzialanie=0;
//Dzielenie                                          
        liczba1=Float.parseFloat(jTextField1.getText());
        jTextField1.setText(" ");
        jTextField2.setText(jTextField2.getText()+"/");
        znak='/';
        dzialanie=0;
//C                                         
        liczba1=0;
        liczba2=0;
        wynik=0;
        jTextField1.setText(" ");
        czysc=0;
        dzialanie=0;
//,                                      
        jTextField1.setText(jTextField1.getText()+".");
        jTextField2.setText(jTextField2.getText()+".");
        dzialanie=1;
//Pierwiastek                                         
         liczba1=Float.parseFloat(jTextField1.getText());
         jTextField1.setText(" "); 
         if(liczba1>=0)
         {
            wynik=(float) Math.sqrt(liczba1);
            liczba1=wynik;
            buff=String.valueOf(wynik);
            jTextField1.setText(buff);
            jTextField2.setText(jTextField2.getText()+" Sqrt="+buff);
        }
        else
         {
            jTextField1.setText("BLAD");
            czysc=1;
        }
//Potęga                                        
        liczba1=Float.parseFloat(jTextField1.getText());
        jTextField1.setText(" ");
        znak='P';
        jTextField2.setText(jTextField2.getText()+" Pow ");
        dzialanie=0;
//Procent                                          
        liczba1=Float.parseFloat(jTextField1.getText());
        jTextField1.setText(" ");
        znak='%';
        jTextField2.setText(jTextField2.getText()+"%");
        dzialanie=0;
//Log10                                         
         liczba1=Float.parseFloat(jTextField1.getText());
         jTextField1.setText(" ");
         dzialanie =1;
         if(liczba1>=0)
         {
            wynik=(float) Math.log10(liczba1);
            liczba1=wynik;
            buff=String.valueOf(wynik);
            jTextField1.setText(buff);
            jTextField2.setText(jTextField2.getText()+" log10="+buff);
         }
         else
         {
            jTextField1.setText("BLAD");
            czysc=1;
         }
//Ln                                         
         liczba1=Float.parseFloat(jTextField1.getText());
         jTextField1.setText(" ");
         dzialanie =1;
         if(liczba1>=0)
         {
            wynik=(float) Math.log(liczba1);
            liczba1=wynik;
            buff=String.valueOf(wynik);
            jTextField1.setText(buff);
            jTextField2.setText(jTextField2.getText()+" log="+buff);
         }
         else
         {
            jTextField1.setText("BLAD");
            czysc=1;
         }
//Silnia                                        
        liczba1=Float.parseFloat(jTextField1.getText());
        jTextField1.setText(" ");
        dzialanie =1;
        if(liczba1==0 || liczba1==1)
            wynik=1;
        else
        {
            wynik=1;
            for(int i=2;i<=liczba1;i++)
                wynik=wynik*i;
        }
        liczba1=wynik;
        buff=String.valueOf(wynik);
        jTextField1.setText(buff);
        jTextField2.setText(jTextField2.getText()+" Silnia="+buff);
//Sinus - radiany                                       
         liczba1=Float.parseFloat(jTextField1.getText());
         jTextField1.setText(" ");
         dzialanie =1;
         wynik=(float) Math.sin((liczba1*Math.PI)/180);
         liczba1=wynik;
         buff=String.valueOf(wynik);
         jTextField1.setText(buff);
         jTextField2.setText(jTextField2.getText()+" sin"+buff);
//Sinus - stopnie                                       
         liczba1=Float.parseFloat(jTextField1.getText());
         jTextField1.setText(" ");
         dzialanie =1;
         wynik=(float) Math.sin(liczba1);
         liczba1=wynik;
         buff=String.valueOf(wynik);
         jTextField1.setText(buff);
         jTextField2.setText(jTextField2.getText()+" sin="+buff);
//Cosinus - stopnie                                        
         liczba1=Float.parseFloat(jTextField1.getText());
         jTextField1.setText(" ");
         dzialanie =1;
         wynik=(float) Math.cos(liczba1);
         liczba1=wynik;
         buff=String.valueOf(wynik);
         jTextField1.setText(buff);
         jTextField2.setText(jTextField2.getText()+" cos="+buff);
//Tangens - stopnie                                        
         liczba1=Float.parseFloat(jTextField1.getText());
         jTextField1.setText(" ");
         dzialanie =1;
         wynik=(float) Math.tan(liczba1);
         liczba1=wynik;
         buff=String.valueOf(wynik);
         jTextField1.setText(buff);
         jTextField2.setText(jTextField2.getText()+" tan="+buff);
//Cotangens - stopnie                                        
         liczba1=Float.parseFloat(jTextField1.getText());
         jTextField1.setText(" ");
         dzialanie =1;
         if(liczba1!=0)
         {
            wynik= (float) (1 / (Math.tan(liczba1)));
            liczba1=wynik;
            buff=String.valueOf(wynik);
            jTextField1.setText(buff);
            jTextField2.setText(jTextField2.getText()+" ctg="+buff);
         }
         else
         {
            jTextField1.setText("BLAD");
            czysc=1;
         }
//Cosinus - radiany                                        
         liczba1=Float.parseFloat(jTextField1.getText());
         jTextField1.setText(" ");
         dzialanie =1;
         wynik=(float) Math.cos((liczba1*Math.PI)/180);
         liczba1=wynik;
         buff=String.valueOf(wynik);
         jTextField1.setText(buff);
         jTextField2.setText(jTextField2.getText()+" cos="+buff);
//Tangens - radiany                                        
         liczba1=Float.parseFloat(jTextField1.getText());
         jTextField1.setText(" ");
         dzialanie =1;
         wynik=(float) Math.tan((liczba1*Math.PI)/180);
         liczba1=wynik;
         buff=String.valueOf(wynik);
         jTextField1.setText(buff);
         jTextField2.setText(jTextField2.getText()+" tan="+buff);
//Cotangens - radiany                                         
        liczba1=Float.parseFloat(jTextField1.getText());
        jTextField1.setText(" ");
        dzialanie =1;
        if(liczba1!=0)
        {
            wynik=(float) (1/(Math.tan((liczba1*Math.PI)/180)));
            liczba1=wynik;
            buff=String.valueOf(wynik);
            jTextField1.setText(buff);
            jTextField2.setText(jTextField2.getText()+" ctg="+buff);
        }
        else
        {
            jTextField1.setText("BLAD");
            czysc=1;
        }
//Czyść historię                                       
        jTextField2.setText(" ");
//Abs                                         
         liczba1=Float.parseFloat(jTextField1.getText());
         jTextField1.setText(" ");
         dzialanie =1;
         wynik=Math.abs(liczba1);
         liczba1=wynik;
         buff=String.valueOf(wynik);
         jTextField1.setText(buff);
         jTextField2.setText(jTextField2.getText()+" abs="+buff);
//Radiany na stopnie                                         
         liczba1=Float.parseFloat(jTextField1.getText());
         jTextField1.setText(" ");
         dzialanie =1;
         wynik=(float) Math.toDegrees(liczba1);
         liczba1=wynik;
         buff=String.valueOf(wynik);
         jTextField1.setText(buff);
         jTextField2.setText(jTextField2.getText()+" Na stopnie="+buff);
//Stopnie na radiany                                         
         liczba1=Float.parseFloat(jTextField1.getText());
         jTextField1.setText(" ");
         dzialanie =1;
         wynik=(float) Math.toRadians(liczba1);
         liczba1=wynik;
         buff=String.valueOf(wynik);
         jTextField1.setText(buff);
         jTextField2.setText(jTextField2.getText()+" Na radiany="+buff);
//Modulo                                        
        liczba1=Float.parseFloat(jTextField1.getText());
        jTextField1.setText(" ");
        znak='M';
        jTextField2.setText(jTextField2.getText()+" Mod ");
        dzialanie=0;
//Div                                         
        liczba1=Float.parseFloat(jTextField1.getText());
        jTextField1.setText(" ");
        znak='D';
        jTextField2.setText(jTextField2.getText()+" Div ");
        dzialanie=0;