บทความนี้อธิบายฟังก์ชั่นเครื่องคิดเลขที่ใช้โดย Java แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
แพ็คเกจ awtdemo; นำเข้า java.awt.borderlayout; นำเข้า java.awt.color; นำเข้า java.awt.gridlayout; นำเข้า java.awt.event.actionevent; นำเข้า java.awt.event.ActionListener; javax.swing.jtextfield; @suppresswarnings ("serial") เครื่องคิดเลขคลาสสาธารณะขยาย jframe ใช้แอ็คชั่น {สตริงสุดท้ายส่วนตัว [] keys = {"7", "8", "9", "/", "sqrt", "4", "5", "6" "0", "+/-", ".", "+", "="}; สตริงสุดท้ายส่วนตัว [] command = {"backspace", "ce", "c"}; คีย์ jbutton ส่วนตัว [] = new Jbutton [keys.length]; คำสั่ง jbutton ส่วนตัว [] = new jbutton [command.length]; private jtextfield resultText = new jtextfield ("0"); บูลีนส่วนตัว firstDigit = true; ผลการเรียนสองครั้งส่วนตัว = 0.0; ตัวดำเนินการสตริงส่วนตัว = "="; ผู้ดำเนินการบูลีนส่วนตัว ValidFlag = true; เครื่องคิดเลขสาธารณะ () {init (); this.setbackground (color.light_gray); this.settitle ("www.vevb.com - เครื่องคิดเลข"); this.setLocation (500, 300); this.setResizable (เท็จ); this.pack (); } private void init () {resulttext.sethorizontalalignment (jtextfield.right); resultText.setEditable (เท็จ); resultText.setBackground (สีขาว); JPanel calckeyspanel = new JPanel (); calckeyspanel.setLayout (ใหม่ gridlayout (4, 5, 3, 3)); สำหรับ (int i = 0; i <keys.length; i ++) {keys [i] = new Jbutton (keys [i]); calckeyspanel.add (ปุ่ม [i]); Keys [i] .setforeground (color.blue); } keys [3] .setforeground (color.red); ปุ่ม [8] .Setforeground (color.Red); ปุ่ม [13] .Setforeground (color.Red); ปุ่ม [18] .Setforeground (สีแดง); กุญแจ [19] .Setforeground (color.Red); JPanel CommandSpanel = new JPanel (); Commandspanel.setLayout (ใหม่ gridlayout (1, 3, 3, 3)); สำหรับ (int i = 0; i <command.length; i ++) {คำสั่ง [i] = new Jbutton (คำสั่ง [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 (ใหม่ Borderlayout (3, 5)); getContentPane (). เพิ่ม ("นอร์ท", ด้านบน); getContentPane (). เพิ่ม ("ศูนย์", แผง 1); สำหรับ (int i = 0; i <keys.length; i ++) {keys [i] .addactionListener (นี่); } สำหรับ (int i = 0; i <command.length; i ++) {คำสั่ง [i] .addactionListener (นี่); }} โมฆะสาธารณะ ActionPerformed (ActionEvent E) {String label = E.getActionCommand (); if (label.equals (คำสั่ง [0])) {handlebackspace (); } อื่นถ้า (label.equals (คำสั่ง [1])) {resultText.settext ("0"); } อื่นถ้า (label.equals (คำสั่ง [2])) {handlec (); } อื่นถ้า ("0123456789.". indexof (ฉลาก)> = 0) {handlenumber (ฉลาก); } else {handleoperator (ฉลาก); }} โมฆะส่วนตัว handlebackspace () {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 = true; Operator = "="; } else {resultText.settext (ข้อความ); }}} โมฆะส่วนตัว handlenumber (คีย์สตริง) {if (firstDigit) {resultText.Settext (คีย์); } else if ((key.equals (".")) && (resultText.getText (). indexof (".") <0)) {resultText.Settext (resultText.getText () + "."); } else if (! key.equals (".")) {resultText.settext (resultText.getText () + คีย์); } firstDigit = false; } โมฆะส่วนตัว handlec () {resulttext.settext ("0"); firstDigit = true; Operator = "="; } โมฆะส่วนตัวมือจับ (คีย์สตริง) {if (operator.equals ("/")) {ถ้า (getNumberFromtext () == 0.0) {operatorValidFlag = false; resultText.settext ("การหย่าร้างไม่สามารถเป็นศูนย์"); } else {resultNum /= getNumberFromtext (); }} อื่นถ้า (operator.equals ("1/x")) {ถ้า (resultNum == 0.0) {operatorValidFlag = false; resultText.settext ("ศูนย์ไม่มีส่วนกลับกัน"); } else {resultNum = 1 / resultNum; }} อื่นถ้า (operator.equals (" +")) {resultNum += getNumberFromtext (); } else if (operator.equals (" -")) {resultNum -= getNumberFromtext (); } อื่นถ้า (operator.equals (" *")) {resultNum *= getNumberFromtext (); } อื่นถ้า (operator.equals (" *")) {resultNum *= getNumberFromtext (); } อื่นถ้า (operator.equals (" *")) {resultNum *= getNumberFromtext (); } อื่นถ้า (operator.equals (" *")) {resultNum *= getNumberFromtext (); } อื่นถ้า (operator.equals ("sqrt")) {resultNum = math.sqrt (resultNum); } อื่นถ้า (operator.equals ("%")) {resultNum = resultNum / 100; } อื่นถ้า (operator.equals ("+/-")) {resultNum = resultNum * (-1); } อื่นถ้า (operator.equals ("=")) {resultNum = getNumberFromtext (); } if (operateValidFlag) {Long T1; สอง T2; t1 = (ยาว) ผลลัพธ์; t2 = resultnum - t1; if (t2 == 0) {resulttext.settext (string.valueof (t1)); } else {resultText.settext (string.valueof (resultNum)); }} operator = key; firstDigit = true; operateValidFlag = true; } ส่วนตัว double getNumberFromtext () {double result = 0; ลอง {result = double.valueOf (resultText.getText ()). doubleValue (); } catch (numberFormatexception e) {} ผลการส่งคืน; } โมฆะคงที่สาธารณะหลัก (สตริง args []) {calculator calculate1 = เครื่องคิดเลขใหม่ (); calculate1.setVisible (จริง); calculate1.SetDefaultCloseOperation (jframe.exit_on_close); -เอฟเฟกต์การทำงาน:
PS: นี่คือเครื่องมือการคำนวณบางอย่างสำหรับคุณที่จะอ้างถึง:
เครื่องมือการคำนวณฟังก์ชั่น unary unary (eq):
http://tools.vevb.com/jisuanqi/equ_jisuanqi
เครื่องคิดเลขทางวิทยาศาสตร์ออนไลน์ use_advanced เครื่องคิดเลขออนไลน์เครื่องคิดเลข:
http://tools.vevb.com/jisuanqi/jsqkeexue
เครื่องคิดเลขออนไลน์ _Standard เครื่องคิดเลข:
http://tools.vevb.com/jisuanqi/jsq
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอัลกอริทึม Java ผู้อ่านที่มีความสนใจในเว็บไซต์นี้สามารถดูหัวข้อ: "โครงสร้างข้อมูล Java และการสอนอัลกอริทึม", "บทสรุปของเคล็ดลับการดำเนินงาน Java Dom", "บทสรุปของไฟล์ Java และเคล็ดลับการดำเนินการไดเรกทอรี" และ "สรุป
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน