版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)訓(xùn)報(bào)告書實(shí)訓(xùn)名稱: Java程序設(shè)計(jì)實(shí)訓(xùn) 系 (部): 信息工程系 專業(yè)班級(jí): 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)生姓名: 學(xué) 號(hào): 指導(dǎo)教師: 張民 完成日期: 2015.12.11 山東科技大學(xué)泰山科技學(xué)院實(shí)訓(xùn)課題簡(jiǎn)易計(jì)算器實(shí)訓(xùn)人姓名 同組人員實(shí)訓(xùn)日期2015.12.07至2015.12.11實(shí)訓(xùn)成績(jī)指導(dǎo)教師評(píng)語(yǔ)指導(dǎo)教師簽名:_年 _ 月_日目錄1 實(shí)訓(xùn)目的22 簡(jiǎn)易計(jì)算機(jī)的分析與設(shè)計(jì)22.1 系統(tǒng)功能描述22.2 系統(tǒng)模塊設(shè)計(jì)22.3 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)33 主要代碼清單44 程序運(yùn)行與測(cè)試85 實(shí)訓(xùn)總結(jié)10簡(jiǎn)易計(jì)算機(jī)的設(shè)計(jì)與實(shí)現(xiàn)1 實(shí)訓(xùn)目的通過本課程設(shè)計(jì)能夠較全面的掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的有關(guān)概念和開發(fā)
2、方法,以便能較全面地理解、掌握和綜合運(yùn)用所學(xué)的知識(shí),提高自身的編程能力。利用JavaApplet圖形界面首先開始設(shè)計(jì)一個(gè)計(jì)算器的界面,定義計(jì)算器所需要的按鈕并賦給其按鈕名稱,使得使用計(jì)算器時(shí)簡(jiǎn)單明了,清晰可見,操作輕松。給各個(gè)按鈕進(jìn)行算法,利用鼠標(biāo)點(diǎn)擊事件,當(dāng)鼠標(biāo)點(diǎn)擊某個(gè)按鈕時(shí)就開始執(zhí)行那個(gè)按鈕所定義的算法,生成數(shù)據(jù)并顯示。除數(shù)字的輸入為直接進(jìn)行輸入外,其他運(yùn)算例如+、-、*、/、開平方等算法要求計(jì)算時(shí)通過內(nèi)部較為復(fù)雜的運(yùn)算將結(jié)果顯示在顯示屏上。至于其中的進(jìn)制轉(zhuǎn)換功能的實(shí)現(xiàn)則是直接調(diào)用Java中進(jìn)制轉(zhuǎn)換的函數(shù),例如要將十進(jìn)制轉(zhuǎn)換成二進(jìn)制則可直接調(diào)用函數(shù)Integer.toBinaryStrin
3、g(inti)來實(shí)現(xiàn),充分顯示了Java語(yǔ)言的簡(jiǎn)潔性和Java語(yǔ)言功能的強(qiáng)大性。當(dāng)然了在輸入數(shù)據(jù)時(shí)還要進(jìn)行異常捕捉,防止越界的現(xiàn)象的發(fā)生,這也是Java語(yǔ)言健壯性的體現(xiàn)!2 簡(jiǎn)易計(jì)算機(jī)的分析與設(shè)計(jì)二級(jí)標(biāo)題:宋體小四號(hào)字,段前段后間距為0,報(bào)告中最多到二級(jí)標(biāo)題2.1 系統(tǒng)功能描述此系統(tǒng)可以實(shí)現(xiàn)如下功能:1)可進(jìn)行“+”、“-”、“*”、“/”以及混合運(yùn)算。2)支持()改變運(yùn)算的優(yōu)先級(jí)3)可進(jìn)行二、十六和十進(jìn)制數(shù)的相互轉(zhuǎn)換4)支持復(fù)制和粘貼操作2.2 系統(tǒng)模塊設(shè)計(jì)(1)加法兩個(gè)數(shù)據(jù)進(jìn)行加操作,可以為小數(shù)。(2)減法兩個(gè)數(shù)據(jù)進(jìn)行減操作,可以為負(fù)數(shù)相減。(3)乘法兩個(gè)數(shù)相乘操作。(4)除法兩個(gè)數(shù)相除操
4、作。(5)開平方對(duì)任意一個(gè)數(shù)進(jìn)行開方運(yùn)算,可以是小數(shù)。(6)求余對(duì)任意一個(gè)數(shù)進(jìn)行求余運(yùn)算。(7)倒數(shù)對(duì)任意一個(gè)數(shù)進(jìn)行倒數(shù)運(yùn)算。(8)轉(zhuǎn)換將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制以及將二進(jìn)制轉(zhuǎn)換為十進(jìn)制。加法運(yùn)算2.3 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)倒數(shù)運(yùn)算 減法運(yùn)算計(jì)算器開平方運(yùn)算乘法運(yùn)算求余運(yùn)算二進(jìn)制與十進(jìn)制轉(zhuǎn)除法運(yùn)算圖1 計(jì)算機(jī)E-R圖圖2 流程圖3 主要代碼清單這段代碼主要是對(duì)程序的主框架進(jìn)行相應(yīng)的設(shè)置super(簡(jiǎn)易計(jì)算器);setSize(300,260);this.setLayout(newBorderLayout();jPanel1=newJPanel();jPanel1.setLayout(newGridLay
5、out(1,1);/一行一列的布局jPanel2=newJPanel();jPanel2.setLayout(newGridLayout(6,4);/六行四列的布局resultField=newJTextField(0);jPanel1.add(resultField);this.add(jPanel1,BorderLayout.NORTH);this.add(jPanel2,BorderLayout.CENTER);設(shè)置數(shù)字按鈕1到9并添加監(jiān)控以及符號(hào)等的添加監(jiān)控s1=newJButton(1);s1.addActionListener(this);s2=newJButton(2);s2.a
6、ddActionListener(this);s3=newJButton(3);s3.addActionListener(this);s4=newJButton(4);s4.addActionListener(this);s5=newJButton(5);s5.addActionListener(this);s6=newJButton(6);s6.addActionListener(this);s7=newJButton(7);s7.addActionListener(this);s8=newJButton(8);s8.addActionListener(this);s9=newJButton
7、(9);s9.addActionListener(this);s0=newJButton(0);s0.addActionListener(this);b1=newJButton(+);b1.addActionListener(this);b2=newJButton(-);b2.addActionListener(this);b3=newJButton(*);b3.addActionListener(this);b4=newJButton(/);b4.addActionListener(this);b5=newJButton();b5.addActionListener(this);b6=new
8、JButton(開方);b6.addActionListener(this);b7=newJButton(%);b7.addActionListener(this);b8=newJButton(x!);b8.addActionListener(this);b9=newJButton(1/x);b9.addActionListener(this);f1=newJButton(.);f1.addActionListener(this);f2=newJButton(=);f2.addActionListener(this);f3=newJButton(C);f3.addActionListener(
9、this);f4=newJButton(負(fù));f4.addActionListener(this);f5=newJButton(退格);f5.addActionListener(this);jPanel2.add(f3);jPanel2.add(b4);jPanel2.add(b3);jPanel2.add(f5);jPanel2.add(s7);jPanel2.add(s8);jPanel2.add(s9);jPanel2.add(b1);jPanel2.add(s4);jPanel2.add(s5);jPanel2.add(s6);jPanel2.add(b2);jPanel2.add(s
10、1);jPanel2.add(s2);jPanel2.add(s3);jPanel2.add(b5);jPanel2.add(s0);jPanel2.add(f1);jPanel2.add(f4);jPanel2.add(b6);jPanel2.add(b7);jPanel2.add(b8);jPanel2.add(b9);jPanel2.add(f2);(3)數(shù)據(jù)輸入用方法num(inti)設(shè)計(jì)如下:publicvoidnum(inti)Strings=null;s=String.valueOf(i);/返回整數(shù)i的字符串表示形式if(end)/如果數(shù)字輸入結(jié)束,則將文本框置零,重新輸入re
11、sultField.setText(0);end=false;if(resultField.getText().equals(0)/如果文本框的內(nèi)容為零,則覆蓋文本框的內(nèi)容resultField.setText(s);else/如果文本框的內(nèi)容不為零,則在內(nèi)容后面添加數(shù)字str=resultField.getText()+s;resultField.setText(str);以及用JFrame的方法actionPerformed(ActionEvente)來獲取數(shù)據(jù)(4)符號(hào)運(yùn)算及清零、退格的設(shè)計(jì)如下:if(add)/加法num1=num1+num2;elseif(sub)/減法num1=nu
12、m1-num2;elseif(mul)/乘法num1=num1*num2;elseif(div)/除法if(num2=0)thrownewArithmeticException(除數(shù)不能為零);elsenum1=num1/num2;elseif(chf)/乘方if(num2=0)num1=1;elsenum1=Math.pow(num1,num2);elseif(evo)/開方if(num20)thrownewArithmeticException(被開方數(shù)不能小于零);elsenum1=Math.sqrt(num2);elseif(rec)/倒數(shù)if(num20)thrownewArithm
13、eticException(分母不能小于零);elsenum1=1/num2;elseif(per)/百分num1=num1/100.0;elseif(pur)/階乘if(num20)thrownewArithmeticException(負(fù)數(shù)不能求階乘);elsefor(inti=1;inum2;i+)num1=i*num1;resultField.setText(String.valueOf(num1);end=true;elseif(e.getSource()=f3)/實(shí)現(xiàn)清零resultField.setText(0);elseif(e.getSource()=f4)/實(shí)現(xiàn)負(fù)號(hào)if(r
14、esultField.getText()!=0)resultField.setText(-+resultField.getText();elseif(e.getSource()=f5)/實(shí)現(xiàn)退格inti;i=(resultField.getText().length();if(i=1)resultField.setText(0);elsestr=resultField.getText();resultField.setText(str.substring(0,i-1);圖3 主要程序圖4 程序運(yùn)行與測(cè)試圖4 加法實(shí)現(xiàn)圖圖5 減法實(shí)現(xiàn)圖圖6 乘法實(shí)現(xiàn)圖圖7 除法實(shí)現(xiàn)圖圖8 二進(jìn)制變十進(jìn)制圖9 十進(jìn)制變二進(jìn)制5 實(shí)訓(xùn)總結(jié)經(jīng)過一周的實(shí)習(xí),本學(xué)期的java課程設(shè)計(jì)到此也算告一段落了,經(jīng)過這次的學(xué)習(xí),我學(xué)到了很多東西,在此基礎(chǔ)上更加鞏固了自己對(duì)java基本知識(shí)及軟件開發(fā)的了解。在做本項(xiàng)目是時(shí)候,會(huì)遇到很多小問題,比如說,在整個(gè)運(yùn)算過程中要如何確保輸入的計(jì)算數(shù)據(jù)哪個(gè)是第一個(gè)計(jì)算數(shù)據(jù)的,哪個(gè)是第二個(gè)計(jì)算數(shù)據(jù)的,同時(shí)也要區(qū)分運(yùn)算符,因?yàn)樵撚?jì)算器程序應(yīng)用的都是利用字符串來完成計(jì)算的,而且不能重復(fù)輸出運(yùn)算符,更不能將運(yùn)算符錯(cuò)誤的存儲(chǔ)在了第一個(gè)計(jì)算數(shù)據(jù)的數(shù)值中,也得考慮到萬(wàn)一不小心重復(fù)點(diǎn)擊了運(yùn)算符按鈕會(huì)不會(huì)造成第一個(gè)計(jì)算數(shù)據(jù)的重新賦值等等問題,最后想到利用布爾類型來很好的控制運(yùn)算
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024幼兒園保育員幼兒活動(dòng)組織與實(shí)施合同2篇
- 2024年高端人才引進(jìn)保密合同
- 2024年標(biāo)準(zhǔn)版土方工程車輛租賃合同版
- 2024年藝術(shù)品交易合作合同
- 2025年度文化創(chuàng)意產(chǎn)業(yè)廠房股權(quán)置換與合資經(jīng)營(yíng)合同3篇
- 2024年度家庭財(cái)產(chǎn)贈(zèng)與法律咨詢合同3篇
- 2024年綠色能源發(fā)電項(xiàng)目投資與合作合同
- 2024防火門供貨及安裝合同
- 2024正規(guī)企業(yè)資源規(guī)劃開發(fā)合同范本2篇
- 2024年餐飲項(xiàng)目三位股東權(quán)益分配合同版B版
- MOOC 漢字文化解密-華中師范大學(xué) 中國(guó)大學(xué)慕課答案
- 觸電事故預(yù)防措施
- 問題解決過程PSP-完整版
- 電動(dòng)葫蘆操作維護(hù)保養(yǎng)規(guī)程培訓(xùn)
- 新型電力系統(tǒng)控制與優(yōu)化
- 淋巴回流障礙護(hù)理查房
- 2024年3月談心談話記錄【五篇】
- 初一英語(yǔ)作文范文30篇
- 期末專題復(fù)習(xí):現(xiàn)代文閱讀 八年級(jí)上冊(cè)語(yǔ)文專題訓(xùn)練 部編(解析)
- 辦公選址可行性方案
- 2022上海閔行區(qū)初三二模物理試卷及答案
評(píng)論
0/150
提交評(píng)論