版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 實(shí)驗(yàn)一:計(jì)算器應(yīng)用程序?qū)嶒?yàn)報(bào)告</p><p><b> 目錄</b></p><p><b> 一 概述2</b></p><p> 二 總體方案設(shè)計(jì)3</p><p><b> 三 詳細(xì)設(shè)計(jì)11</b></p><p&
2、gt; 五 課程設(shè)計(jì)體會(huì)和總結(jié)12</p><p> 六 附錄…………………………………………….…13</p><p><b> 一 概述</b></p><p> 1.程序具備的功能:</p><p> ?。?)使用圖形用戶界面:一個(gè)文本框;0-9數(shù)字按鈕;加、減、乘、除運(yùn)算符;“小數(shù)點(diǎn)”和“等于”符號(hào);
3、復(fù)位按鈕;清空按鈕;開(kāi)方和平方以及求倒按鈕;</p><p> ?。?)完成整數(shù)、實(shí)數(shù)的四則運(yùn)算(加、減、乘、除);</p><p> ?。?)通過(guò)按鈕點(diǎn)擊實(shí)現(xiàn)數(shù)據(jù)的復(fù)位(清空);</p><p> ?。?)通過(guò)按鈕點(diǎn)擊實(shí)現(xiàn)數(shù)據(jù)的刪除;</p><p> (5)通過(guò)按鈕點(diǎn)擊實(shí)現(xiàn)對(duì)數(shù)據(jù)的開(kāi)方或平方。</p><p>
4、 2.課程設(shè)計(jì)的主要設(shè)計(jì)思想 </p><p> 對(duì)于此計(jì)算器程序,首先要設(shè)計(jì)其GUI界面,總體界面有一個(gè)文本框,22個(gè)按鈕,總體界面用BorderLayout布局。</p><p> 文本框放置在最上端,然后0到9以及+,-,*,/,sqrt,平方,求倒的按鈕放置到一個(gè)面板Panel中,添加到整體布局的中,界面設(shè)計(jì)完成。</p><p> 布局設(shè)計(jì)好后再添加
5、按鈕事件。對(duì)于此程序要考慮到點(diǎn)擊加、減、乘、除按鈕時(shí)是否有點(diǎn)擊數(shù)字按鈕,如果是第一次點(diǎn)擊數(shù)字按鈕或者是點(diǎn)擊數(shù)字按鈕前點(diǎn)擊了加、減、乘、除按鈕則直接把數(shù)字按鈕的數(shù)值設(shè)置到文本框中,否則則應(yīng)把文本框中的內(nèi)容加上你所點(diǎn)擊按鈕的數(shù)值設(shè)置到文本框中。</p><p> 在進(jìn)行加、減、乘、除計(jì)算時(shí)要把點(diǎn)擊加、減、乘、除按鈕之</p><p> 前的數(shù)值保存下來(lái),運(yùn)算時(shí)是這個(gè)被保存下來(lái)的數(shù)值和文本框
6、中的數(shù)值加、減、乘、除。</p><p><b> 二 總體方案設(shè)計(jì)</b></p><p><b> 1.界面設(shè)計(jì)</b></p><p> 界面設(shè)計(jì)要求用GUI,界面設(shè)計(jì)中有用到swing組件的TextField和Button,用到awt中的BorderLayout和GridLayout布局管理方式,其圖形界面如
7、下:</p><p><b> 2.功能介紹</b></p><p> 這是一種簡(jiǎn)單的計(jì)算器中,本項(xiàng)目用到了Java中的GUI界面和swing組件以及awt布局,簡(jiǎn)單易用,它能完成如下的幾個(gè)小功能:</p><p> 點(diǎn)擊按鈕中的數(shù)字鍵和運(yùn)算符鍵就能進(jìn)行簡(jiǎn)單的加、乘、乘、除求模四則運(yùn)算 ;</p><p> 還能
8、通過(guò)按鈕鍵進(jìn)行開(kāi)方和平方及求倒運(yùn)算;</p><p> 如果輸入有誤時(shí)可以清空按鈕撤銷(xiāo)后重新輸入新數(shù)據(jù);</p><p> 還可以后退按鈕來(lái)向后退一位數(shù)字而不必全部刪除。</p><p><b> 三詳細(xì)設(shè)計(jì)</b></p><p><b> 程序流程圖如下:</b></p>
9、<p> 部分代碼展示及說(shuō)明:</p><p> ?。?)這段代碼主要是對(duì)程序的主框架進(jìn)行相應(yīng)的設(shè)置。</p><p> class JSQFrame extends JFrame</p><p><b> {</b></p><p> public JSQFrame()</p><
10、p><b> {</b></p><p> setTitle("計(jì)算器");</p><p> setSize(WIDTH,HEIGHT);</p><p> JSQPanel panel=new JSQPanel();</p><p> panel.setBackground(Col
11、or.blue);//設(shè)置背景顏色為藍(lán)色</p><p> Border border=BorderFactory.createLoweredBevelBorder();</p><p> Border bj=BorderFactory.createTitledBorder(border,"計(jì)算器");</p><p> panel.set
12、Border(bj);</p><p> Container contentPane=getContentPane();</p><p> contentPane.add(panel); </p><p> l = new JLabel(TP);</p><p> l.setBounds(3, 0,333, 375);&l
13、t;/p><p> contentPane.add(l);//在面板上增加圖片</p><p> contentPane.add(panel); </p><p><b> }</b></p><p> public static final int WIDTH=333;</p><p>
14、 public static final int HEIGHT=375;//設(shè)置大小</p><p> protected JLabel l;</p><p> protected ImageIcon TP;</p><p><b> }</b></p><p> ?。?)這段代碼是在框架上加按鈕及背景外觀的設(shè)置:
15、</p><p> public JSQPanel()</p><p><b> {</b></p><p> i = new ImageIcon("1.jpg");</p><p> lab = new JLabel(i);</p><p> add(lab);/
16、/顯示圖片</p><p> display=new JTextField("",30);</p><p> display.setBounds(0, 15,15, 25);</p><p> add(display)</p><p> JPanel Buttons=new JPanel();</p>
17、<p> Buttons.setLayout(new GridLayout(4,6,6,6));</p><p> addButton(this," ← "); addButton(this," 清空 ");</p><p> String buttons="123=a4
18、56+-789*/.0";</p><p> for(int i=0;i<buttons.length();i++)</p><p> addButton(Buttons,buttons.substring(i,i+1));</p><p> addButton(Buttons,"sqrt");</p><
19、;p> addButton(Buttons,"求倒");</p><p> addButton(Buttons,"平方");</p><p> add(Buttons);//在框架上加按鈕</p><p><b> }</b></p><p> ?。?)這段代碼是對(duì)
20、不同按鈕顏色的設(shè)置:</p><p> private void addButton(Container c,String s)</p><p> { JButton b=new JButton(s);</p><p> if(s.charAt(0)>='0'&&s.charAt(0)<='9')&
21、lt;/p><p> b.setBackground(Color.green);</p><p> else b.setBackground(Color.orange);</p><p><b> c.add(b);</b></p><p> b.addActionListener(this);</p>
22、;<p><b> }</b></p><p> ?。?)這段代碼是對(duì)程序如何進(jìn)行運(yùn)算的設(shè)計(jì)</p><p> public void actionPerformed(ActionEvent event)</p><p><b> {</b></p><p> String s
23、=event.getActionCommand();</p><p> if(s.charAt(0)>='0'&&s.charAt(0)<='9'||s.equals("."))</p><p><b> {</b></p><p> if(start) di
24、splay.setText(s);</p><p> else display.setText(display.getText()+s);</p><p> start=false;//判斷是不是數(shù)字或小數(shù)點(diǎn)</p><p><b> }</b></p><p><b> else</b>&
25、lt;/p><p><b> {</b></p><p><b> if(start)</b></p><p><b> {</b></p><p> if(s.equals("-"))</p><p><b> {&
26、lt;/b></p><p> display.setText(s);</p><p> start=false;</p><p><b> }</b></p><p> else op=s;</p><p><b> }</b></p><
27、;p> if(s.equals(" 清空 "))</p><p> { arg=0;</p><p><b> op="=";</b></p><p> display.setText("");}//清空按鈕作用設(shè)置</p><p&g
28、t; else if(s.equals(" ← "))</p><p><b> {</b></p><p> String a=display.getText();</p><p> String s1=a.substring(0,a.length()-1);</p>
29、<p> arg=Double.parseDouble(s1);</p><p> display.setText(s1+"");//退后按鈕作用設(shè)置</p><p><b> }</b></p><p> else if(s.equals("sqrt")) </p>&l
30、t;p><b> {</b></p><p> double x=Double.parseDouble(display.getText()); </p><p> arg=jc(x);//調(diào)用函數(shù)</p><p> display.setText(""+arg);</p><p> t
31、art=true;</p><p><b> }</b></p><p> else if(s.equals("平方")) </p><p><b> {</b></p><p> double x=Double.parseDouble(display.getText()
32、); </p><p> arg=x*x;//平方算法</p><p> display.setText(""+arg);</p><p> start=true; }</p><p> else if(s.equals("求倒")) </p><p><b&g
33、t; {</b></p><p> double x=Double.parseDouble(display.getText());</p><p> arg=1/x;//求倒算法</p><p> display.setText(""+arg);</p><p> start=true;</p&
34、gt;<p><b> } </b></p><p><b> else</b></p><p><b> {</b></p><p> double x=Double.parseDouble(display.getText()); </p><p>
35、 calculate(x);</p><p><b> op=s;</b></p><p> start=true;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b
36、></p><p> public void calculate(double n)</p><p><b> {</b></p><p> if(op.equals("+")) arg+=n ; //加法算法</p><p> else if(op.equals("-&quo
37、t;)) arg-=n;//減法算法</p><p> else if(op.equals("/")) arg/=n;//除法算法</p><p> else if(op.equals("*")) arg*=n;//乘法算法</p><p> else if(op.equals("=")) arg=n
38、; </p><p> display.setText(""+arg); </p><p> start=true;</p><p><b> }</b></p><p> public double jc(double x)</p><p><
39、;b> {</b></p><p><b> double t;</b></p><p> t=Math.sqrt(x);</p><p> return(t);//開(kāi)方的算法</p><p><b> }</b></p><p> privat
40、e JTextField display;</p><p> private double arg=0;</p><p> private String op="=";</p><p> private boolean start=true;</p><p> private ImageIcon i;</p&
41、gt;<p> private JLabel lab;</p><p><b> }</b></p><p> 四 程序的調(diào)試與運(yùn)行結(jié)果說(shuō)明</p><p> 事例1:45+87 預(yù)計(jì)結(jié)果 132 實(shí)際結(jié)果</p><p> 事例2: 29-87 預(yù)計(jì)結(jié)果-58 實(shí)際結(jié)果:</p
42、><p> 事例2:45/5 預(yù)計(jì)結(jié)果 9 實(shí)際結(jié)果</p><p> 事例3 9的平方及開(kāi)方 預(yù)計(jì)結(jié)果81和3 實(shí)際結(jié)果
43、 </p><p> 五 課程設(shè)計(jì)體會(huì)和總結(jié)</p><p><b> 六 附錄</b></p><p> import javax.swing.*;</p><p> import java.awt.*;</p>
44、<p> import java.awt.event.*;</p><p> import java.awt.color.*;</p><p> import javax.swing.border.*;</p><p> import java.util.*;</p><p> import java.lang.*;<
45、;/p><p> public class JSQ</p><p><b> {</b></p><p> public static void main(String[] args)</p><p><b> {</b></p><p> JSQFrame frame
46、=new JSQFrame();</p><p> frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p> frame.show();</p><p><b> }</b></p><p><b> }</b></
47、p><p> class JSQFrame extends JFrame</p><p><b> {</b></p><p> public JSQFrame()</p><p><b> {</b></p><p> setTitle("計(jì)算器"
48、);</p><p> setSize(WIDTH,HEIGHT);</p><p> JSQPanel panel=new JSQPanel();</p><p> panel.setBackground(Color.blue);</p><p> Border border=BorderFactory.createLoweredB
49、evelBorder();</p><p> Border bj=BorderFactory.createTitledBorder(border,"計(jì)算器");</p><p> panel.setBorder(bj);</p><p> Container contentPane=getContentPane()</p>&
50、lt;p> contentPane.add(panel); </p><p> l = new JLabel(TP);</p><p> l.setBounds(3, 0,333, 375);</p><p> contentPane.add(l);</p><p> contentPane.add(panel);
51、 </p><p><b> }</b></p><p> public static final int WIDTH=333;</p><p> public static final int HEIGHT=375;</p><p> protected JLabel l;</p><p&
52、gt; protected ImageIcon TP;</p><p><b> }</b></p><p> class JSQPanel extends JPanel implements ActionListener</p><p><b> {</b></p><p> publi
53、c JSQPanel()</p><p><b> {</b></p><p> i = new ImageIcon("1.jpg");</p><p> lab = new JLabel(i);</p><p><b> add(lab);</b></p>
54、<p> display=new JTextField("",30);</p><p> display.setBounds(0, 15,15, 25);</p><p> add(display);</p><p> JPanel Buttons=new JPanel();</p><p> Bu
55、ttons.setLayout(new GridLayout(4,6,6,6));</p><p> addButton(this," ← ");</p><p> addButton(this," 清空 ");</p><p> String buttons="1
56、23=a456+-789*/.0";</p><p> for(int i=0;i<buttons.length();i++)</p><p> addButton(Buttons,buttons.substring(i,i+1));</p><p> addButton(Buttons,"sqrt");</p>
57、<p> addButton(Buttons,"求倒");</p><p> addButton(Buttons,"平方");</p><p> add(Buttons);</p><p><b> }</b></p><p> private void
58、addButton(Container c,String s)</p><p><b> {</b></p><p> if(s.charAt(0)>='0'&&s.charAt(0)<='9')</p><p> b.setBackground(Color.green);<
59、;/p><p> else b.setBackground(Color.orange);</p><p><b> c.add(b);</b></p><p> b.addActionListener(this);</p><p><b> }</b></p><p>
60、; public void actionPerformed(ActionEvent event)</p><p><b> {</b></p><p> String s=event.getActionCommand();</p><p> if(s.charAt(0)>='0'&&s.charAt
61、(0)<='9'||s.equals("."))</p><p><b> {</b></p><p> if(start) display.setText(s);</p><p> else display.setText(display.getText()+s);</p><
62、;p> start=false;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> if(start)</b></p><p
63、><b> {</b></p><p> if( s.equals("-"))</p><p><b> {</b></p><p> display.setText(s);</p><p> start=false;</p><p>&l
64、t;b> }</b></p><p> else op=s;</p><p><b> }</b></p><p> if(s.equals(" 清空 "))</p><p><b> {</b></p><p>
65、<b> arg=0;</b></p><p><b> op="=";</b></p><p> display.setText("");</p><p><b> }</b></p><p> else if(s.equal
66、s(" ← "))</p><p><b> {</b></p><p> String a=display.getText();</p><p> String s1=a.substring(0,a.length()-1);</p><p> arg=Doub
67、le.parseDouble(s1);</p><p> display.setText(s1+"");</p><p><b> }</b></p><p> else if(s.equals("sqrt")) </p><p><b> {</b>
68、</p><p> double x=Double.parseDouble(display.getText()); </p><p> arg=jc(x);</p><p> display.setText(""+arg);</p><p> start=true;</p><p><
69、b> }</b></p><p> else if(s.equals("平方")) </p><p><b> {</b></p><p> double x=Double.parseDouble(display.getText()); </p><p><b>
70、 arg=x*x;</b></p><p> display.setText(""+arg);</p><p> start=true; }</p><p> else if(s.equals("求倒")) </p><p><b> {</b></p&g
71、t;<p> double x=Double.parseDouble(display.getText());</p><p><b> arg=1/x;</b></p><p> display.setText(""+arg);</p><p> start=true;</p><p
72、><b> } </b></p><p><b> else</b></p><p><b> {</b></p><p> double x=Double.parseDouble(display.getText()); </p><p> calculate
73、(x);</p><p><b> op=s;</b></p><p> start=true;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></
74、p><p> public void calculate(double n)</p><p><b> {</b></p><p> if(op.equals("+")) arg+=n ; </p><p> else if(op.equals("-")) arg-=n;<
75、;/p><p> else if(op.equals("/")) arg/=n;</p><p> else if(op.equals("*")) arg*=n;</p><p> else if(op.equals("=")) arg=n; </p><p>
76、 display.setText(""+arg); </p><p> start=true;</p><p><b> }</b></p><p> public double jc(double x)</p><p><b> {</b></p>&l
77、t;p><b> double t;</b></p><p> t=Math.sqrt(x);</p><p> return(t);</p><p><b> }</b></p><p> private JTextField display;</p><p&g
78、t; private double arg=0;</p><p> private String op="=";</p><p> private boolean start=true;</p><p> private ImageIcon i;</p><p> private JLabel lab;</
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計(jì)-- 實(shí)現(xiàn)計(jì)算器功能的應(yīng)用程序
- java課程設(shè)計(jì)--實(shí)現(xiàn)計(jì)算器功能的應(yīng)用程序
- java課程設(shè)計(jì)報(bào)告—計(jì)算器
- java計(jì)算器課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告--簡(jiǎn)單的計(jì)算器設(shè)計(jì)
- java課程設(shè)計(jì)報(bào)告--計(jì)算器設(shè)計(jì)
- java計(jì)算器課程設(shè)計(jì)報(bào)告---模擬科學(xué)計(jì)算器
- java計(jì)算器課程設(shè)計(jì)---計(jì)算器模擬程序
- 課程設(shè)計(jì)--實(shí)現(xiàn)計(jì)算器功能的應(yīng)用程序
- java程序課程設(shè)計(jì)--計(jì)算器編輯
- java課程設(shè)計(jì)報(bào)告--java桌面應(yīng)用程序設(shè)計(jì)開(kāi)發(fā)
- java課程設(shè)計(jì)報(bào)告----計(jì)算器軟件設(shè)計(jì)
- java課程設(shè)計(jì)---java計(jì)算器
- java課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告--java日歷設(shè)計(jì)
- 計(jì)算器java課程設(shè)計(jì)--簡(jiǎn)單計(jì)算器
- java課程設(shè)計(jì)---計(jì)算器
- java課程設(shè)計(jì)—計(jì)算器
- java課程設(shè)計(jì)計(jì)算器
- java計(jì)算器課程設(shè)計(jì)
- java課程設(shè)計(jì)--計(jì)算器
評(píng)論
0/150
提交評(píng)論