Разработка программы "Цифровой калькулятор"

 

Содержание


Введение

Руководство пользователя

Листинг программы

Алгоритмы

Тестовые примеры

Источники

Введение


1)Объектно-ориентированный подход.

Объектно-ориентированное программирование или ООП (object-oriented programming) - методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из который является реализацией определенного типа, использующая механизм пересылки сообщений и классы, организованные в иерархию наследования.

Класс является описываемой на языке терминологии (пространства имён <#"justify">2)Язык программирования Java.

Java - объектно-ориентированный язык программирования <#"justify">·поддержка шаблонов (начиная с версии 1.5);

·параллельное выполнение программ.

Классификация платформ Java

Внутри Java существуют несколько основных семейств технологий:

·J2EE <#"justify">Самыми популярными считаются серверные технологии семейства J2EE.

Последним релизом является версия 1.6, в которой было произведено улучшение системы безопасности, улучшение поддержки XML <#"center">Руководство пользователя


Содержание:

1.Управление

Осуществляется только манипулятором мышь.

.Меню

Меню программы активируется нажатием на кнопку Файл". Далее мышкой можно выбрать соответствующие подменю: Информация о калькуляторе (где можно посмотреть версию и разработчика и выход (с помощью которого можно завершить работу приложения)

Функции:

·Основные (Элементарные)

·Математические

·Тригонометрические

Основные (Элементарные):

§Вычитание (-)

§Сложение (+)

§Деление (/)

§Умножение (*)

Математические:

§Вычисление числа обратного x (1/x)

§Вычисление квадрата числа x (x^2)

§Извлечение квадратного корня из x ()

§Вычисление процента (X%)

§Вычисление натурального логарифма (Ln (x))

§Возведение x в любую степень (X^Y)

§Вычисление экспоненты числа x (Exp (x))

§Вычисление факториала числа x (n!;! =x)

§Вычисление y процентов от числа x (Y%X)

§Вычисление куба числа x (x^3)

§Возведение 10 в степень числа x (10^x)

Тригонометрические:

1)Обычные:

§Вычисление синуса числа x (sin (x))

§Вычисление косинуса числа x (cos (x))

§Вычисление тангенса числа x (tan (x))

§Вычисление котангенса числа x (ctg (x))

2)Обратные:

§Вычисление арксинуса числа x (Asin (x))

§Вычисление арккосинуса числа x (Acos (x))

§Вычисление арктангенса числа x (Atan (x))

4. Дополнительные замечания:

Перед использованием математических функций следует удостовериться, что калькулятор завершил предыдущую операцию. Для этого нужно предварительно несколько раз щёлкнуть мышкой по выбранной кнопке, реализующей нужную математическую функцию.


Листинг программы


import javax. swing. *; // импортируем пакет swing для работы с графическим интерфейсом (для всех ОС)

import java. awt. *; // импортируем пакет awt для работы с графическим интерфейсом (для определённых ОС)

import java. awt. event. *; // импортируем класс event для обработки событий

import java. math. *; // импортируем пакет math для работы с математическими функциями

public class Калькулятор // создаём новый класс Калькулятор

{

public static void main (String [] args) // метод main позволяет начать работу в консольном окне

{

System. out. println ("It is program calculator (Version 1; Developer - Dyakonov A. V.)"); // метод println выводит на консольное окно строку в ()

MyFrame frame=new MyFrame (); // создаём экземпляр класса MyFrame

frame. setBackground (Color. blue); // задаём цвет фона. setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); // метод setDefaultCloseOperation завершает работу приложения. show (); // метод show рисует наш frame

}

}MyFrame extends JFrame // создаём новый класс MyFrame на основе класса JFrame

{

public MyFrame () // указываем конструктор класса MyFrame

{

setTitle ("Калькулятор"); // задаём имя заголовка

Container pane= getContentPane (); // группируем компоненты

MyPanel panel= new MyPanel (); // создаём экземпляр класса MyPanel

pane. add (panel); // добавляем компоненту panal

setSize (350,350); // задаём размер фрэйма

JMenu fileMenu=new JMenu ("Файл"); // создаём экземпляр класса JMenunewItem=fileMenu. add

("Информация о калькуляторе: Версия 1; Разработчик - Дьяконов А.В. ");

fileMenu. addSeparator ();exitItem=fileMenu. add (new AbstractAction ("Выход")

{void actionPerformed (ActionEvent event)

{System. exit (0);

}

});menuBar=new JMenuBar ();(menuBar);. add (fileMenu);

}

}MyPanel extends JPanel // создаём новый класс MyPanel на основе класса JPanel

{JLabel display; // создаём поле JLabel для компоненты display (текстовое поле)JPanel panel; // создаём поле JPanel для компоненты panelboolean start; // создаём переменную start типа boolean String lastCommand; // создаём переменную, хранящую значение последней введённой команды

private double result; // создаём переменную для хранения результата

public MyPanel () // указываем конструктор класса MyPanel

{

setLayout (new BorderLayout ()); // разместим компоненту текстового типа (компонента BorderLayout () делит панель на две части)

start=true; // проинициализируем переменную start

result=0;

lastCommand="=";=new JLabel ("0"); // создаём компоненту display(display,BorderLayout. NORTH); // добавляем объект display на frame. setBackground (Color. green);=new JPanel (); // проинициализируем компоненту panel. setLayout (new GridLayout (10,4)); // задаём сеточную компановку

// добавим все необходимые кнопки на окно нашего калькулятора

addButton ("7",0);

addButton ("8",0);

addButton ("9",0);

addButton ("/",1);

addButton ("4",0);

addButton ("5",0);

addButton ("6",0);

addButton ("*",1);

addButton ("1",0);

addButton ("2",0);

addButton ("3",0);

addButton ("-",1);

addButton ("0",0);

addButton (". ",0);

addButton ("=",1);

addButton ("+",1);

addButton ("X^2",1);

addButton ("sqrt",1);

addButton ("1/x",1);("%",1);("sin",1);("cos",1);

addButton ("tan",1);("ctg",1);("X^Any",1);("Asin",1);("Acos",1);("Atan",1);("X^3",1);("LN",1);("Exp",1);("n!",1);("y%x",1);("10^x",1);(panel,BorderLayout. CENTER); // добавим нашу компоненту (область) в середину

}

private void addButton (String s, int i) // создадим метод addButton (метод addButton создаёт кнопки)

{

JButton button=new JButton (s); // создаём объект button (кнопку) класса JButton

button. setBackground (Color. white); // задаём цвет кнопки. setForeground (Color. black); // задаём цвет названия кнопки(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.http://ru. wikipedia.org/wiki/Java# <http://ru.wikipedia.org/wiki/Java>

2.http://ru. wikipedia.org/wiki/ Объектно <http://ru.wikipedia.org/wiki/%20Объектно>-ориентированное программирование.

.Видео уроки Java от Teach Pro (http://videoshkola.com/video-uroki-programmirovaniya/video-uroki-java. htm <http://videoshkola.com/video-uroki-programmirovaniya/video-uroki-java.htm>)

.http://www.ctc. msiu.ru/materials/Book/node82.html <http://www.ctc.msiu.ru/materials/Book/node82.html>


Содержание Введение Руководство пользователя Листинг программы Алгоритмы Тестовые примеры Источники Введение 1)Объектно-ориентир

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ