Моделювання роботи калькулятора на java

Java: Статті Моделювання роботи калькулятора на Java

Метою даної статті є опис роботи найпростішого калькулятора на мові Java. Завдання полягає в побудові моделі найпростішого калькулятора на Java, що виконує операції додавання, множення, віднімання і ділення.

Проект розроблений в JBuider. Середа OpenTools, доступна в JBuilder, створена на Java і має багато функцій, наприклад, може зареєструвати новий запис в меню, новий тип файлу, новий переглядач, шукати email в web та багато іншого. Як правило, OpenTools використовує методи, які є частиною JBuilder's OpenTools API (Application Programming Interface) інтерфейсу програмування додатків.

Проект super.jpx складається з двох файлів:
  1. основного файлу soop.java містить код самої програми;
  2. файлу soop.html - в якому здійснюється виклик аплету, а також описуються його параметри.

У java - файлі soop.java проводиться імпортування стандартних пакетів java.awt. *; java.awt.event. *; java.applet. *, а також вводиться клас soop, декларований як public.

Кожен аплет повинен бути ініціалізованим першим це робиться в такий спосіб

Далі наводяться опису змінних і масивів, використовуваних в програмі.

Визначаються і оголошуються змінна 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 ().


Warning. mysql_connect () [function.mysql-connect]: Can not connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/books/show2b.php on line 11

Warning. mysql_db_query () [function.mysql-db-query]: Can not connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/books/show2b.php on line 19

Warning. mysql_db_query () [function.mysql-db-query]: A link to the server could not be established in /pub/home/javaport/javaportal/books/show2b.php on line 19

Warning. mysql_fetch_array (): supplied argument is not a valid MySQL result resource in /pub/home/javaport/javaportal/books/show2b.php on line 30
Дізнайся про що ти насправді зараз думаєш тут.


[An error occurred while processing this directive]


Warning. mysql_connect () [function.mysql-connect]: Can not connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/news/worldnews.php on line 91

Warning. mysql_db_query () [function.mysql-db-query]: Can not connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/news/worldnews.php on line 93

Warning. mysql_db_query () [function.mysql-db-query]: A link to the server could not be established in /pub/home/javaport/javaportal/news/worldnews.php on line 93

Warning. mysql_fetch_array (): supplied argument is not a valid MySQL result resource in /pub/home/javaport/javaportal/news/worldnews.php on line 95