Моделювання роботи калькулятора на java
Java: Статті Моделювання роботи калькулятора на Java
Метою даної статті є опис роботи найпростішого калькулятора на мові Java. Завдання полягає в побудові моделі найпростішого калькулятора на Java, що виконує операції додавання, множення, віднімання і ділення.
Проект розроблений в JBuider. Середа OpenTools, доступна в JBuilder, створена на Java і має багато функцій, наприклад, може зареєструвати новий запис в меню, новий тип файлу, новий переглядач, шукати email в web та багато іншого. Як правило, OpenTools використовує методи, які є частиною JBuilder's OpenTools API (Application Programming Interface) інтерфейсу програмування додатків.
Проект super.jpx складається з двох файлів:- основного файлу soop.java містить код самої програми;
- файлу 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