版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 課程設(shè)計(jì)(大作業(yè))報(bào)告課程名稱:設(shè)計(jì)題目:計(jì)算器設(shè)計(jì)院 系:信息技術(shù)學(xué)院班 級(jí):計(jì)算機(jī)科學(xué)與技術(shù)(2)班設(shè) 計(jì) 者:學(xué) 號(hào):201011010208指導(dǎo)教師:設(shè)計(jì)時(shí)間:昆明學(xué)院昆明學(xué)院課程設(shè)計(jì)(大作業(yè))任務(wù)書 課程設(shè)計(jì)(大作業(yè))報(bào)告1、 課程設(shè)計(jì)介紹 41.1課程設(shè)計(jì)內(nèi)容 .41.2課程設(shè)計(jì)要求 .42、 總體設(shè)計(jì) 42.1課設(shè)題目總體設(shè)計(jì)、算法描述42.1.1、功能模塊設(shè)計(jì)42.1.2、界面設(shè)計(jì)代碼.42.2功能模塊圖、流程圖分析.63、 調(diào)試與性能分析 (相關(guān)截圖 64、 參考文獻(xiàn).8附 錄(程序清單).91、課程設(shè)計(jì)介紹1.1課程設(shè)計(jì)內(nèi)容本計(jì)算器是由java 語言所編程設(shè)計(jì)的標(biāo)準(zhǔn)計(jì)算器
2、,可以進(jìn)行十進(jìn)制下的四則運(yùn)算(加、減、乘、除)、開根號(hào)、百分號(hào)、求倒數(shù),還可以實(shí)現(xiàn)數(shù)值的符號(hào)轉(zhuǎn)換操作。 ,Backspace 表示退格, CE 表示將當(dāng)前文本框內(nèi)數(shù)據(jù)清除,C 表示文本框內(nèi)數(shù)據(jù)清除。此外還提供了“編輯”、“查看”、“幫助”三個(gè)菜單項(xiàng),使用者可通過使用菜單項(xiàng)實(shí)現(xiàn)復(fù)制、粘貼功能。界面類似windows 自帶計(jì)算器界面。1.2課程設(shè)計(jì)要求(1)設(shè)計(jì)一個(gè)標(biāo)準(zhǔn)型的計(jì)算器應(yīng)用程序,完成簡單的算法運(yùn)算。(2)該程序可以通過鼠標(biāo)一次鍵入?yún)⒓佑?jì)算的數(shù)值,不僅可以參加加減乘除運(yùn)算,還可以完成開方、百分運(yùn)算、倒數(shù)運(yùn)算等這些運(yùn)算,并且還有小數(shù)點(diǎn)、正負(fù)號(hào)、退格、清零這些功能。2、總體設(shè)計(jì)2.1、課設(shè)題目
3、總體設(shè)計(jì)、算法描述2.1.1、功能模塊設(shè)計(jì)計(jì)算器基本功能(1)加法兩個(gè)數(shù)據(jù)進(jìn)行加操作,可以為小數(shù)。(2)減法兩個(gè)數(shù)據(jù)進(jìn)行減操作,可以為負(fù)數(shù)相減。(3)乘法兩個(gè)數(shù)相乘操作。(4)除法兩個(gè)數(shù)相除操作。(5)開平方對(duì)任意一個(gè)數(shù)進(jìn)行開方運(yùn)算,可以是小數(shù)。(6)百分號(hào)對(duì)任意一個(gè)數(shù)進(jìn)行百分號(hào)運(yùn)算。(7)倒數(shù)對(duì)任意一個(gè)數(shù)進(jìn)行倒數(shù)運(yùn)算。算法分析:事件監(jiān)聽器的事件處理方法void actionPerformed(ActionEvent evt 完成主要的按鈕事件的處理。事件處理分為以下幾種情況:數(shù)字按鈕事件(“0”、“1”、“2”、“3”、. “8”、“9”),運(yùn)算符按鈕事件(“+”、“-”、“,”“*”、“/
4、”、“%”),正負(fù)值按鈕事件(“+/-”),小數(shù)點(diǎn)按鈕事件(“. ”), 等號(hào)按鈕事件(“=”), 求倒按鈕事件(“1、x ”),退格按鈕事件(“CE ”),清除按鈕事件(“C ”),2.1.2、 界面設(shè)計(jì)代碼計(jì)算器的界面由一個(gè)文本框及27個(gè)按鈕組成,具體實(shí)現(xiàn)代碼如下所示:JPanel pa1=new JPanel(;pa1.setBackground(new Color(236,231,210;text=new JTextField("0.",31;pa1.add("North",text; /面板添加和按鈕的設(shè)置JPanel pa=new JPane
5、l(;JPanel pa2=new JPanel(;JButton bt1=new JButton("Backspace"JButton bt2=new JButton("CE"JButton bt3=new JButton("C"bt1.addActionListener(this;bt2.addActionListener(this;bt3.addActionListener(this;pa2.add(bt1;pa2.add(bt2;pa2.add(bt3; pa.setLayout(new BorderLayout(;pa.ad
6、d(pa2,"North"JPanel p1=new JPanel(;p1.setLayout(new GridLayout(4,1,2,5;JButton bt4=new JButton("MC"JButton bt5=new JButton("MR"JButton bt6=new JButton("MS"JButton bt7=new JButton("M+"p1.add(bt4; p1.add(bt5;p1.add(bt6;p1.add(bt7;pa.add(p1,"West&q
7、uot;JPanel p = new JPanel(;p.setLayout(new GridLayout(4, 5,2,5; String buttons = "7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x",&quo
8、t;0",".","=","+","+/-" JButton btn=new JButtonbuttons.length;for (int i = 0; i < buttons.length; i+addButton(p, buttonsi;pa.add(p, "Center"pa1.add("South",pa;this.getContentPane(.add(pa1;private void addButton(Container c, String s
9、JButton b = new JButton(s;c.add(b;b.addActionListener(this;2.2功能模塊圖、流程圖分析 3、調(diào)試與性能分析 (相關(guān)截圖(1)標(biāo)準(zhǔn)計(jì)算其界面 (2)、加、減、乘除運(yùn)算演示分別輸入8和4進(jìn)行運(yùn)算演示加法 8 =乘法 *= 開方運(yùn)算 sqrt 百分號(hào)運(yùn)算 % 倒數(shù)運(yùn)算 1/x4、參考文獻(xiàn)Java 語言程序設(shè)計(jì)(第6版) 機(jī)械工程出版社5、附錄(程序清單)import java.awt.*;import java.awt.event.*;import javax.swing.*;public class jisuanqi extends JF
10、rame implements ActionListener,ItemListener JTextField text;JTextField textMemory;boolean clickable;double memoryd; /使用內(nèi)存中存儲(chǔ)的數(shù)字int memoryi;String copy;public jisuanqi(super("計(jì)算器"setSize(357,253;public void init(clickable = true;JPanel pa1=new JPanel(;pa1.setBackground(new Color(236,231,210
11、;text=new JTextField("0.",31; text.setHorizontalAlignment(JTextField.RIGHT;/從右到左 pa1.add("North",text;/面板添加和按鈕的設(shè)置JPanel pa=new JPanel(;JPanel pa2=new JPanel(;JButton bt1=new JButton("Backspace"JButton bt2=new JButton("CE"JButton bt3=new JButton("C"bt
12、1.addActionListener(this;bt2.addActionListener(this;bt3.addActionListener(this;pa2.add(bt1;pa2.add(bt2;pa2.add(bt3; pa.setLayout(new BorderLayout(;pa.add(pa2,"North"JPanel p1=new JPanel(;p1.setLayout(new GridLayout(4,1,2,5;JButton bt4=new JButton("MC" JButton bt5=new JButton(&quo
13、t;MR"JButton bt6=new JButton("MS"JButton bt7=new JButton("M+"p1.add(bt4;p1.add(bt5;p1.add(bt6;p1.add(bt7;pa.add(p1,"West"JPanel p = new JPanel(;p.setLayout(new GridLayout(4, 5,2,5;Stringbuttons = "7","8","9","/","sqrt&qu
14、ot;,"4","5","6","*","%","1","2","3","-","1/x","0",".","=","+","+/-"JButton btn=new JButtonbuttons.length;for (int i = 0; i < buttons.length; i+addB
15、utton(p, buttonsi;pa.add(p, "Center"pa1.add("South",pa;this.getContentPane(.add(pa1; private void addButton(Container c, String s JButton b = new JButton(s;c.add(b;b.addActionListener(this;/功能的實(shí)現(xiàn)public void actionPerformed(ActionEvent evtString s = evt.getActionCommand(;if(s.equa
16、ls("CE"|s.equals("C"text.setText(""/else if(s.equals("+/-"/單擊"+/-"選擇輸入的運(yùn)算數(shù)是正數(shù)還是負(fù)數(shù) double x;x=Double.parseDouble(text.getText(.trim(;text.setText(""+(-x; elseif (s = "sqrt" String s1 = text.getText(;if (s1.charAt(0 = '-'&am
17、p;& clickable = true text.setText("負(fù)數(shù)不能開根號(hào)"clickable = false;elsetext.setText(Double.toString(java.lang.Math.sqrt(Double. parseDouble(text.getText(;else if(s.equals("%"/單擊了"%"按鈕 double x;x=Double.parseDouble(text.getText(.trim(; text.setText(""+(0.01*x;/ s
18、tr.setLength(0;/y=0d;else if(s.equals("1/x"/單擊了"1/X"按鈕 double x;x=Double.parseDouble(text.getText(.trim(;if(x=0text.setText("除數(shù)不能為零"else text.setText(""+(1/x;/按下'+/-'按鈕時(shí)處理if (s= "+/-" && clickable = true boolean isNumber = true;String
19、 s1 = text.getText(;for (int i = 0; i < s.length(; i+if (! (s1.charAt(i >= '0' && s1.charAt(i <= '9' | s1.charAt(i = '.' |s1.charAt(i = '-' isNumber = false;break;if (isNumber = true /如果當(dāng)前字符串首字母有'-' 號(hào), 代表現(xiàn)在是個(gè)負(fù)數(shù), 再按下時(shí), 則將首符號(hào)去掉if (s.charAt(0 = &
20、#39;-' text.setText(""for (int i = 1; i < s1.length(; i+ char a = s1.charAt(i;text.setText(text.getText( + a;/如果當(dāng)前字符串第一個(gè)字符不是符號(hào),則添加一個(gè)符號(hào)在首字母處 elsetext.setText('-' + s;/計(jì)算器有關(guān)內(nèi)存操作/'MC'的操作,將內(nèi)存清0elseif (s = "MC" && clickable = true memoryd = memoryi = 0;t
21、extMemory.setText(""/'MS'的操作,將當(dāng)前文本框內(nèi)容保存入內(nèi)存,顯示'M'elseif (s = "MS" && clickable = true boolean isDot = false;textMemory.setText(" M"for (int i = 0; i < text.getText(.length(; i+if ('.' = text.getText(.charAt(i isDot = true;break;/如果是doub
22、le, 則存入memoryd(double存儲(chǔ)器if (isDot = true memoryd = Double.parseDouble(text.getText(;memoryi = 0; /保證存儲(chǔ)器中存放最新的值/如果是int, 則存入memoryi(int存儲(chǔ)器else memoryi = Integer.parseInt(text.getText(;memoryd = 0; /保證存儲(chǔ)器中存放最新的值/'MR'的操作,將存儲(chǔ)器中的信息輸出elseif (s = "MR" && clickable = true if (memory
23、d != 0text.setText(Double.toString(memoryd;if (memoryi != 0text.setText(Integer.toString(memoryi;/'M+'的功能,將當(dāng)前文本框里的數(shù)據(jù)和存儲(chǔ)器中數(shù)據(jù)相加后,再存入存儲(chǔ)器 elseif (s = "M+" && clickable = true boolean isDot = false;for (int i = 0; i < text.getText(.length(; i+if ('.' = text.getText(.c
24、harAt(i isDot = true;break;if (memoryi != 0 /存儲(chǔ)中是一個(gè)int 型數(shù)if (isDot = false /被加數(shù)是一個(gè)int 型數(shù)memoryi += Integer.parseInt(text.getText(;else /被加數(shù)是一個(gè)double 型數(shù),則將int 存儲(chǔ)器中數(shù)傳入double 存儲(chǔ)器與當(dāng)前數(shù)相加,int 存儲(chǔ)器清零memoryd = memoryi + Double.parseDouble(text.getText(; memoryi = 0;elsememoryd += Double.parseDouble(text.getText(;elseif ('0' <= s.charAt(0 && s.charAt(0 <= '9' | s.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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銷售外包的簡單合同
- 2024版長春房屋買賣合同文本
- 2025場地租賃合同標(biāo)準(zhǔn)范本(含環(huán)保條款)2篇
- 2025年度中央廚房承包合同范本(二零二五年度)4篇
- 2025年度磚廠生產(chǎn)線升級(jí)改造承包合同4篇
- 2025年度磚廠智能化生產(chǎn)系統(tǒng)承包合同4篇
- 2025年度智能溫室大棚使用權(quán)轉(zhuǎn)讓購買合同范本
- 2025年度物業(yè)管理與社區(qū)養(yǎng)老服務(wù)平臺(tái)合同4篇
- 2024年項(xiàng)目委托建設(shè)協(xié)議3篇
- 2025年度醫(yī)療器械注冊(cè)代理與風(fēng)險(xiǎn)控制合同3篇
- 城市軌道交通的網(wǎng)絡(luò)安全與數(shù)據(jù)保護(hù)
- 英國足球文化課件
- 《行政職業(yè)能力測驗(yàn)》2023年公務(wù)員考試新疆維吾爾新疆生產(chǎn)建設(shè)兵團(tuán)可克達(dá)拉市預(yù)測試題含解析
- 醫(yī)院投訴案例分析及處理要點(diǎn)
- 燙傷的安全知識(shí)講座
- 工程變更、工程量簽證、結(jié)算以及零星項(xiàng)目預(yù)算程序?qū)嵤┘?xì)則(試行)
- 練習(xí)20連加連減
- 五四制青島版數(shù)學(xué)五年級(jí)上冊(cè)期末測試題及答案(共3套)
- 員工內(nèi)部崗位調(diào)換申請(qǐng)表
- 商法題庫(含答案)
- 鋼結(jié)構(gòu)用高強(qiáng)度大六角頭螺栓連接副 編制說明
評(píng)論
0/150
提交評(píng)論