• 
    

    
    

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

      ?

      基于JAVA的發(fā)射角計算工具的研究與開發(fā)

      2015-05-08 18:30:44胡景豫
      電腦知識與技術 2015年7期

      胡景豫

      摘要:根據實際工作需要,使用JAVA語言開發(fā)了一款射角修正計算軟件,該文詳細介紹了開發(fā)過程使用的界面設計、對話框構建、內部類等技術方法。經實踐檢驗,該軟件在試驗現場使用非常方便,極大的提高了工作效率。

      關鍵詞:發(fā)射角計算;JAVA;軟件工具

      中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)07-0105-03

      Abstract: According to the practical needs in firing setting, launch angle calculation system is developed based on JAVA. This paper aims at introducing the techniques used in the process of development, including the design of interface, the construction of dialog box and the use of inner class. Proved in a practical firing setting situation, the platform features in easy-learning and easy-using, and improves the efficiency in firing setting.

      Key words: launch angle; JAVA; application tool

      某型火炮在陸上射擊考核過程中由于受到試驗場地的限制,為了確保安全性和便于觀測性,必須精準控制連發(fā)射擊時的彈著點,對射擊完目標彈之后火炮射角的調整提出了較高的技術要求。

      彈丸落點位置主要由發(fā)射時火炮的方向、高低角度確定,并受氣象條件影響,通常確定連發(fā)射擊射角的方法是:報告目標彈落點后,提出連續(xù)射擊時彈著點理想位置。提供涉及射角的計算參數主要有兩個,分別是下一組射擊理想落點與目標彈落點的坐標距離和目標彈的射程,由于試驗現場條件所限,修正射角的計算過程通常由技術人員使用近似公式、通過計算器計算獲得,使用近似公式和計算過程數據的舍入,使計算結果有一定的誤差,且計算過程比較復雜緩慢。

      如果能將計算過程編成軟件,使用時只需輸入基本數據,直接得到計算結果,整個工作效率會得到較大提高,射擊間隔時間縮短,兩組射擊時氣象條件基本相同,彈丸外彈道飛行條件近似一致,落點會更加精準?,F階段智能手機的使用已非常普便,基于Lunix內核Android操作系統(tǒng)的手機使用人群也比較龐大[1],如果軟件能夠安裝在Android手機上,在基礎設施條件受限的試驗場,更能發(fā)揮出該軟件作用。

      1 圖形交互界面布局設計

      為了使軟件不僅能在電腦上運行而且在手機上也能運行,所以軟件開發(fā)環(huán)境選擇EclipseADT,如果使用者通過智能手機軟件完成計算工作,需要軟件有一個簡潔易操作的圖形交互界面并響應用戶操作。軟件編寫過程中使用了布局類、視圖容器類和普通視圖等組件,并使用XML語言控制這些組件的相互位置。定義Android系統(tǒng)視圖的XML文件保存在工程項目res\layout目錄中[2]。

      TextView控件用來顯示文本,在程序中用來提示用戶在正確位置輸入文本,TextView控件顯示的文本在程序中不在變化,只需要在XML布局文件確定TextView控件的id、width、height、text屬性。

      在用戶輸入文本的位置選擇使用EditText控件,EditText是TextView子類,在EditText控件設計過程需要考慮用戶可能輸入錯誤數據的情況,為了有效避免使用者輸入錯誤數據,在輸入風格屬性中指定只允許輸入浮點數,不允許輸入文字,為計算過程提供有效的過濾屏障。

      設置好文本控件與可編輯文本控件后,在整體的垂直布局中插入水平布局用于容納“計算”、“刷新”、“退出”三個按鈕,讓三個按鈕整齊的排列在輸入文本控件下方。這需要在布局XML文件中順序安排好每個控件的標簽,并注意到在同一個布局文件中相同控件控件的id不能相同,以免程序無法讀取后續(xù)id相同的控件,在虛擬機運行結果如圖1所示:

      2 用戶數據交互實現技術

      帶界面的Android應用程序必須由一個或多個活動組件用來顯示界面,在活動組件控制區(qū)域可以放置其它組件。為構建界面區(qū)域程序中設計了一個JSActivity類擴展于Activity核心類,并覆蓋其中的onCreate方法,在該方法中初始化用戶界面區(qū)域,通過setContentView方法讀取工程目錄中的布局文件,方法參數是布局文件的資源id。成功讀取布局文件之后可以繼續(xù)讀取布局文件中組件的id,在使用JAVA語言主程序代碼中對組件進行初始化并對其內容進行控制,如從文本區(qū)域讀取用戶輸入,響應用戶點擊按鈕的動作,反饋計算結果等。

      程序中輸入參數只有兩個,但內容格式是文本形式,不能直接用于程序計算,程序中使用getText()方法讀取用戶在文本區(qū)域輸入的值,該方法返回是一個Editable對象,通過查閱API文檔可知,這個對象只是一個可編輯的代碼單元,還不是字符串,需要使用Editable對象的toString()方法轉換成字符串,此時讀取的數據還不是JAVA語言中基本數值類型,不能用于計算,利用雙精度類型包裝器中的靜態(tài)方法,將用戶輸入轉換成雙精度浮點數,具體代碼如下:

      sc=Double.parseDouble(e1.getText().toString()); xzjl=Double.parseDouble(e2.getText().toString());

      程序使用者在輸入正確數據后點擊計算按鈕后會彈出對話框顯示計算結果,用戶得到計算結果后通常會選擇重新計算或者直接退出程序,為實現這兩種功能,使用了帶兩個按鈕的對話框控件,一個按鈕執(zhí)行重新計算操作另一個執(zhí)行退出程序操作。這兩個按鈕被點擊的時候,在程序中使用回調方法響應用戶動作,主程序JAVA代碼中為對話框兩個按鈕注冊監(jiān)聽器,監(jiān)聽器對象必須是實現了DialogInterface.OnClickListener接口的對象,由于對話框按鈕需要實現重新計算和退出程序的功能,這兩種功能都需要訪問主程序JSActivity類中的域,故將兩個對話框監(jiān)聽器類設計成JSActivity類中的內部類,分別在onClick方法實現用戶點擊操作后的動作,最后將監(jiān)聽器對象傳遞給對話框設置按鈕的setPositiveButton和setNegativeButton方法,內部類具體實現技術詳見代碼:

      程序中除了使用了一個活動組件還使用了多個對話框組件,用來顯示計算結果和提示用戶進行正確的操作,在設計上為防止用戶輸入錯誤數據,在文本域設置了只能輸入數值的條件,還有一種情況就是用戶什么也不輸入,直接點擊計算按鈕,這樣計算過程將得不到任何數據,程序拋RUNTIME類型異常,程序直接退出,為了避免這種情況的發(fā)生,在運行程序時判斷文本區(qū)域getText方法返回可編輯對象的正確性,通過達爾維克透視圖監(jiān)視該語句在調試過程中的值,用if語句判斷用戶輸入的正確性,如果用戶在可編輯文本組件中不輸入就任何數值的情況下就點擊了計算按鈕,程序將彈出對話框提示用戶輸入數據。

      在Android程序中使用對話框需要通過AlertDialog類來構建,因為AlertDialog類的構造方法是受保護的方法,在代碼中不能使用關鍵字new來創(chuàng)建AlertDialog對象,但可以通過其內部類Builer來創(chuàng)建,用Builer類的create方法返回超類AlertDialog對象,再通過超類show方法顯示對話框。使用Builer類構造方法需要傳遞一個Context上下文參數,通常只需傳一個this參數既可,由于本程序在點擊按鈕后才出現對話框,在設計程序時將Builer構造方法放置在按鈕監(jiān)聽器的內部類中,這時直接使用this參數傳遞給Builer構造器,程序會拋出異常而終止運行。解決這一問題需要將主程序JSActivity類做為Context對象傳遞給Builer構造器,解決代碼如下:

      AlertDialog.Builder(JSActivity.this).setTitle("請輸入數據").create();

      3 清單文件編輯與APK包的制作

      一個Android手機程序必須有一個清單文件,文件名為AndroidManifest.xml,在運行程序之前要在這個文件中設置程序的必要信息,在程序中使用的活動組件如本程序使用的JSActivity類需要在清單文件中注冊,設置應用程序圖標,活動窗口名稱,設置完成后可以進行程序調試。

      程序調試成功后要想使程序在真機上運行,還需對生成擴展名為apk安裝包進行簽名,簽名可以使用開發(fā)工具ADT插件附加功能,在導出apk安裝包的過程設置需要導出應用程序的名稱和簽名信息,導出成功后生成已簽完名的apk文件及簽名密鑰,這時apk文件可以直接傳到手機上安裝,安裝運行后結果如圖2所示:

      4 結束語

      在實際工作中,修正射角計算瞬時完成,且結果精度可視情況截取,不必在計算過程中舍取,取得了較好的工作效果。本程序的開發(fā)使用,改變了傳統(tǒng)工作模式,緊隨時代潮流,利用先進技術,使智能手機在工作中發(fā)揮出本身潛能,在條件比較艱苦的試驗現場得到了良好應用,降低了技術門限,任何人都可以使用,還可以與其它計算方法相互印證,極大的提高了工作效率。

      參考文獻:

      [1] 李寧.Android開發(fā)完全講義[M].北京:中國水利水電出版社,2012.

      [2] 扶松柏,于秀青.Android開發(fā)從入門到精通[M].北京:北京希望電子出版社,2012.

      孝昌县| 育儿| 陆丰市| 汝城县| 于都县| 广东省| 石家庄市| 元阳县| 壤塘县| 通河县| 保德县| 广宁县| 寿阳县| 南阳市| 永安市| 岫岩| 逊克县| 桑植县| 蒙自县| 友谊县| 石泉县| 邮箱| 孟村| 吉隆县| 肇源县| 屯门区| 全椒县| 东平县| 花莲市| 黄梅县| 应城市| 洛隆县| 汾阳市| 宝鸡市| 房产| 克什克腾旗| 略阳县| 双柏县| 恩施市| 图们市| 仲巴县|