版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、實(shí)訓(xùn)報告書實(shí)訓(xùn)名稱: Java程序設(shè)計實(shí)訓(xùn) 系 (部): 信息工程系 專業(yè)班級: 計算機(jī)科學(xué)與技術(shù) 學(xué)生姓名: 學(xué) 號: 指導(dǎo)教師: 張民 完成日期: 2015.12.11 山東科技大學(xué)泰山科技學(xué)院實(shí)訓(xùn)課題簡易計算器實(shí)訓(xùn)人姓名 同組人員實(shí)訓(xùn)日期2015.12.07至2015.12.11實(shí)訓(xùn)成績指導(dǎo)教師評語指導(dǎo)教師簽名:_年 _ 月_日目錄1 實(shí)訓(xùn)目的22 簡易計算機(jī)的分析與設(shè)計22.1 系統(tǒng)功能描述22.2 系統(tǒng)模塊設(shè)計22.3 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計33 主要代碼清單44 程序運(yùn)行與測試85 實(shí)訓(xùn)總結(jié)10簡易計算機(jī)的設(shè)計與實(shí)現(xiàn)1 實(shí)訓(xùn)目的通過本課程設(shè)計能夠較全面的掌握面向?qū)ο蟪绦蛟O(shè)計的有關(guān)概念和開發(fā)
2、方法,以便能較全面地理解、掌握和綜合運(yùn)用所學(xué)的知識,提高自身的編程能力。利用JavaApplet圖形界面首先開始設(shè)計一個計算器的界面,定義計算器所需要的按鈕并賦給其按鈕名稱,使得使用計算器時簡單明了,清晰可見,操作輕松。給各個按鈕進(jìn)行算法,利用鼠標(biāo)點(diǎn)擊事件,當(dāng)鼠標(biāo)點(diǎn)擊某個按鈕時就開始執(zhí)行那個按鈕所定義的算法,生成數(shù)據(jù)并顯示。除數(shù)字的輸入為直接進(jìn)行輸入外,其他運(yùn)算例如+、-、*、/、開平方等算法要求計算時通過內(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語言的簡潔性和Java語言功能的強(qiáng)大性。當(dāng)然了在輸入數(shù)據(jù)時還要進(jìn)行異常捕捉,防止越界的現(xiàn)象的發(fā)生,這也是Java語言健壯性的體現(xiàn)!2 簡易計算機(jī)的分析與設(shè)計二級標(biāo)題:宋體小四號字,段前段后間距為0,報告中最多到二級標(biāo)題2.1 系統(tǒng)功能描述此系統(tǒng)可以實(shí)現(xiàn)如下功能:1)可進(jìn)行“+”、“-”、“*”、“/”以及混合運(yùn)算。2)支持()改變運(yùn)算的優(yōu)先級3)可進(jìn)行二、十六和十進(jìn)制數(shù)的相互轉(zhuǎn)換4)支持復(fù)制和粘貼操作2.2 系統(tǒng)模塊設(shè)計(1)加法兩個數(shù)據(jù)進(jìn)行加操作,可以為小數(shù)。(2)減法兩個數(shù)據(jù)進(jìn)行減操作,可以為負(fù)數(shù)相減。(3)乘法兩個數(shù)相乘操作。(4)除法兩個數(shù)相除操
4、作。(5)開平方對任意一個數(shù)進(jìn)行開方運(yùn)算,可以是小數(shù)。(6)求余對任意一個數(shù)進(jìn)行求余運(yùn)算。(7)倒數(shù)對任意一個數(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ù)庫結(jié)構(gòu)設(shè)計倒數(shù)運(yùn)算 減法運(yùn)算計算器開平方運(yùn)算乘法運(yùn)算求余運(yùn)算二進(jìn)制與十進(jìn)制轉(zhuǎn)除法運(yùn)算圖1 計算機(jī)E-R圖圖2 流程圖3 主要代碼清單這段代碼主要是對程序的主框架進(jìn)行相應(yīng)的設(shè)置super(簡易計算器);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)控以及符號等的添加監(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è)計如下: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)符號運(yùn)算及清零、退格的設(shè)計如下: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ù)號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)行與測試圖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īng)過這次的學(xué)習(xí),我學(xué)到了很多東西,在此基礎(chǔ)上更加鞏固了自己對java基本知識及軟件開發(fā)的了解。在做本項(xiàng)目是時候,會遇到很多小問題,比如說,在整個運(yùn)算過程中要如何確保輸入的計算數(shù)據(jù)哪個是第一個計算數(shù)據(jù)的,哪個是第二個計算數(shù)據(jù)的,同時也要區(qū)分運(yùn)算符,因?yàn)樵撚嬎闫鞒绦驊?yīng)用的都是利用字符串來完成計算的,而且不能重復(fù)輸出運(yùn)算符,更不能將運(yùn)算符錯誤的存儲在了第一個計算數(shù)據(jù)的數(shù)值中,也得考慮到萬一不小心重復(fù)點(diǎn)擊了運(yùn)算符按鈕會不會造成第一個計算數(shù)據(jù)的重新賦值等等問題,最后想到利用布爾類型來很好的控制運(yùn)算
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智慧旅游系統(tǒng)課程設(shè)計
- 海上風(fēng)力發(fā)電場規(guī)劃與選址考核試卷
- 環(huán)境監(jiān)測儀器儀表的模塊化組裝與維護(hù)考核試卷
- 礦產(chǎn)勘查中的教育與人才培養(yǎng)考核試卷
- 社會矛盾調(diào)和與社會穩(wěn)定考核試卷
- 電工儀表的遠(yuǎn)程監(jiān)控與數(shù)據(jù)智能分析平臺考核試卷
- 線路優(yōu)化設(shè)計課程設(shè)計
- 幼兒窯洞課程設(shè)計
- 畜牧業(yè)養(yǎng)殖廢棄物處理技術(shù)發(fā)展需求與研究方向考核試卷
- 直齒減速器課程設(shè)計
- 《血?dú)夥治龅呐R床應(yīng)》課件
- 2024年07月11026經(jīng)濟(jì)學(xué)(本)期末試題答案
- 2024年中小企業(yè)股權(quán)融資合同3篇
- 2024年01月11289中國當(dāng)代文學(xué)專題期末試題答案
- 2024年四級品酒師資格認(rèn)證考試題庫(濃縮400題)
- 國家電投《新能源電站單位千瓦造價標(biāo)準(zhǔn)值(2024)》
- 2024年云南高中學(xué)業(yè)水平合格考?xì)v史試卷真題(含答案詳解)
- 電影攝影及特殊拍攝技術(shù)(上海電影藝術(shù)職業(yè)學(xué)院)知到智慧樹答案
- 山東省臨沂市2023-2024學(xué)年高二上學(xué)期期末考試政治試題 含答案
- 東北三省精準(zhǔn)教學(xué)2024-2025學(xué)年高三上學(xué)期12月聯(lián)考數(shù)學(xué)試卷
- 醫(yī)院廉潔購銷合同
評論
0/150
提交評論