• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Java的可視化計(jì)算器實(shí)現(xiàn)

      2014-10-21 14:24:29張文哲王璐崔洪宇
      電子世界 2014年12期
      關(guān)鍵詞:根號(hào)文本框弧度

      張文哲 王璐 崔洪宇

      在MyEclipse 8.6 運(yùn)行環(huán)境下,應(yīng)用圖形用戶(hù)界面采用JAVA程序設(shè)計(jì)語(yǔ)言,實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器功能。本文利用Java Applet圖形界面首先開(kāi)始設(shè)計(jì)一個(gè)計(jì)算器的界面,定義計(jì)算器所需要的按鈕并賦給其按鈕名稱(chēng),使得使用計(jì)算器時(shí)簡(jiǎn)單明了,清晰可見(jiàn),操作輕松。

      1.界面設(shè)計(jì)

      新建類(lèi)caculator_1繼承JFrame并設(shè)置其位置大小關(guān)閉方式等即出現(xiàn)以上窗體。在整體布局中添加JPanel,采用網(wǎng)格布局添加20個(gè)JButton,分別代表不同的數(shù)字以及功能,還要添加一個(gè)現(xiàn)實(shí)輸入信息的文本框,用來(lái)顯示輸入的信息與最后結(jié)果。將文本框放在布局最上面,將20個(gè)JButton按一列5個(gè)按鈕顯示在布局中,使20個(gè)按鈕順序排列在布局上。計(jì)算器的整體界面如圖1所示。

      圖1 可視化計(jì)算器界面

      2.具體功能設(shè)計(jì)

      (1)實(shí)現(xiàn)加、減、乘、除四則基本運(yùn)算

      在輸入加減乘除運(yùn)算符之前,要先判斷一下是否已經(jīng)輸入操作數(shù),若輸入了,要先記錄前面輸入的操作數(shù),然后再進(jìn)行運(yùn)算,否則默認(rèn)第一個(gè)操作數(shù)是零。用符號(hào)區(qū)分各種運(yùn)算,來(lái)進(jìn)行不同種類(lèi)的運(yùn)算。

      (2)能夠?qū)崿F(xiàn)求倒數(shù)、開(kāi)方、取反運(yùn)算

      在進(jìn)行這幾個(gè)運(yùn)算中只需要一個(gè)操作數(shù),所以輸入一個(gè)操作數(shù)之后,點(diǎn)擊對(duì)應(yīng)運(yùn)算的按鈕,進(jìn)行運(yùn)算操作。

      (3)按鍵“C”能夠?qū)崿F(xiàn)清除文本框中的信息功能。

      “CE”按鈕能夠?qū)崿F(xiàn)撤銷(xiāo)文本框的信息功能。

      3.關(guān)鍵代碼

      (1)實(shí)現(xiàn)四則運(yùn)算的關(guān)鍵代碼

      if (operator.equals("+")){resultNum += getNumberFromText();}

      else if (operator.equals("-")){resultNum -= getNumber FromText();}

      else if (operator.equals("*")){resultNum *= getNumber FromText();}

      private void handleOperator(String key) {if (operator.equals("/");}

      if (getNumberFromText() == .0){operateValidFlag = false;resultText.setText(“除數(shù)不能為零”);}

      else {resultNum /= etNumberFromText();}

      (2)實(shí)現(xiàn)開(kāi)根號(hào)、倒數(shù)、定義相反數(shù)等運(yùn)算的關(guān)鍵代碼

      // 開(kāi)根號(hào)運(yùn)

      if (temp == btn_Sqrt) { String s = txt.getText(); if (s.charAt(0) == '-') {JOptionPane.showMessageDialog(null, "負(fù)數(shù)不能開(kāi)根號(hào)");} // 判斷符號(hào)是否符合運(yùn)算規(guī)則

      else {txt.setText(Double.toString(java.lang.Math.sqrt(Double.parseDouble(txt.getText()))));}

      // 倒數(shù)運(yùn)算

      if (temp == btn_Dao) {if (txt.getText().charAt(0) == '0' && txt.getText().length() == 1) {// 判斷此數(shù)是否符合進(jìn)行倒數(shù)運(yùn)算規(guī)則JOptionPane.showMessageDialog(null, "零不能求倒數(shù)");} else { boolean isDec = true;int i, j, k;String s = Double.toString(1 / Double(txt.getText()));

      for (i = 0; i < s.length(); i++) { if (s.charAt(i) == '.') { break;}} for (j = i + 1; j < s.length(); j++) {if (s.charAt(j) != '0') { isDec = false; break;} } if (isDec == true) {String stemp = "";

      for (k = 0; k < i; k++) { stemp += s.charAt(k); }xt.setText(stemp); } else {txt.setText(s);} }}

      // 定義相反數(shù)按鈕

      jButton16 = new JButton("+/-");

      0-Double.parseDouble(jTextField.getText().trim()); Button16.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { double i2=0-Double.parseDouble(jTextField.getText().trim());jTextField.setText(Double.toString(i2));}}); 通過(guò)使用文本框中的數(shù)據(jù)變成其相反數(shù)

      (3)實(shí)現(xiàn)“C”鍵、定義進(jìn)制轉(zhuǎn)換的關(guān)鍵代碼

      // 按下C按鈕,文本框內(nèi)數(shù)據(jù)清除,同時(shí)middle,result清0

      if (temp == btn_C) {

      middle = result = 0;

      txt.setText(“”);

      }

      //定義進(jìn)制轉(zhuǎn)換按鈕,jButton31、jButton34、jButton37、jButton40分別為十六進(jìn)制、十進(jìn)制、八進(jìn)制、二進(jìn)制,通過(guò)調(diào)用Integer.toHexString(n)十六進(jìn)制、Integer.toOctalString(n)八進(jìn)制、Integer.toBinaryString(n)二進(jìn)制來(lái)實(shí)現(xiàn)進(jìn)制之間的相互轉(zhuǎn)換。

      4.結(jié)果與分析

      1)計(jì)算6.8+7.5=14.3

      本實(shí)例需要用戶(hù)通過(guò)按鈕輸入運(yùn)算表達(dá)式,由界面提供數(shù)字和符號(hào)的按鈕,同時(shí)還能夠顯示輸入和輸出結(jié)果,當(dāng)進(jìn)行按下‘=鍵時(shí),進(jìn)行表達(dá)式的求值。

      先輸入5.6,按加號(hào)鍵,再輸入6.7,按等于號(hào),得出最后結(jié)果。

      2)取對(duì)數(shù)運(yùn)算

      按下ln按鈕,其方法是調(diào)用Math.log1p(i),當(dāng)對(duì)數(shù)值i大于0時(shí)就調(diào)用Math.ln(i)來(lái)輸出結(jié)果,當(dāng)i小于0時(shí)就在文本框中顯示負(fù)數(shù)不能求對(duì)數(shù)!5.結(jié)論

      3)三角函數(shù)運(yùn)算

      三角函數(shù)sin、cos、tan在使用時(shí)需要先調(diào)用弧度按鈕,將相應(yīng)的角度轉(zhuǎn)換成弧度以后在使用三角函數(shù)對(duì)應(yīng)的按鈕才可以實(shí)現(xiàn)求三角函數(shù)的值。求弧度方法在定義弧度按鈕時(shí)實(shí)現(xiàn),string.valueOf(i/180*Math.PI)求對(duì)應(yīng)的弧度sin、cos、tan使用math中的方法。

      5.結(jié)論

      本設(shè)計(jì)是一個(gè)圖形界面的計(jì)算器,可以在標(biāo)準(zhǔn)計(jì)算器和科學(xué)計(jì)算器之間切換,標(biāo)準(zhǔn)計(jì)算器的基本功能有:加、減、乘、除等基本運(yùn)算,科學(xué)計(jì)算器的基本功能有:三角函數(shù)、進(jìn)制轉(zhuǎn)換、開(kāi)方運(yùn)算、倒數(shù)運(yùn)算等等,本計(jì)算器還可以支持鍵盤(pán)錄入功能,總的來(lái)說(shuō)此計(jì)算器在設(shè)計(jì)上,優(yōu)雅美觀,功能全面,錯(cuò)誤漏洞少。

      猜你喜歡
      根號(hào)文本框弧度
      與故宮古建筑關(guān)系密切的根號(hào)2
      巧用文本框?qū)崿F(xiàn)PPT多圖片排版
      “實(shí)數(shù)”檢測(cè)題
      PPT文本框的另類(lèi)應(yīng)用
      不自由
      詩(shī)潮(2017年2期)2017-03-16 20:02:06
      南瓜
      希臘:日落最美的弧度
      Coco薇(2016年7期)2016-06-28 19:11:56
      揭開(kāi)二次根式雙重非負(fù)性的神秘面紗
      文本框酷變3D效果
      弧度制的應(yīng)用
      友谊县| 桐城市| 齐河县| 郧西县| 平顺县| 含山县| 齐河县| 临泉县| 平邑县| 江达县| 宁南县| 成都市| 镇康县| 垫江县| 兴义市| 丹棱县| 甘肃省| 安西县| 曲靖市| 岳阳市| 宣城市| 安远县| 广平县| 德江县| 太保市| 新和县| 内江市| 香港| 无锡市| 鄯善县| 小金县| 冀州市| 芒康县| 安阳市| 宣化县| 兴业县| 敖汉旗| 城口县| 琼结县| 怀柔区| 寿光市|