Класс клавиатурного калькулятора(javaFX)



public class FXMLCalculatorController implements Initializable {

@FXML

private TextArea t;

@FXML

private TextField e;

float[]m;

float result;

int i=-1;

int[]oper;

@FXML

private void resultButton(ActionEvent event) {

resultate();

}

@FXML

private void plus(ActionEvent event){

fb(1,"+");

}

@FXML

private void minus(ActionEvent event){

fb(2, "-");

}

@FXML

private void gPlus(ActionEvent event){

fb(3, "*");

}

@FXML

private void gMinus(ActionEvent event){

fb(4, "/");

}

@FXML

private void clean(ActionEvent event){

clean();

}

@FXML

private void keyAction(KeyEvent event){

switch(event.getText()){

case "+":

fb(1, "+");

break;

case "-":

fb(2, "-");

break;

case "*":

fb(3, "*");

break;

case "/":

fb(4, "/");

break;

case "=":

resultate();

break;

case "c":

clean();

break;

case "с":

clean();

break;

default:

break;

}

if(event.getCode().getName().equals("Enter")){

resultate();

}

if(event.getCode().getName().equals("Delete")){

clean();

}

}

@FXML

private void keyPostAction(KeyEvent event){

if(event.getText().equals("*")||event.getText().equals("/")||

event.getText().equals("c")||event.getText().equals("с")) {

e.setText("");

}

if(e.getText().contains("=")){

e.setText(e.getText().substring(1));

}

}

void resultate(){

i++;

if(i>19){

alertWindow("Угроза переполнения!","Внимание!");

return;

}

try{

m[i]=Float.parseFloat(e.getText());

}catch(NumberFormatException ex){

ex.getMessage();

i–;

e.setText("");

e.requestFocus();

return;

}

t.appendText(m[i]+"=");

switch (oper[0]){

case 1:result=m[0]+m[1];break;

case 2:result=m[0]-m[1];break;

case 3:result=m[0]*m[1];break;

case 4:result=m[0]/m[1];break;

}

for (int j=1;j<i+1;j++){

switch (oper[j]){

case 1:result+=m[j+1];break;

case 2:result-=m[j+1];break;

case 3:result*=m[j+1];break;

case 4:result/=m[j+1];break;

}

}

e.setText(result+"");

}

void fb(int n,String s){

i++;

if(i>18){

i–;

alertWindow("Угроза переполнения!","Внимание!");

return;

}

try{

m[i]=Float.parseFloat(e.getText());

}catch(NumberFormatException ex){

ex.getMessage();

i–;

e.setText("");

e.requestFocus();

return;

}

e.setText("");

e.requestFocus();

oper[i]=n;

t.appendText(m[i]+""+s);

}

void clean(){

i=-1;

result=0;

m=new float[20];

oper=new int[20];

t.setText("");

e.setText("");

e.requestFocus();

}

void alertWindow(String s,String str){

Alert alert = new Alert(AlertType.INFORMATION);

alert.setTitle(str);

alert.setHeaderText(null);

alert.setContentText(s);

alert.showAndWait();

}

@Override

public void initialize(URL url, ResourceBundle rb) {

m=new float[20];

oper=new int[20];

e.requestFocus();

}

}

Консольный калькулятор

public class CalculatorConsole {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

String answer,symbol;

float num1=0,num2=0,result=0;

Scanner sc=new Scanner(System.in);

do{

System.out.println("Первое число:");

try{

num1=sc.nextFloat();

}catch(Exception e){

System.out.println("Некорректное значение");

return;

}

Scanner scSymb=new Scanner(System.in);

System.out.println("Знак:");

symbol=scSymb.nextLine();

if(!"+".equals(symbol)&&!"-".equals(symbol)&&!"*".equals(symbol)&&!"/".equals(symbol)){

System.out.println("Некорректный символ");

return;

}

System.out.println("Второе число:");

try{

num2=sc.nextFloat();

}catch(Exception e){

System.out.println("Некорректное значение");

return;

}

switch(symbol){

case "+":

result=plus(num1, num2);

break;

case "-":

result=minus(num1, num2);

break;

case "*":

result=multiPlus(num1, num2);

break;

case "/":

result=multiMinus(num1, num2);

break;

default:

break;

}

System.out.println(num1+symbol+num2+"="+result);

Scanner scAns=new Scanner(System.in);

System.out.println("Начать заново?(д/н)");

answer=scAns.nextLine();

if(!"д".equals(answer)&&!"y".equals(answer)){

System.out.println("Работа программы завершена");

return;

}

}while ("д".equals(answer)||"y".equals(answer));

}

static float plus(float a,float b){

return a+b;

}

static float multiPlus(float a,float b){

return a*b;

}

static float minus(float a,float b){

return a-b;

}

static float multiMinus(float a,float b){

return a/b;

}

}

Запуск браузера(android)

Uri wp = Uri.parse("http://www.сайт");

Intent webIntent = new Intent(Intent.ACTION_VIEW, wp);

startActivity(webIntent);


Дата добавления: 2019-02-12; просмотров: 154; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!