تصف هذه المقالة وظائف الآلة الحاسبة التي تنفذها Java. شاركه للرجوع إليه ، على النحو التالي:
حزمة awtdemo ؛ استيراد java.awt.borderlayout ؛ استيراد java.awt.color ؛ استيراد java.awt.gridlayout ؛ استيراد java.awt.event.actionevent ؛ import java.awt.event.actionlistener ؛ import javax.swing.jbutton ؛ javax.swing.jtextfield ؛ suppressWarnings ("Serial") يقوم حاسبة الفئة العامة بتوسيع JFrame تنفذ ActionListener {private Final String [] keys = {"7" ، "8" ، "9" ، "،" ، "،" ، "،" ، "،" ، "،" ، "،" ، "،" ، "،" ، "،" ، "،" ، "،" ، "،" ، "،" ، "،" ، "،" ، "،" ، "،" ، "،" ، "،" ، "،" ، "0" ، "+/-" ، "." ، "+" ، "="} ؛ سلسلة نهائية خاصة [] command = {"Backspace" ، "CE" ، "C"} ؛ KBUTTON KEYS [] = New JButton [keys.length] ؛ أوامر jButton الخاصة [] = new jbutton [command.length] ؛ Private JTextField ResultText = New JTextField ("0") ؛ BOOLEAN الخاص الأول = صحيح ؛ نتيجة مزدوجة خاصة = 0.0 ؛ سلسلة خاصة = "=" ؛ oweratorvalidflag adporatorValidFlag الخاص = صحيح ؛ حاسبة عامة () {init () ؛ this.setbackground (color.light_gray) ؛ this.settitle ("www.vevb.com - الآلة الحاسبة") ؛ this.setLocation (500 ، 300) ؛ this.setResible (false) ؛ this.pack () ؛ } private void init () {resultText.SethorizontalAlignment (jtextfield.right) ؛ resultText.setedable (false) ؛ resultText.SetBackground (color.hite) ؛ jpanel calckeyspanel = new jpanel () ؛ calckeyspanel.setLayout (New GridLayout (4 ، 5 ، 3 ، 3)) ؛ لـ (int i = 0 ؛ i <keys.length ؛ i ++) {keys [i] = new jbutton (keys [i]) ؛ calckeyspanel.add (Keys [i]) ؛ Keys [i] .setForeground (color.blue) ؛ } مفاتيح [3] .SetForeGround (color.red) ؛ Keys [8] .SetForeground (color.red) ؛ Keys [13] .SetForeground (color.red) ؛ Keys [18] .SetForeground (color.red) ؛ Keys [19] .SetForeground (color.red) ؛ jpanel commandspanel = new jpanel () ؛ commandspanel.setLayout (New GridLayout (1 ، 3 ، 3 ، 3)) ؛ لـ (int i = 0 ؛ i <command.length ؛ i ++) {commands [i] = new jbutton (command [i]) ؛ commandspanel.add (الأوامر [i]) ؛ الأوامر [i] .setForeground (color.red) ؛ } jpanel panel1 = new JPanel () ؛ Panel1.setLayout (New BorderLayout (3 ، 3)) ؛ Panel1.Add ("North" ، commandspanel) ؛ Panel1.Add ("West" ، calckeyspanel) ؛ JPanel Top = New JPanel () ؛ Top.setLayout (New BorderLayout ()) ؛ Top.Add ("Center" ، resultText) ؛ getContentPane (). setLayout (New BorderLayout (3 ، 5)) ؛ getContentPane (). add ("north" ، top) ؛ getContentPane (). add ("center" ، panel1) ؛ لـ (int i = 0 ؛ i <keys.length ؛ i ++) {keys [i] .adDActeListener (this) ؛ } لـ (int i = 0 ؛ i <command.length ؛ i ++) {commands [i] .adDActeListener (this) ؛ }} public void actionperformed (ActionEvent e) {string label = e.getActionCommand () ؛ if (label.equals (command [0])) {wallebackspace () ؛ } آخر if (label.equals (command [1])) {resultText.settext ("0") ؛ } آخر إذا (label.equals (command [2])) {handlec () ؛ } آخر إذا ("0123456789.". indexof (label)> = 0) {handlenumber (label) ؛ } آخر {handleOperator (label) ؛ }} private void wallbackspace () {string text = resultText.getText () ؛ int i = text.length () ؛ if (i> 0) {text = text.substring (0 ، i - 1) ؛ if (text.length () == 0) {resultText.settext ("0") ؛ FirstDigit = صحيح ؛ المشغل = "=" ؛ } آخر {resultText.settext (text) ؛ }}} private void handlenber (string key) {if (firstDigit) {resultText.settext (key) ؛ } آخر إذا ((key.equals (". } آخر if (! key.equals (".")) {resultText.settext (resultText.getText () + Key) ؛ } firstDigit = false ؛ } private void handlec () {resultText.settext ("0") ؛ FirstDigit = صحيح ؛ المشغل = "=" ؛ } private void handleOperator (string key) {if (compator.equals ("/")) {if (getNumberFromText () == 0.0) {propratorValidFlag = false ؛ resulttext.settext ("لا يمكن أن يكون الطلاق صفراً") ؛ } آخر {resultNum /= getNumberFromText () ؛ }} آخر if (complator.equals ("1/x")) {if (resultNum == 0.0) {portorvalidflag = false ؛ resultText.settext ("Zero ليس لها أي تبادل") ؛ } آخر {resultNum = 1 / resultNum ؛ }} if if (corpator.equals (" +")) {resultNum += getNumberFromText () ؛ } if if (compator.equals (" -")) {resultNum -= getNumberFromText () ؛ } if if (compator.equals (" *")) {resultNum *= getNumberFromText () ؛ } if if (compator.equals (" *")) {resultNum *= getNumberFromText () ؛ } if if (compator.equals (" *")) {resultNum *= getNumberFromText () ؛ } if if (compator.equals (" *")) {resultNum *= getNumberFromText () ؛ } آخر إذا (compator.equals ("sqrt")) {resultNum = math.sqrt (resultNum) ؛ } آخر إذا (المشغل. } آخر إذا (compator.equals ("+/-")) {resultNum = resultNum * (-1) ؛ } آخر إذا (المشغل } if (operatevalidflag) {long t1 ؛ مزدوج T2 ؛ T1 = (طويل) النتائج ؛ T2 = resultNum - T1 ؛ if (t2 == 0) {resultText.settext (string.valueof (t1)) ؛ } آخر {resultText.settext (string.valueof (resultNum)) ؛ }} عامل = مفتاح ؛ FirstDigit = صحيح ؛ Operatevalidflag = صحيح ؛ } private double getNumberFromText () {double result = 0 ؛ حاول {result = double.valueof (resultText.getText ()). doublevalue () ؛ } catch (numberFormatexception e) {} return return ؛ } public static void main (String args []) {calculator calculate1 = new calculator () ؛ calculate1.setVisible (true) ؛ calculate1.setDefaultCloseOperation (jframe.exit_on_close) ؛ }}تأثير الجري:
ملاحظة: فيما يلي بعض أدوات الحساب لتشير إلى:
أداة حساب حلول أحادية الإنترنت (Eq) عبر الإنترنت:
http://tools.vevb.com/jisuanqi/equ_jisuanqi
الآلة الحاسبة العلمية عبر الإنترنت use_advanced calculator calculator على الإنترنت:
http://tools.vevb.com/jisuanqi/jsqkeexue
الآلة الحاسبة على الانترنت calculator_standard:
http://tools.vevb.com/jisuanqi/JSQ
لمزيد من المعلومات حول خوارزميات Java ، يمكن للقراء المهتمين بهذا الموقع عرض الموضوعات: "بنية بيانات Java وبرنامج تعليمي الخوارزمية" ، "ملخص" Tips Java ".
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.