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;