|
|
|
|    [ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ] |
|
|
Моделирование работы калькулятора на JavaЦелью данной статьи является описание работы простейшего калькулятора на языке Java. Задача состоит в построении модели простейшего калькулятора на Java, выполняющего операции сложения, умножения, вычитания и деления.
Проект разработан в JBuider. Среда OpenTools, доступная в JBuilder, создана на Java и имеет много функций, например, может зарегистрировать новую запись в меню, новый тип файла, новый вьювер, искать email в web и многое другое. Как правило, OpenTools использует методы, являющиеся частью JBuilder's OpenTools API (Application Programming Interface) интерфейса программирования приложений.
Проект super.jpx состоит из двух файлов:
В java - файле soop.java производится импортирование стандартных пакетов java.awt.*; java.awt.event.*; java.applet.*, а также вводится класс soop, декларированный как public.
Класс soop является наследником класса Applet, о чем говорит строка объявления soop extends Applet. Класс soop также связан с интерфейсом ActionListener который позволяет нам обрабатывать события происходящие с объектами Button. Каждый апплет должен быть проинициализирован это делается следующим образом
Далее приводятся описания переменных и массивов, используемых в программе.
Определяются и объявляются переменная num, означающая первое число, переменная buf, означающая второе число, переменная code, означающая код операции, строковая переменная str, а также переменная point, означающая наличие или отсутствие десятичной точки. Определяется массив из 17 элементов Button but[]. Создание объекта класса происходит при помощи констуктора new:
Далее создается панель для размещения кнопок
Кнопки располагаются по четыре в четыре ряда, одна кнопка располагается в пятом ряду, поэтому GridLayout имеет разметы 5*4, каждая кнопка размером 2*2. Создание кнопки происходит следующим образом: cначала с помощью конструктора new создается объект класса Button but[i], где i изменяется от 0 до 16.
Далее созданный при помощи конструктора new объект класса Button присоединяется к интерфейсу ActionListener, который в данном случае работает как метод с аргументом this.
Далее происходит добавление объекта but[0] к панели.
Аналогичные действия производятся с остальными элементами массива Button but[i], где i изменяется от 0 до 16. Затем работает метод add(pn), добавляющий панель к пользовательскому интерфейсу. Аргументом метода add(pn) является созданная панель кнопок pn.
Далее работает метод paint(Graphics gr) с аргументом gr типа Graphics. Этот метод рисует строку размером 10*15 с помощью метода drawString.
Далее работает метод actionPerformed(ActionEvent e) с аргументом e типа ActionEvent. Метод actionPerformed( ) связан с интерфейсом ActionListener.
Метод actionPerformed( ) осуществляет операции, связанные с кнопками. Переменная num определяет первое число, с которым производятся действия. Это число есть объект класса Float, создаваемый с помощью конструктора new
Переменная num есть число с плавающей точкой. Метод floatValue() переводит аргумент, находящийся в скобках - строковую переменную, в число с плавающей точкой. Следующие строки Java – кода показывают, как обрабатываются объекты класса Button – элементы массива but[i], где i изменяется от 0 до 16, при нажатии на соответствующую кнопку. Метод e.getSource() означает нажатие на кнопку, оператор if(e.getSource() и идущая далее в этой же строке операция логического сравнения == означает проверку, на какую кнопку производится нажатие.
Далее происходит проверка, не является ли кнопка, на которую производится нажатие, кодом операций вычитания (1), сложения (2), умножения (*), деления (/).
Далее производится проверка, не является ли кнопка, на которую производится нажатие, десятичной точкой, операций сброса, оператора равно.
На этом метод actionPerformed( ) завершает свою работу. Далее работает метод result(), в котором выполняются операции вычитания, сложения, умножения и деления. При этом производится проверка num!=0 для избежания ситуации деления на ноль.
Далее производится перевод полученного при вычислениях значения переменной num из числа с плавающей точкой в строковую переменную с помощью метода valueOf(num) с аргументом num:
Метод repaint() снова прорисовывает полученную строковую переменную.
На этом метод result() завершает свою работу. Метод sbros() выполняет функции сброса, то есть прорисовывает нуль на месте предыдущей строковой переменной:
Метод zero() работает с ненулевой строкой. Если строка не является нулевой (str!="0"), то к строковой переменной str добавляется строковая константа "0". Полученная строка снова прорисовывается с помощью метода repaint().
Метод chislo() работает с нулевой строкой. Если строка является нулевой (str=="0"), то к строковой переменной str добавляется строковая переменная s. Полученная строка снова прорисовывается с помощью метода repaint().
Метод pnt() работает с десятичной точкой. Если строка не содержит десятичной точки (point == false), то к строковой переменной str добавляется строковая десятичная точка ".". Логической переменной point присваивается значение true. Полученная строка снова прорисовывается с помощью метода repaint().
[ вверх ]
Ваш комментарий к данному материалу будет интересен нам и нашим читателям!
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| © WWW.COMPROG.RU ® Все о программировании - 2009 | Designed and Powered by Zaipov Renat | Разное |
|