java課程設(shè)計 實現(xiàn)計算器功能的應(yīng)用程序
《java課程設(shè)計 實現(xiàn)計算器功能的應(yīng)用程序》由會員分享,可在線閱讀,更多相關(guān)《java課程設(shè)計 實現(xiàn)計算器功能的應(yīng)用程序(29頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、攀枝花學(xué)院攀枝花學(xué)院學(xué)生課程設(shè)計(論文)學(xué)生課程設(shè)計(論文)題 目: 實現(xiàn)計算器功能的應(yīng)用程序?qū)崿F(xiàn)計算器功能的應(yīng)用程序 學(xué)生姓名: 葛肪瑜葛肪瑜 學(xué) 號: 201010801018201010801018 所在院(系): 數(shù)學(xué)與計算機學(xué)院數(shù)學(xué)與計算機學(xué)院 專 業(yè): 計算機科學(xué)與技術(shù)計算機科學(xué)與技術(shù) 班 級: 20102010 級計本一班級計本一班 指 導(dǎo) 教 師: 范勝波范勝波 職稱: 講師講師 2013 年 6 月 9 日攀枝花學(xué)院教務(wù)處制攀枝花學(xué)院課程設(shè)計評定表2課程設(shè)計(論文)指導(dǎo)教師成績評定表課程設(shè)計(論文)指導(dǎo)教師成績評定表題目名稱題目名稱評分項目評分項目分分值值得得分分評價內(nèi)涵評價
2、內(nèi)涵01學(xué)習(xí)態(tài)度6 6遵守各項紀律,工作刻苦努力,具有良好的科學(xué)工作態(tài)度。02科學(xué)實踐、調(diào)研7 7通過實驗、試驗、查閱文獻、深入生產(chǎn)實踐等渠道獲取與課程設(shè)計有關(guān)的材料。工作表現(xiàn)20%03課題工作量7 7按期圓滿完成規(guī)定的任務(wù),工作量飽滿。04綜合運用知識的能力1010能運用所學(xué)知識和技能去發(fā)現(xiàn)與解決實際問題,能正確處理實驗數(shù)據(jù),能對課題進行理論分析,得出有價值的結(jié)論。05應(yīng)用文獻的能力5 5能獨立查閱相關(guān)文獻和從事其他調(diào)研;能提出并較好地論述課題的實施方案;有收集、加工各種信息及獲取新知識的能力。06設(shè)計(實驗)能力,方案的設(shè)計能力5 5能正確設(shè)計實驗方案,獨立進行裝置安裝、調(diào)試、操作等實驗工
3、作,數(shù)據(jù)正確、可靠;研究思路清晰、完整。07計算及計算機應(yīng)用能力5 5具有較強的數(shù)據(jù)運算與處理能力;能運用計算機進行資料搜集、加工、處理和輔助設(shè)計等。能力水平35%08對計算或?qū)嶒灲Y(jié)果的分析能力(綜合分析能力、技術(shù)經(jīng)濟分析能力)1010具有較強的數(shù)據(jù)收集、分析、處理、綜合的能力。09插圖(或圖紙)質(zhì)量、篇幅、設(shè)計(論文)規(guī)范化程度5 5符合本專業(yè)相關(guān)規(guī)范或規(guī)定要求;規(guī)范化符合本文件第五條要求。10設(shè)計說明書(論文)質(zhì)量3030綜述簡練完整,有見解;立論正確,論述充分,結(jié)論嚴謹合理;實驗正確,分析處理科學(xué)。成果質(zhì)量45%11創(chuàng)新1010對前人工作有改進或突破,或有獨特見解。成績成績指指導(dǎo)導(dǎo)教教師
4、師評評語語指導(dǎo)教師簽名: 年 月 日攀枝花學(xué)院課程設(shè)計任務(wù)書攀枝花學(xué)院本科學(xué)生課程設(shè)計任務(wù)書攀枝花學(xué)院本科學(xué)生課程設(shè)計任務(wù)書題題 目目實現(xiàn)計算器功能的應(yīng)用程序1 1、課程設(shè)計的目的、課程設(shè)計的目的通過本課程設(shè)計使學(xué)生能夠較全面的掌握面向?qū)ο蟪绦蛟O(shè)計的有關(guān)概念和開發(fā)方法,以便能較全面地理解、掌握和綜合運用所學(xué)的知識,提高自身的編程能力。2 2、課程設(shè)計的內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)要求、工作要求等)、課程設(shè)計的內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)要求、工作要求等)根據(jù)計算器的實際功能,要求:能夠?qū)崿F(xiàn)簡單的加、減、乘、除、乘方、開方、階乘、正弦、余弦運算等相關(guān)運算,界面美觀。3 3、主要參考文獻、主要
5、參考文獻1朱福喜.Java 語言程序設(shè)計(第二版).科學(xué)出版社2陳國君等.Java 程序設(shè)計基礎(chǔ)(第二版).清華大學(xué)出版社3 Deitel.Java 大學(xué)基礎(chǔ)教程(第六版).電子工業(yè)出版社 4 MaryCampione.Java 語言導(dǎo)學(xué)(第四版).機械工業(yè)出版社5 Y.Daniel Liang.Java 語言程序設(shè)計基礎(chǔ)篇(第六版). 機械工業(yè)出版社6 Kathy Sierra.Head First Java(第二版).東南大學(xué)出版社4 4、課程設(shè)計工作進度計劃、課程設(shè)計工作進度計劃序號時間(天)內(nèi)容安排備注11分析設(shè)計準備周一22編程調(diào)試階段周二至周三31編寫課程設(shè)計報告周四41考核周五總
6、計5(天)指導(dǎo)教師指導(dǎo)教師(簽字)日期日期年 月 日攀枝花學(xué)院課程設(shè)計評定表4教研室意見:教研室意見:年 月 日學(xué)生學(xué)生(簽字): 接受任務(wù)時間: 年 月 日注:注:任務(wù)書由指導(dǎo)教師填寫。攀枝花學(xué)院課程設(shè)計摘要5摘 要自從 java 語言誕生以來,java 語言就以不可抵擋的趨勢很快成為國際上廣泛流行的面向?qū)ο缶幊陶Z言,它既具有高級語言的特點,又少了 C 語言中指針特點,因而變得簡單了很多。Java 是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言,其具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應(yīng)用于個人 PC、數(shù)據(jù)中心、游戲控制臺、科學(xué)超級計算機、移動電話和互聯(lián)網(wǎng),同時擁有全球最大
7、的開發(fā)者專業(yè)社群。在全球云計算和移動互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java 更具備了顯著優(yōu)勢和廣闊前景。本文介紹了用 java 語言編寫一個簡易計算器。實現(xiàn)數(shù)學(xué)上的加、減、乘、除、乘方、開方、階乘、正弦、余弦運算等相關(guān)運算。利用這個程序可以方便的進行日常性的小規(guī)模運算,小巧簡易,是個實用的工具。關(guān)鍵詞關(guān)鍵詞: : 程序設(shè)計,計算器,java 語言攀枝花學(xué)院課程設(shè)計Abstract6Abstract Since the inception of the java language, java language Take irresistible trend soon became widespread i
8、nternational popular object-oriented programming language, both with advanced language features, and less of the C language pointer characteristics, and thus becomes a lot simpler . Java is a cross-platform application software can write object-oriented programming language, which has excellent vers
9、atility, efficiency, platform portability, and security, are widely used in personal PC, data center, gaming consoles, scientific super-computers, mobile phones and the Internet, also has the worlds largest developer of professional community. In the global cloud computing and mobile Internet indust
10、ry environment, Java and more have significant advantages and broad prospects. This article describes the use java language a simple calculator. Achieve mathematical addition, subtraction, multiplication, division, involution, evolution, factorial, sine, cosine operations and other related operation
11、s. With this program you can easily carry out daily operations of small-scale, small simple, is a useful tool.Keywords:Keywords: program design, calculator, java language攀枝花學(xué)院課程設(shè)計目錄7目錄摘要摘要.4ABSTRACT.51 1 前言前言.71.1 課程設(shè)計背景.71.2 需求環(huán)境.71.3 課程設(shè)計思路.72 2 課程設(shè)計概要課程設(shè)計概要.83 3 計算器詳細設(shè)計計算器詳細設(shè)計.93.1 計算器界面.93.1.1 C
12、AL 主類的顯示布局.93.1.2 計算器顯示界面實現(xiàn)代碼.93.2 監(jiān)聽各個按鈕的類.103.2.1 編寫監(jiān)聽類目的.103.2.2 監(jiān)聽類實現(xiàn)代碼.113.3 按鍵響應(yīng)類.123.3.1 響應(yīng)類編寫的目的.123.3.2 響應(yīng)類實現(xiàn)代碼.123.4 運算處理類.133.4.1 處理方式.133.4.2 處理類實現(xiàn)代碼.134 4 運行與調(diào)試運行與調(diào)試.154.1 進入程序主界面.154.2 加減乘除功能實現(xiàn).154.3 正余弦、正切功能實現(xiàn).164.4、階乘功能實現(xiàn) .164.5、乘方、開方功能實現(xiàn) .175 5 課程設(shè)計總結(jié)課程設(shè)計總結(jié).18參考文獻參考文獻.19附錄:源代碼附錄:源代碼
13、.20攀枝花學(xué)院課程設(shè)計前言81 前言1.1 課程設(shè)計背景日常生活中我們經(jīng)常會遇到一些小型數(shù)據(jù)計算的問題,本課程設(shè)計就是以此為出發(fā)點,設(shè)計了這樣一個簡單的計算器,用以實現(xiàn)基本的數(shù)學(xué)運算。在java 語言當中通過定義類,類中的各種方法實現(xiàn)對計算器相關(guān)功能的實現(xiàn),并通過與用戶自己手動輸入并選擇運算功能實現(xiàn)計算功能,是一個完全由用戶控制的簡易計算器。在完成課程設(shè)計的期間,參閱了相關(guān)的書籍并在網(wǎng)絡(luò)上查找相關(guān)的資料,對實現(xiàn)這個設(shè)計提供了很大的幫助。由于設(shè)計水平和知識方面的匱乏,本次課程設(shè)計還存在缺點和不足,希望大家提出寶貴的意見,互相交流以期提高。1.2 需求環(huán)境本課程設(shè)計需要的設(shè)備為硬件要求和軟件配置
14、要求具體要求如下:硬件要求:一臺計算機。軟件配置:WINDOWS 系統(tǒng)、JDK 1.7、eclipse1.3 課程設(shè)計思路做計算器最主要的就是實用性,要簡單,便于操作。程序界面是一個窗口的形式展現(xiàn)并由用戶自己完全手動控制。并以設(shè)計的要求為基礎(chǔ),在實現(xiàn)課程設(shè)計所給的功能以外,要對界面的美觀進行了優(yōu)化,看起來更人性化,由此一個簡潔美觀的計算器就建立起來了。攀枝花學(xué)院課程設(shè)計課程概要設(shè)計92 課程設(shè)計概要在設(shè)計程序的時候,考慮到計算器的功能,首先編寫一個 CAL 類,在該類中按照其功能分別寫了一個方法實現(xiàn),在程序開始后,可以看到一個控制面板形式的計算器界面展現(xiàn)在用戶面前,用戶自己輸入數(shù)據(jù)和選擇要運算
15、的功能進行計算。具體方法有:加減乘除運算、乘方開方運算、正余弦正切運算、刪除階乘運算等具體的關(guān)系結(jié)構(gòu)如表 2-1:表表 2-1 CAL 類加、減、乘、除方法正余弦、正切方法刪除、階乘方法乘方、開方方法流程功能實現(xiàn)的流程圖詳解:用戶按數(shù)字鍵輸入數(shù)據(jù)加、減、乘、除方法正余弦、正切方法刪除、階乘方法乘方、開方方法用戶啟動計算器運算輸出運算結(jié)果攀枝花學(xué)院課程設(shè)計計算器詳細設(shè)計103 計算器詳細設(shè)計3.1 計算器界面3.1.1 CAL 主類的顯示布局為了方便用戶的使用,創(chuàng)建了一個帶按鈕的控制面板。將所有的運算鍵、數(shù)字鍵等都放在該面板中方便用戶選擇與使用。所有的運算選擇都完全由用戶掌控。3.1.2 計算器
16、顯示界面實現(xiàn)代碼程序如下:public class cal extends Applet / 定義所有需要使用的全局變量String str = 0;/ 暫存顯示屏數(shù)據(jù)String sign = null;/ 暫存符號數(shù)據(jù)double num = 0;/ 暫存內(nèi)部運算數(shù)據(jù)boolean change = false;/ 暫存內(nèi)部四則運算起用GridLayout g0, g1;/ 定義AWT布局部件JTextField number;Button num_p, num_0, num_1, num_2, num_3, num_4, num_5, num_6, num_7,num_8, num_9;
17、Button act_add, act_mul, act_div, act_sub;Button mat_sin, mat_cos, mat_tan;Button do_ans, do_del;Button fac, sqr,inv,blank;Panel p0, p1;public void init()/ 主程序部分/ 定義各個控件的樣式number = new JTextField(20);/ 顯示屏number.setHorizontalAlignment(JTextField.RIGHT);number.setEnabled(false);number.setText(0);num_
18、p = new Button(。);/ 小數(shù)點的按鈕num_p.setForeground(Color.red);num_p.addActionListener(new getbt();num_0 = new Button(0);/ 數(shù)字0的按鈕num_0.setForeground(Color.red);num_0.addActionListener(new getbt();攀枝花學(xué)院課程設(shè)計計算器詳細設(shè)計11num_1 = new Button(1);/ 數(shù)字1的按鈕num_1.setForeground(Color.red);num_1.addActionListener(new get
19、bt();/此處省略了部分代碼num_9 = new Button(9);/ 數(shù)字9的按鈕num_9.setForeground(Color.red);num_9.addActionListener(new getbt();act_add = new Button(+);/ 加法的按鈕act_add.setForeground(Color.red);act_add.addActionListener(new getbt();/此處省略了部分代碼blank = new Button(blank);/ blank的按鈕blank.setForeground(Color.red);blank.add
20、ActionListener(new getbt();/ 布局整個計算器g0 = new GridLayout(1, 1, 10, 10);/ 布局輸入輸出大體位置g1 = new GridLayout(4, 6, 10, 10);p0 = new Panel(); / 顯示屏的布局p0.setLayout(g0);p0.add(number);p0.setBounds(0, 0, 100, 50);/ 按紐的布局p1 = new Panel();p1.setLayout(g1);p1.add(num_1);/ 第一排按紐p1.add(num_2);p1.add(num_3);p1.add(a
21、ct_add);p1.add(act_sub);p1.add(fac);/此處省略了部分代碼p1.setBounds(5, 60, 400, 250);p1.setBackground(Color.cyan);/ 設(shè)置按鈕背景顏色setLayout(null);add(p0);add(p1);this.setBackground(Color.cyan);/ 設(shè)置背景整體顏色3.2 監(jiān)聽各個按鈕的類攀枝花學(xué)院課程設(shè)計計算器詳細設(shè)計123.2.1 編寫監(jiān)聽類目的編寫監(jiān)聽類的目的主要監(jiān)聽用戶所按下的數(shù)字鍵和運算鍵,為了計算機后續(xù)的取得數(shù)據(jù)并進行運算做預(yù)備工作。給后續(xù)計算工作提供保障。3.2.2 監(jiān)聽
22、類實現(xiàn)代碼class getbt implements ActionListener / 監(jiān)聽作出反應(yīng)的類 public void actionPerformed(ActionEvent e)/ 對每個每個按鈕做出響應(yīng)if (e.getSource() = num_0)press0();else if (e.getSource() = num_1)press1();else if (e.getSource() = num_2)press2();else if (e.getSource() = num_3)press3();else if (e.getSource() = num_4)press
23、4();else if (e.getSource() = num_5)press5();else if (e.getSource() = num_6)press6();else if (e.getSource() = num_7)press7();else if (e.getSource() = num_8)press8();else if (e.getSource() = num_9)press9();else if (e.getSource() = num_p)pressp();else if (e.getSource() = act_add)pressadd();else if (e.g
24、etSource() = act_mul)pressmul();else if (e.getSource() = act_div)pressdiv();else if (e.getSource() = act_sub)presssub();else if (e.getSource() = mat_sin)presssin();else if (e.getSource() = mat_tan)攀枝花學(xué)院課程設(shè)計計算器詳細設(shè)計13presstan();else if (e.getSource() = mat_cos)presscos();else if (e.getSource() = do_an
25、s)pressans();else if (e.getSource() = do_del)pressdel();else if (e.getSource() = fac)pressfac();else if (e.getSource() = sqr)presssqr();else if (e.getSource() = inv)pressinv();3.3 按鍵響應(yīng)類3.3.1 響應(yīng)類編寫的目的通過監(jiān)聽類的監(jiān)聽,采集用戶所按下的按鍵信息進行分析,并將分析結(jié)果保存為不同的方法和標記,通過不同的標記在運算過程中調(diào)用處理類中的不同方法實現(xiàn)計算功能。3.3.2 響應(yīng)類實現(xiàn)代碼public void p
26、ress0()/ 對按 0 作出反應(yīng)if (str.length() 16 & str != 0 & change = false) str += 0; else if (str = 0 | sign != null) str = 0;number.setText(str);/此處省略部分代碼public void pressp()/ 對按。作出反應(yīng)boolean p = false;for (int i = 0; i str.length(); i+)if (str.charAt(i) = .)p = true;if (str.length() 16)str = str.substring(
27、0, 16);num = 0;number.setText(str);3.4 運算處理類3.4.1 處理方式通過獲得上訴用戶所按下數(shù)字鍵和運算功能鍵的信息,用響應(yīng)類的處理結(jié)果信息進行判斷標示符的形式對號入座進行調(diào)用不同運算處理并把運算結(jié)果顯示在輸入數(shù)據(jù)框中。3.4.2 處理類實現(xiàn)代碼public void pressans()/ 對按=作出反應(yīng)if (sign = null)number.setText(str);else if (sign = fac) int sum=1;for(int i=1;i=num;i+)攀枝花學(xué)院課程設(shè)計計算器詳細設(shè)計15sum= sum*i;str = Doub
28、le.toString(sum);number.setText(str);else if (sign = sqr) double sum;sum=Math.sqrt(Double.parseDouble(str); str = Double.toString(sum);number.setText(str);else if (sign = inv) double sum=num;for(int i=1;iDouble.parseDouble(str);i+)sum=sum*num;str = Double.toString(sum);number.setText(str);else if (s
29、ign = add) num += Double.parseDouble(str);str = Double.toString(num);number.setText(str); else if (sign = sub) num -= Double.parseDouble(str);str = Double.toString(num);number.setText(str); else if (sign = mul) num *= Double.parseDouble(str);str = Double.toString(num);number.setText(str); else if (s
30、ign = div) if (num != 0) num /= Double.parseDouble(str);str = Double.toString(num);number.setText(str); else str = 0;number.setText(str);sign = null;攀枝花學(xué)院課程設(shè)計計算器詳細設(shè)計16攀枝花學(xué)院課程設(shè)計運行與調(diào)試174 運行與調(diào)試4.1 進入程序主界面4.2 加減乘除功能實現(xiàn)例如;333333 乘于 555555攀枝花學(xué)院課程設(shè)計運行與調(diào)試184.3 正余弦、正切功能實現(xiàn)例如:30 的 tan4.4、階乘功能實現(xiàn)例如:9 的階乘攀枝花學(xué)院課程設(shè)計
31、運行與調(diào)試194.5、乘方、開方功能實現(xiàn)例如;36 開方攀枝花學(xué)院課程設(shè)計課程設(shè)計總結(jié)205 課程設(shè)計總結(jié)在這次課程設(shè)計中,獨自編寫計算器的各個功能,并對其進行按鍵的排版、監(jiān)聽、處理、運算等各個步驟的親力親為,基本上完成了任務(wù)書上的各項內(nèi)容。雖然在這次的課程設(shè)計中有很多的不足,但是我也收獲了很多。由于本身計算器這個課題就比較簡單,涉及的知識不是很多,所以我一個人一組,通過與同學(xué)們的交流,解決了不少長久以來困擾我的 java 語言問題,讓我深切體會到了大家共同努力的重要性。在設(shè)計這個系統(tǒng)的時候,我查閱了很多相關(guān)的書籍,并通過網(wǎng)絡(luò)解決了不少問題。通過這次課程式設(shè)計,我對 eclipse 的開發(fā)環(huán)境
32、有了更多的認識和了解,讓我對 java 語言的認識又加深了一步,不僅使我學(xué)會了如何查閱資料,同時也讓我發(fā)現(xiàn)了網(wǎng)絡(luò)這個好老師,總之收獲了很多攀枝花學(xué)院課程設(shè)計參考文獻21參考文獻1 朱福喜.Java 語言程序設(shè)計(第二版).科學(xué)出版社2 陳國君等.Java 程序設(shè)計基礎(chǔ)(第二版).清華大學(xué)出版社3 Deitel.Java 大學(xué)基礎(chǔ)教程(第六版).電子工業(yè)出版社 4 MaryCampione.Java 語言導(dǎo)學(xué)(第四版).機械工業(yè)出版社5 Y.Daniel Liang.Java 語言程序設(shè)計基礎(chǔ)篇(第六版).機械工業(yè)出版社6 Kathy Sierra.Head First Java(第二版).東南
33、大學(xué)出版社7(美)埃克爾 著,陳昊鵬 譯 Java 編程思想(第 4 版).機械工業(yè)出版社8 李興華 Java 從入門到精通 人民郵電出版社 2010-4-1 版9 臧萌 編著 Java 入門 123清華大學(xué)出版社 2010-5-1 版10 李鐘尉,周小彤,陳丹丹等編著 Java 從入門到精通 (第 2 版)清華大學(xué)出版社11 李輝 打通經(jīng)脈 Java 基礎(chǔ)入門編程詳解中國鐵道出版社 2010-11-01 版12 (美)卡登赫斯第 Java 編程入門經(jīng)典(第 4 版) 人民郵電出版社13 喻桃陽 Java 快速入門與商用項目培訓(xùn)清華大學(xué)出版社 2011-03-01 版14 溫沿書 Java 入
34、門與實戰(zhàn)教程人民郵電出版社 2010-03-01 版15 李鐘尉 Java 范例完全自學(xué)手冊 人民郵電出版社 2009-10-116 (美)斯采爾德 著,馬海軍 Java2 實用教程清華大學(xué)出版社 2004-1-117 (美)貝茨(Bates,B.) Head First Java(中文版)中國電力出版社 2007-2-1 版18 辛運幃 Java 程序設(shè)計(第二版) 清華大學(xué)出版社攀枝花學(xué)院課程設(shè)計運行與調(diào)試22攀枝花學(xué)院課程設(shè)計附錄23附錄:源代碼package gefangyu;import java.applet.*;import java.awt.*;import javax.swi
35、ng.*;import java.awt.event.*;/import java.math.*;public class cal extends Applet / 定義所有需要使用的全局變量String str = 0;/ 暫存顯示屏數(shù)據(jù)String sign = null;/ 暫存符號數(shù)據(jù)double num = 0;/ 暫存內(nèi)部運算數(shù)據(jù)boolean change = false;/ 暫存內(nèi)部四則運算起用GridLayout g0, g1;/ 定義 AWT 布局部件JTextField number;Button num_p, num_0, num_1, num_2, num_3, nu
36、m_4, num_5, num_6, num_7,num_8, num_9;Button act_add, act_mul, act_div, act_sub;Button mat_sin, mat_cos, mat_tan;Button do_ans, do_del;Button fac, sqr,inv,blank;Panel p0, p1;public void init()/ 主程序部分/ 定義各個控件的樣式number = new JTextField(20);/ 顯示屏number.setHorizontalAlignment(JTextField.RIGHT);number.se
37、tEnabled(false);number.setText(0);num_p = new Button(。);/ 小數(shù)點的按鈕num_p.setForeground(Color.red);num_p.addActionListener(new getbt();num_0 = new Button(0);/ 數(shù)字0 的按鈕num_0.setForeground(Color.red);num_0.addActionListener(new getbt();num_1 = new Button(1);/ 數(shù)字1 的按鈕num_1.setForeground(Color.red);num_1.add
38、ActionListener(new getbt();num_2 = new Button(2);/ 數(shù)字2 的按鈕num_2.setForeground(Color.red);num_2.addActionListener(new getbt();num_3 = new Button(3);/ 數(shù)字3 的按鈕num_3.setForeground(Color.red);num_3.addActionListener(new getbt();num_4 = new Button(4);/ 數(shù)字4 的按鈕num_4.setForeground(Color.red);num_4.addAction
39、Listener(new getbt();num_5 = new Button(5);/ 數(shù)字5 的按鈕num_5.setForeground(Color.red);num_5.addActionListener(new getbt();num_6 = new Button(6);/ 數(shù)字6 的按鈕num_6.setForeground(Color.red);num_6.addActionListener(new getbt();num_7 = new Button(7);/ 數(shù)字7 的按鈕攀枝花學(xué)院課程設(shè)計附錄24num_7.setForeground(Color.red);num_7.ad
40、dActionListener(new getbt();num_8 = new Button(8);/ 數(shù)字8 的按鈕num_8.setForeground(Color.red);num_8.addActionListener(new getbt();num_9 = new Button(9);/ 數(shù)字9 的按鈕num_9.setForeground(Color.red);num_9.addActionListener(new getbt();act_add = new Button(+);/ 加法的按鈕act_add.setForeground(Color.red);act_add.addA
41、ctionListener(new getbt();act_sub = new Button(-);/ 減法的按鈕act_sub.setForeground(Color.red);act_sub.addActionListener(new getbt();act_mul = new Button(*);/ 乘法的按鈕act_mul.setForeground(Color.red);act_mul.addActionListener(new getbt();act_div = new Button(/);/ 除法的按鈕act_div.setForeground(Color.red);act_di
42、v.addActionListener(new getbt();do_ans = new Button(=);/ 等于的按鈕do_ans.setForeground(Color.red);do_ans.addActionListener(new getbt();do_del = new Button(del);/ 刪除的按鈕do_del.setForeground(Color.red);do_del.addActionListener(new getbt();mat_sin = new Button(sin);/ sin的按鈕mat_sin.setForeground(Color.red);m
43、at_sin.addActionListener(new getbt();mat_cos = new Button(cos);/ cos的按鈕mat_cos.setForeground(Color.red);mat_cos.addActionListener(new getbt();mat_tan = new Button(tan);/ tan的按鈕mat_tan.setForeground(Color.red);mat_tan.addActionListener(new getbt();fac = new Button(fac);/ fac 的按鈕fac.setForeground(Colo
44、r.red);fac.addActionListener(new getbt();sqr = new Button(sqr);/ sqr 的按鈕sqr.setForeground(Color.red);sqr.addActionListener(new getbt();inv= new Button(xy);/ Involution 的按鈕inv.setForeground(Color.red);inv.addActionListener(new getbt();blank = new Button(blank);/ blank 的按鈕blank.setForeground(Color.red
45、);blank.addActionListener(new getbt();/ 布局整個計算器g0 = new GridLayout(1, 1, 10, 10);/ 布局輸入輸出大體位置g1 = new GridLayout(4, 6, 10, 10);p0 = new Panel(); / 顯示屏的布局p0.setLayout(g0);p0.add(number);p0.setBounds(0, 0, 100, 50);/ 按紐的布局p1 = new Panel();p1.setLayout(g1);p1.add(num_1);/ 第一排按紐p1.add(num_2);攀枝花學(xué)院課程設(shè)計附錄
46、25p1.add(num_3);p1.add(act_add);p1.add(act_sub);p1.add(fac);p1.add(num_4);/ 第二排按紐p1.add(num_5);p1.add(num_6);p1.add(act_mul);p1.add(act_div);p1.add(sqr);p1.add(num_7);/ 第三排按紐p1.add(num_8);p1.add(num_9);p1.add(mat_sin);p1.add(mat_cos);p1.add(inv);p1.add(num_0);/ 第四排按鈕p1.add(num_p);p1.add(do_ans);p1.a
47、dd(do_del);p1.add(mat_tan);p1.add(blank);/ 為了占位排版美觀p1.setBounds(5, 60, 400, 250);p1.setBackground(Color.cyan);/ 設(shè)置按鈕背景顏色setLayout(null);add(p0);add(p1);this.setBackground(Color.cyan);/ 設(shè)置背景整體顏色class getbt implements ActionListener / 監(jiān)聽作出反應(yīng)的類public void actionPerformed(ActionEvent e)/ 對每個每個按鈕做出響應(yīng)if (
48、e.getSource() = num_0)press0();else if (e.getSource() = num_1)press1();else if (e.getSource() = num_2)press2();else if (e.getSource() = num_3)press3();else if (e.getSource() = num_4)press4();else if (e.getSource() = num_5)press5();else if (e.getSource() = num_6)press6();else if (e.getSource() = num_
49、7)press7();else if (e.getSource() = num_8)press8();else if (e.getSource() = num_9)press9();else if (e.getSource() = num_p)pressp();else if (e.getSource() = act_add)pressadd();else if (e.getSource() = act_mul)pressmul();else if (e.getSource() = act_div)pressdiv();else if (e.getSource() = act_sub)pres
50、ssub();else if (e.getSource() = mat_sin)presssin();else if (e.getSource() = mat_tan)presstan();else if (e.getSource() = mat_cos)presscos();else if (e.getSource() = do_ans)pressans();else if (e.getSource() = do_del)pressdel();攀枝花學(xué)院課程設(shè)計附錄26else if (e.getSource() = fac)pressfac();else if (e.getSource()
51、 = sqr)presssqr();else if (e.getSource() = inv)pressinv();public void press0()/ 對按 0 作出反應(yīng)if (str.length() 16 & str != 0 & change = false) str += 0; else if (str = 0 | sign != null) str = 0;number.setText(str);public void press1()/ 對按 1 作出反應(yīng)if (str.length() 16 & str != 0 & change = false) str += 1; e
52、lse if (str = 0 | sign != null) str = 1;change = false;number.setText(str);public void press2()/ 對按 2 作出反應(yīng)if (str.length() 16 & str != 0 & change = false) str += 2; else if (str = 0 | sign != null) str = 2;change = false;number.setText(str);public void press3()/ 對按 3 作出反應(yīng)if (str.length() 16 & str !=
53、 0 & change = false) str += 3; else if (str = 0 | sign != null) str = 3;change = false;number.setText(str);public void press4()/ 對按 4 作出反應(yīng)if (str.length() 16 & str != 0 & change = false) str += 4; else if (str = 0 | sign != null) str = 4;change = false;number.setText(str);public void press5()/ 對按 5
54、作出反應(yīng)if (str.length() 16 & str != 0 & change = false) str += 5; else if (str = 0 | sign != null) str = 5;change = false;number.setText(str);public void press6()/ 對按 6 作出反應(yīng)if (str.length() 16 & str != 0 & change = false) str += 6; else if (str = 0 | sign != null) str = 6;change = false;攀枝花學(xué)院課程設(shè)計附錄27nu
55、mber.setText(str);public void press7()/ 對按 7 作出反應(yīng)if (str.length() 16 & str != 0 & change = false) str += 7; else if (str = 0 | sign != null) str = 7;change = false;number.setText(str);public void press8()/ 對按 8 作出反應(yīng)if (str.length() 16 & str != 0 & change = false) str += 8; else if (str = 0 | sign !=
56、 null) str = 8;change = false;number.setText(str);public void press9()/ 對按 9 作出反應(yīng)if (str.length() 16 & str != 0 & change = false) str += 9; else if (str = 0 | sign != null) str = 9;change = false;number.setText(str);public void pressp()/ 對按。作出反應(yīng)boolean p = false;for (int i = 0; i str.length(); i+)if
57、 (str.charAt(i) = .)p = true;if (str.length() 16)str = str.substring(0, 16);num = 0;if (str = 0) sign = null;num = 0;number.setText(str);public void presstan()/ 對按 tan 作出反應(yīng)if (str != 0. & str != -0 & str != -0. & str != 0) sign = null;num = Double.parseDouble(str);num = Math.tan(num);str = Double.to
58、String(num);if (str.length() 16)str = str.substring(0, 16);num = 0;number.setText(str);public void presscos()/ 對按 cos 作出反應(yīng)if (str != 0. & str != -0 & str != -0.) sign = null;num = Double.parseDouble(str);num = Math.cos(num);str = Double.toString(num);if (str.length() 16)str = str.substring(0, 16);nu
59、m = 0;number.setText(str);public void pressans()/ 對按=作出反應(yīng)if (sign = null)number.setText(str);else if (sign = fac) int sum=1;for(int i=1;i=num;i+)sum= sum*i;str = Double.toString(sum);number.setText(str);else if (sign = sqr) double sum;sum=Math.sqrt(Double.parseDouble(str); str = Double.toString(sum);number.setText(str);else if (sign = inv) double sum=num;for(int i=1;i 1) str = str.substring(0, str.length() - 1);number.setText(str); else if (str.length() = 1) str = 0;number.setText(str);
- 溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。