Калькулятор на Java

Мы должны написать программу на Java таким образом, чтобы она создавала калькулятор, который позволяет выполнять основные операции сложения, вычитания, умножения и деления.

Ожидаемые входные и выходные данные

Для создания калькулятора мы можем иметь следующие различные наборы входных и выходных данных.

Сложение:

При вводе выражения сложения «98+102» ожидается, что результат будет отображаться как «98+102=200,0».

Вычитание:

При вводе выражения вычитания «200.0-58.75» ожидается, что результат будет отображаться как «200.0-58.75=141.25».

Умножение:

При вводе выражения умножения «141.25*20» ожидается, что результат будет отображаться как «141.25*20=2825.0».

Для выполнения деления : Когда знаменатель не равен нулю

При вводе выражения деления «2825.0/5» ожидается, что результат будет отображаться как «2825.0/5=565.0».

Для выполнения деления : Когда знаменатель равен нулю

При вводе выражения деления «565.0/0» ожидается, что ошибка будет отображаться как «565.0/0=Нулевая Ошибка деления».

Решение проблемы

  1. Создайте текстовое поле для принятия выражения и отображения выходных данных.
  2. Создайте кнопки для цифр и десятичной точки.
  3. Создайте кнопку, чтобы очистить полное выражение.
  4. Создайте кнопки для операций, то есть для сложения, вычитания, умножения и деления, а также кнопку равенства для вычисления результата.
  5. Добавьте ActionListener ко всем кнопкам.
  6. Вычислите результат и отобразите его в текстовом поле.

Программа/Исходный Код

Вот исходный код Java-программы для создания базового калькулятора. Программа успешно скомпилирована и протестирована с помощью компилятора. Выходные данные программы также показаны ниже.

/*Программа для демонстрации базового калькулятора с помощью апплета*/
importjava.awt.*;
importjava.applet.*;
importjava.awt.event.*;
public class Калькулятор расширяет апплет и реализует ActionListener
{
TextFieldinp;
//Функция добавления объектов в кадр
publicvoidinit()
{
setBackground(Color.black);
setLayout(null);
int i;
inp = new TextField();
inp.setBounds(150,100,270,50);
this.add(inp);
Button button[] = new Button[10];
for(i=0;i<10;i++)
{
button[i] = new Button(String.valueOf(9-i));
button[i].setBounds(150+((i%3)*50),150+((i/3)*50),50,50);
this.add(button[i]);
button[i].addActionListener(this);
}
Button dec=new Button(«.»);
dec.setBounds(200,300,50,50);
this.add(dec);
dec.addActionListener(this);

Button clr=new Button(«C»);
clr.setBounds(250,300,50,50);
this.add(clr);
clr.addActionListener(this);

Button operator[] = new Button[5];
operator[0]=new Button(«/»);
operator[1]=new Button(«*»);
operator[2]=new Button(«-«);
operator[3]=new Button(«+»);
operator[4]=new Button(«=»);
for(i=0;i<4;i++)
{
operator[i].setBounds(300,150+(i*50),50,50);
this.add(operator[i]);
operator[i].addActionListener(this);
}
operator[4].setBounds(360,310,80,60);
this.add(operator[4]);
operator[4].addActionListener(this);
}
String number1=»»;
String op=»»;
String number2=»»;
//Функция для вычисления выражения
public void actionPerformed(ActionEvent e)
{
String button = e.getActionCommand();
charch = button.charAt(0);
if(ch>=’0′ &&ch<=’9’|| ch==’.’)
{
if (!op.equals(«»))
number2 = number2 + button;
else
number1 = number1 + button;
inp.setText(number1+op+number2);
}
else if(ch==’C’)
{
number1 = op = number2 = «»;
inp.setText(«»);
}
else if (ch ==’=’)
{
if(!num1.equals(«») && !number2.equals(«»))
{
double temp;
double n1=Double.parseDouble(number1);
double n2=Double.parseDouble(number2);
if(n2==0 &&op.equals(«/»))
{
inp.setText(number1+op+number2+» = Ошибка деления на ноль»);
number1 = op = number2 = «»;
}
else
{
if (op.equals(«+»))
temp = n1 + n2;
else if (op.equals(«-«))
temp = n1 — n2;
else if (op.equals(«/»))
temp = n1/n2;
else
temp = n1*n2;
inp.setText(num1+op+num2+» = «+temp);
num1 = Double.toString(temp);
op = num2 = «»;
}
}
else
{
num1 = op = num2 = «»;
inp.setText(«»);
}
}
else
{
if (op.equals(«») || number2.equals(«»))
op = button;
else
{
double temp;
double n1=Double.parseDouble(number1);
double n2=Double.parseDouble(number2);
if(n2==0 &&op.equals(«/»))
{
inp.setText(number1+op+number2+» = Zero Division Error»);
number1 = op = number2 = «»;
}
else
{
if (op.equals(«+»))
temp = n1 + n2;
else if (op.equals(«-«))
temp = n1 — n2;
else if (op.equals(«/»))
temp = n1/n2;
else
temp = n1*n2;
number1 = Double.toString(temp);
op = button;
number2 = «»;
}
}
inp.setText(number1+op+number2);
}
}
}
/*
<applet code = Calculator.class width=600 height=600>
</applet>
*/

Объяснение программы

  1. При нажатии любой кнопки на калькуляторе вызывается функция actionPerformed. Получите кнопку, нажатую с помощью getActionCommand.
  2. Если нажатая кнопка представляет собой цифру или десятичную точку, то выполняется одно из следующих действий :
    а) Цифра соединяется со вторым числом, если оператор не был встречен.
    б) В противном случае цифра соединяется с первым числом.
  3. Если кнопка находится на кнопку «очистить», затем очистить поле ввода.
  4. Если нажатая кнопка является оператором equals, то выполняется одно из следующих действий :
    а) Если ни первое, ни второе число не пусто, то вычислите результат и отобразите его в кадре
    б) В противном случае очистите поле ввода.
  5. При нажатии любой из кнопок {+,-,*,/} выполняется одно из следующих действий :
    а) Если либо оператор, либо второй номер пуст, то установите нажатую кнопку в качестве оператора.
    б) В противном случае вычислите результат и отобразите его в кадре.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *