版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> Java課程設計報告</p><p><b> 一、設計時間</b></p><p> 2012-6-4至2012-6-8</p><p><b> 二、設計地點</b></p><p><b> 三、設計目的</b></p><
2、;p> 1、復習、鞏固Java語言的基礎知識,進一步加深對Java語言的理解和掌握;</p><p> 2、課程設計為學生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實際有機的結(jié)合起來,鍛煉學生的分析解決實際問題的能力。提高學生適應實際,實踐編程的能力;</p><p> 3、培養(yǎng)學生在項目開發(fā)中團隊合作精神、創(chuàng)新意識及能力。</p><p&
3、gt;<b> 四、設計小組成員</b></p><p><b> 指導老師</b></p><p><b> 六、設計課題</b></p><p> 模仿Windows操作系統(tǒng)提供的計算器設計一個能實現(xiàn)計算器簡單功能的Java程序,計算器具有進行加、減、乘、除、階乘、指數(shù)、正弦、余弦共8種運
4、算的功能。</p><p> 七、基本思路及關(guān)鍵問題的解決方法</p><p> 1、計算器的界面如圖所示,框架采用BorderLayout布局,內(nèi)容窗格中添加了兩個面板pnl1和pnl2,他們分別被放置在“North”和“Center”方位。面板pnl1采用默認的 FlowLayout布局并且添加了一個文本框組件和一個按鈕,面板pnl2采用GridLayout布局總共添加21個按鈕。
5、</p><p> 2、當按下這個計算器程序中任意一個鍵時,文本框?qū)ポ斎虢裹c。所以應當在按下任意鍵后,讓文本框請求再次獲得輸入焦點。具體使用的是JTextField繼承來自 JComponent類中的requestFocus方法。</p><p><b> 計算器界面</b></p><p><b> 算法及流程圖 <
6、;/b></p><p> 九、調(diào)試過程中出現(xiàn)的問題及相應解決辦法</p><p> 1、程序運行之后只有標題沒有內(nèi)容,經(jīng)過檢查代碼才發(fā)現(xiàn)沒有設置窗口位置和大小。添加this.setBounds(400,300,450,240)之后程序運行正常。</p><p> 在編譯過程中,經(jīng)常出現(xiàn)找不到符號的錯誤,仔細查找后發(fā)現(xiàn)是忘記寫分號、相同變量前后寫的不一致
7、及中英文符號不注意區(qū)分,改過之后程序運行正常。</p><p> 十、課程設計心得體會</p><p> 此次課程設計讓我更加了解熟悉了Java中的圖形用戶界面和它的編程方式。在完成課題的過程中也不斷充實了自己,學習到了很多以前沒有學到的知識,收獲很大。最大的收獲就是對大學學習的總結(jié)和培養(yǎng)了解決困難的信心和能力,使我對所學的專業(yè)課有了更為深刻的認識,使得知識得到了鞏固和提高。</
8、p><p><b> 十一、源程序</b></p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> import javax.swing.*;</p><p> public class Calculato
9、r extends JFrame implements ActionListener{</p><p> JPanel pnl1,pnl2;</p><p> JTextField textfild;</p><p> GridLayout grdlyt;</p><p> JButton b0,b1,b2,b3,b4,b5,b6,b
10、7,b8,b9,bp,bd;</p><p> JButton badd,bsub,bmul,bdiv,bcos,bsin,bjiecheng,bpow,beql,bclear;</p><p> String str;</p><p> boolean end,add,sub,mul,div,cos,sin,jiecheng,pow;</p>
11、<p> double num1,num2;</p><p> Calculator()</p><p><b> {</b></p><p> super("計算器");</p><p> grdlyt=new GridLayout(3,7,6,6);</p>&l
12、t;p> this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//設置窗口關(guān)閉按鈕</p><p> pnl1=new JPanel();</p><p> pnl2=new JPanel(grdlyt);</p><p> Container cp=this.getContentPane();
13、</p><p> cp.add(pnl1,"North");</p><p> cp.add(pnl2,"Center");</p><p> this.setBounds(400,300,450,240);</p><p> textfild=new JTextField("0
14、",30); </p><p> textfild.setHorizontalAlignment(JTextField.RIGHT);</p><p><b> //數(shù)字按鈕區(qū)</b></p><p> b0=new JButton("0");</p><p> b1=new JB
15、utton("1");</p><p> b2=new JButton("2");</p><p> b3=new JButton("3");</p><p> b4=new JButton("4");</p><p> b5=new JButton(&q
16、uot;5");</p><p> b6=new JButton("6");</p><p> b7=new JButton("7");</p><p> b8=new JButton("8");</p><p> b9=new JButton("9&qu
17、ot;);</p><p> bd=new JButton(".");</p><p><b> //操作按鈕區(qū)</b></p><p> bdiv=new JButton("÷");</p><p> bmul=new JButton("×&
18、quot;);</p><p> bsub=new JButton("-");</p><p> badd=new JButton("+");</p><p> bsin=new JButton("Sin");</p><p> bcos=new JButton("
19、Cos");</p><p> bjiecheng=new JButton("n!");</p><p> bclear=new JButton("C");</p><p> bpow=new JButton("x^y");</p><p> beql=new JB
20、utton("=");</p><p> //添加按鈕到面板并設置相應的監(jiān)聽事件</p><p> pnl1.add(textfild);</p><p> pnl2.add(b0);b0.addActionListener(this);</p><p> pnl2.add(b1);b1.addActionList
21、ener(this);</p><p> pnl2.add(b2);b2.addActionListener(this);</p><p> pnl2.add(b3);b3.addActionListener(this);</p><p> pnl2.add(b4);b4.addActionListener(this);</p><p>
22、; pnl2.add(b5);b5.addActionListener(this);</p><p> pnl2.add(b6);b6.addActionListener(this);</p><p> pnl2.add(b7);b7.addActionListener(this);</p><p> pnl2.add(b8);b8.addActionLis
23、tener(this);</p><p> pnl2.add(b9);b9.addActionListener(this);</p><p> pnl2.add(bd);bd.addActionListener(this);</p><p> pnl2.add(bdiv);bdiv.addActionListener(this);</p><
24、;p> pnl2.add(bmul);bmul.addActionListener(this);</p><p> pnl2.add(bsub);bsub.addActionListener(this);</p><p> pnl2.add(badd);badd.addActionListener(this);</p><p> pnl2.add(bs
25、in);bsin.addActionListener(this);</p><p> pnl2.add(bcos);bcos.addActionListener(this);</p><p> pnl2.add(bjiecheng);bjiecheng.addActionListener(this);</p><p> pnl2.add(bpow);bpow.
26、addActionListener(this);</p><p> pnl2.add(bclear);bclear.addActionListener(this);</p><p> pnl2.add(beql);beql.addActionListener(this);</p><p> this.setVisible(true);//顯示界面</p&
27、gt;<p><b> }</b></p><p> //監(jiān)聽按鈕事件并處理按鈕響應事件</p><p> public void actionPerformed(ActionEvent e)</p><p><b> {</b></p><p> if(e.getSourc
28、e()==b1)</p><p> Display(1);</p><p> else if(e.getSource()==b2)</p><p> Display(2);</p><p> else if(e.getSource()==b3)</p><p> Display(3);</p>
29、<p> else if(e.getSource()==b4)</p><p> Display(4);</p><p> else if(e.getSource()==b5)</p><p> Display(5);</p><p> else if(e.getSource()==b6)</p><p
30、> Display(6);</p><p> else if(e.getSource()==b7)</p><p> Display(7);</p><p> else if(e.getSource()==b8)</p><p> Display(8);</p><p> else if(e.getS
31、ource()==b9)</p><p> Display(9);</p><p> else if(e.getSource()==b0)</p><p> Display(0);</p><p> else if(e.getSource()==badd)</p><p> { add=true; sub
32、=false; mul=false; div=false;</p><p> cos=false; sin=false; jiecheng=false; pow=false;</p><p> bd.setEnabled(true);</p><p> num1=Double.parseDouble(textfild.getText());//接收第一個字符
33、并轉(zhuǎn)化成double型</p><p> end=true;//輸入結(jié)束 </p><p><b> }</b></p><p> else if(e.getSource()==bsub)</p><p><b> {</b></p><p> add=
34、false; sub=true; mul=false;div=false;</p><p> cos=false; sin=false; jiecheng=false; pow=false;</p><p> bd.setEnabled(true);</p><p> num1=Double.parseDouble(textfild.getText());//
35、接收第一個字符并轉(zhuǎn)化成double型</p><p> end=true;//輸入結(jié)束</p><p><b> }</b></p><p> else if(e.getSource()==bmul)</p><p><b> {</b></p><p> add=
36、false; sub=false; mul=true;div=false;</p><p> cos=false;sin=false;jiecheng=false; pow=false;</p><p> bd.setEnabled(true);</p><p> num1=Double.parseDouble(textfild.getText());//接收
37、第一個字符并轉(zhuǎn)化成double型</p><p> end=true;//輸入結(jié)束</p><p><b> }</b></p><p> else if(e.getSource()==bdiv)</p><p><b> {</b></p><p> add=fa
38、lse;sub=false;mul=false; div=true;</p><p> cos=false;sin=false; jiecheng=false; pow=false;</p><p> num1=Double.parseDouble(textfild.getText());//接收第一個字符并轉(zhuǎn)化成double型</p><p> end=tr
39、ue;//輸入結(jié)束</p><p><b> }</b></p><p> else if(e.getSource()==bcos)</p><p><b> {</b></p><p> add=false; sub=false; mul=false; div=false; </p&
40、gt;<p> cos=true; sin=false;jiecheng=false; pow=false;</p><p> bd.setEnabled(true);</p><p> num1=Double.parseDouble(textfild.getText());//接收第一個字符并轉(zhuǎn)化成double型</p><p> end=t
41、rue;//輸入結(jié)束</p><p><b> }</b></p><p> else if(e.getSource()==bsin)</p><p><b> {</b></p><p> add=false; sub=false;mul=false;div=false;</p>
42、;<p> cos=false; sin=true; jiecheng=false; pow=false;</p><p> bd.setEnabled(true);</p><p> num1=Double.parseDouble(textfild.getText());//接收第一個字符并轉(zhuǎn)化成double型</p><p> end=tr
43、ue;//輸入結(jié)束</p><p><b> }</b></p><p> else if(e.getSource()==bjiecheng)</p><p><b> {</b></p><p> add=false;sub=false; mul=false;div=false;</
44、p><p> cos=false;sin=false;jiecheng=true;pow=false;</p><p> bd.setEnabled(true);</p><p> num1=Double.parseDouble(textfild.getText());//接收第一個字符并轉(zhuǎn)化成double型</p><p> end=t
45、rue;//輸入結(jié)束</p><p><b> }</b></p><p> else if(e.getSource()==bpow)</p><p><b> {</b></p><p> add=false; sub=false; mul=false; div=false;</p&
46、gt;<p> cos=false;sin=false;jiecheng=false;pow=true;</p><p> bd.setEnabled(true);</p><p> num1=Double.parseDouble(textfild.getText());//接收第一個字符并轉(zhuǎn)化成double型</p><p> end=tru
47、e;//輸入結(jié)束</p><p><b> }</b></p><p> else if(e.getSource()==bclear)</p><p><b> {</b></p><p> bd.setEnabled(true);</p><p> textfil
48、d.setText("0");</p><p><b> }</b></p><p> else if(e.getSource()==bd)</p><p><b> {</b></p><p> str=textfild.getText();</p>&l
49、t;p><b> str+=".";</b></p><p> textfild.setText(str);</p><p> bd.setEnabled(false); </p><p><b> }</b></p><p> else if(e.getSour
50、ce()==beql)</p><p><b> {</b></p><p> bd.setEnabled(true);</p><p> num2=Double.parseDouble(textfild.getText());//接收第二個字符并轉(zhuǎn)化成double型</p><p> if(add){num1=
51、num1 + num2;}</p><p> else if(sub){num1=num1 - num2;}</p><p> else if(mul){num1=num1*num2;}</p><p> else if(div)</p><p> { if(num2==0)</p><p><b>
52、; {</b></p><p> textfild.setText("輸入非法");</p><p><b> return;</b></p><p><b> }</b></p><p> num1=num1/num2;</p><p&
53、gt;<b> }</b></p><p> else if(cos){num1=Math.cos(num1);}</p><p> else if(sin){num1=Math.sin(num1);}</p><p> else if(jiecheng){ num1=funjiecheng(num1); }</p>&l
54、t;p> else if(pow){num1=Math.pow(num1,num2);}</p><p> textfild.setText(String.valueOf(num1));//把所得結(jié)果顯示在文本框</p><p> end=true; </p><p><b> }</b></p><p&g
55、t;<b> }</b></p><p> public double funjiecheng(double num)//階乘計算</p><p><b> {</b></p><p> double sum=1;</p><p><b> double i;</b>
56、</p><p> for(i=num;i>0;i--){</p><p> sum=sum*i;}</p><p> return sum;</p><p><b> }</b></p><p> public void Display(int i)//textfild顯示按鈕
57、輸入</p><p><b> {</b></p><p> String s = null;</p><p> s=String.valueOf(i);</p><p> if(end)//如果數(shù)字輸入結(jié)束,則將文本框置零,重新輸入</p><p><b> {</b&
58、gt;</p><p> textfild.setText("0");</p><p> end=false;</p><p><b> }</b></p><p> if((textfild.getText()).equals("0"))//如果文本框的內(nèi)容為零,則覆蓋文
59、本框的內(nèi)容</p><p><b> {</b></p><p> textfild.setText(s);</p><p><b> }</b></p><p> else//如果文本框的內(nèi)容不為零,則在內(nèi)容后面添加數(shù)字</p><p><b> {&l
60、t;/b></p><p> str=textfild.getText() + s;</p><p> textfild.setText(str);</p><p><b> }</b></p><p><b> } </b></p><p> public
61、 static void main(String[] args)//主函數(shù)入口</p><p><b> {</b></p><p> new Calculator();</p><p><b> }</b></p><p><b> }參考文獻</b></p&
62、gt;<p> [1] 葉核亞.Java程序設計實用教程(第3版)[M].北京:電子工業(yè)出版社,2010.</p><p> [2] 霍斯特曼. Java核心技術(shù)[M].北京:機械工業(yè)出版社,2008.</p><p> [3] Bruce Eckel. Java編程思想[M]. 北京:機械工業(yè)出版社,2009.</p><p> [4] FL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設計---計算器
- java課程設計--計算器
- java課程設計計算器
- 計算器java課程設計--簡單計算器
- java課程設計—計算器
- java課程設計計算器
- java計算器課程設計
- java_計算器課程設計
- java課程設計-計算器系統(tǒng)
- java課程設計---科學計算器
- java實現(xiàn)計算器課程設計
- java課程設計-計算器系統(tǒng)
- java計算器課程設計報告
- java課程設計報告—計算器
- java課程設計----簡易計算器
- java計算器課程設計---計算器模擬程序
- java課程設計報告--計算器設計
- java計算器課程設計報告---模擬科學計算器
- java計算器課程設計-- 計算器的設計與實現(xiàn)
- java課程設計模擬科學計算器
評論
0/150
提交評論