Разработка программы "Цифровой калькулятор"
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
ack); // задаём цвет названия кнопки(i==0) // если i=0, тогда выполняется метод addActionListener (new InsertAction ()) кнопки button, добавляющий новый объект класса InsertAction
{. addActionListener (new InsertAction ()); } // обработка нажатия кнопки передаётся классу InsertAction (), заполняется переменная input(i==1) // если i=1, тогда выполняется метод addActionListener кнопки button
{. addActionListener (new CommandAction ());
}. add (button); // добавляем кнопку button на компоненту (область) panel
}class InsertAction implements ActionListener // создадим класс InsertAction, поддерживающий интерфейс ActionListener (обрабатывает нажатие на клавиши 1,2,3,4 и т.д.)
{void actionPerformed (ActionEvent event) // напишем метод actionPerformed как это требует ActionListener
{input=event. getActionCommand (); // создадим переменную, хранящую введённую команду (getActionCommand () - метод с помощью которого можно получить значение нажатой кнопки) (start)
{display. setText (""); // присвоим переменной display значение пустой стороки
start=false; }(! input. equals (". ") || (display. getText (). lastIndexOf (". ") <0)) // проверка на вторую точку
display. setText (display. getText () +input); // присвоим переменной display значение предыдущей и следующей строки
}
}
private class CommandAction implements ActionListener // создадим класс CommandAction, поддерживающий интерфейс ActionListener (обрабатывает нажатие на клавиши действия)
{
public void actionPerformed (ActionEvent event) // напишем метод actionPerformed как это требует ActionListener
{
String command=event. getActionCommand (); (); // создадим переменную, хранящую введённую команду (getActionCommand () - метод с помощью которого можно получить значение нажатой кнопки)
if (start)
{(command. equals ("-")) // если переменная command содержит знак минус
{display. setText (command); // присвоим переменной display значение переменной command=false;
}lastCommand=command; // иначе присвоим переменной lastCommand значение переменной command
{if (! display. getText (). equals ("-")) // выполняем метод calculate, если display. getText () не содержит знак -(Double. parseDouble (display. getText ())); // иначе метод calculate проведёт все расчёты; передаём методу calculate действительное значение, получаемое преобразованием строки в число (Double. parseDouble)=command; // присвоим переменной lastCommand значение переменной command=true;
}
}
}void calculate (double x) // создадим (опишем) метод calculate
{double y=Math. toRadians (x); // переводим радианы в градусы
if (lastCommand. equals ("+")) result+=x; // if (lastCommand. equals ("-")) result-=x;if (lastCommand. equals ("*")) result*=x;if (lastCommand. equals ("/")) result/=x;if (lastCommand. equals ("X^2")) result=Math. pow (x,2);if (lastCommand. equals ("1/x")) result=1/x;if (lastCommand. equals ("%")) result=x/100;if (lastCommand. equals ("X^3")) result=Math. pow (x,3);if (lastCommand. equals ("sqrt")) result=Math. sqrt (x);if (lastCommand. equals ("sin")) result=Math. sin (y);if (lastCommand. equals ("cos"))
{ if (x==90) result=0; else=Math. cos (y);
}if (lastCommand. equals ("tan")) result=Math. tan (y);if (lastCommand. equals ("=")) result=x;if (lastCommand. equals ("ctg")) result=1/ (Math. tan (y));if (lastCommand. equals ("Asin")) result= (180/Math. PI) * (Math. atan (x/Math. sqrt (1 - x*x)));if (lastCommand. equals ("Acos"))= (180/Math. PI) * ( (Math. PI / 2 - (Math. atan (x/Math. sqrt (1 - x*x)))));if (lastCommand. equals ("Atan")) result= (180/Math. PI) * (Math. atan (x));if (lastCommand. equals ("LN")) result=Math. log (x);if (lastCommand. equals ("Log")) result=Math. log (x);if (lastCommand. equals ("10^x"))
{double S=1;(double u=1; u<=x; u++)=10*S;=S;
}if (lastCommand. equals ("Exp")) result=Math. exp (x);if (lastCommand. equals ("X^Any"))
{ss=JOptionPane. showInputDialog
("Выберете степень");
int ii=Integer. parseInt (ss);
result=Math. exp (ii* (Math. log (x)));=Math. round (result*100) /100;
}else if (lastCommand. equals ("n!"))
{ double P=1;(int t=1; t<=x; t++)
P=t*P;=P;
} else if (lastCommand. equals ("y%x"))
{qq=JOptionPane. showInputDialog
("Выберете желаемый процент от числа");
double ww=Double. parseDouble (qq);=x*ww/100;
}. setText (" "+result); // присвоим значение result переменной display для вывода на экран
}
}
руководство пользователь программа калькулятор
Алгоритмы
Алгоритм №1.
Алгоритм №2.
Алгоритм №3.
Тестовые примеры
1)Скриншот программы.
2)Вычитание. (12-5=7)
3)Возведение x в любую степень (X^Y). (2^5=32)
4)Вычисление синуса числа x (sin (x)) (sin (90) =1)
5)Вычисление y процентов от числа x (Y%X) (11% от 300=33)
6)Вычисление факториала числа x (x!; x={N}) (7! =5040)
Источники
1.">
2.-.">
.)">Видео уроки Java от Teach Pro (
.">