java課程設(shè)計(jì) 實(shí)現(xiàn)計(jì)算器功能的應(yīng)用程序
《java課程設(shè)計(jì) 實(shí)現(xiàn)計(jì)算器功能的應(yīng)用程序》由會(huì)員分享,可在線閱讀,更多相關(guān)《java課程設(shè)計(jì) 實(shí)現(xiàn)計(jì)算器功能的應(yīng)用程序(29頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、攀枝花學(xué)院攀枝花學(xué)院學(xué)生課程設(shè)計(jì)(論文)學(xué)生課程設(shè)計(jì)(論文)題 目: 實(shí)現(xiàn)計(jì)算器功能的應(yīng)用程序?qū)崿F(xiàn)計(jì)算器功能的應(yīng)用程序 學(xué)生姓名: 葛肪瑜葛肪瑜 學(xué) 號(hào): 201010801018201010801018 所在院(系): 數(shù)學(xué)與計(jì)算機(jī)學(xué)院數(shù)學(xué)與計(jì)算機(jī)學(xué)院 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí): 20102010 級(jí)計(jì)本一班級(jí)計(jì)本一班 指 導(dǎo) 教 師: 范勝波范勝波 職稱: 講師講師 2013 年 6 月 9 日攀枝花學(xué)院教務(wù)處制攀枝花學(xué)院課程設(shè)計(jì)評(píng)定表2課程設(shè)計(jì)(論文)指導(dǎo)教師成績(jī)?cè)u(píng)定表課程設(shè)計(jì)(論文)指導(dǎo)教師成績(jī)?cè)u(píng)定表題目名稱題目名稱評(píng)分項(xiàng)目評(píng)分項(xiàng)目分分值值得得分分評(píng)價(jià)內(nèi)涵評(píng)價(jià)
2、內(nèi)涵01學(xué)習(xí)態(tài)度6 6遵守各項(xiàng)紀(jì)律,工作刻苦努力,具有良好的科學(xué)工作態(tài)度。02科學(xué)實(shí)踐、調(diào)研7 7通過(guò)實(shí)驗(yàn)、試驗(yàn)、查閱文獻(xiàn)、深入生產(chǎn)實(shí)踐等渠道獲取與課程設(shè)計(jì)有關(guān)的材料。工作表現(xiàn)20%03課題工作量7 7按期圓滿完成規(guī)定的任務(wù),工作量飽滿。04綜合運(yùn)用知識(shí)的能力1010能運(yùn)用所學(xué)知識(shí)和技能去發(fā)現(xiàn)與解決實(shí)際問題,能正確處理實(shí)驗(yàn)數(shù)據(jù),能對(duì)課題進(jìn)行理論分析,得出有價(jià)值的結(jié)論。05應(yīng)用文獻(xiàn)的能力5 5能獨(dú)立查閱相關(guān)文獻(xiàn)和從事其他調(diào)研;能提出并較好地論述課題的實(shí)施方案;有收集、加工各種信息及獲取新知識(shí)的能力。06設(shè)計(jì)(實(shí)驗(yàn))能力,方案的設(shè)計(jì)能力5 5能正確設(shè)計(jì)實(shí)驗(yàn)方案,獨(dú)立進(jìn)行裝置安裝、調(diào)試、操作等實(shí)驗(yàn)工
3、作,數(shù)據(jù)正確、可靠;研究思路清晰、完整。07計(jì)算及計(jì)算機(jī)應(yīng)用能力5 5具有較強(qiáng)的數(shù)據(jù)運(yùn)算與處理能力;能運(yùn)用計(jì)算機(jī)進(jìn)行資料搜集、加工、處理和輔助設(shè)計(jì)等。能力水平35%08對(duì)計(jì)算或?qū)嶒?yàn)結(jié)果的分析能力(綜合分析能力、技術(shù)經(jīng)濟(jì)分析能力)1010具有較強(qiáng)的數(shù)據(jù)收集、分析、處理、綜合的能力。09插圖(或圖紙)質(zhì)量、篇幅、設(shè)計(jì)(論文)規(guī)范化程度5 5符合本專業(yè)相關(guān)規(guī)范或規(guī)定要求;規(guī)范化符合本文件第五條要求。10設(shè)計(jì)說(shuō)明書(論文)質(zhì)量3030綜述簡(jiǎn)練完整,有見解;立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理;實(shí)驗(yàn)正確,分析處理科學(xué)。成果質(zhì)量45%11創(chuàng)新1010對(duì)前人工作有改進(jìn)或突破,或有獨(dú)特見解。成績(jī)成績(jī)指指導(dǎo)導(dǎo)教教師
4、師評(píng)評(píng)語(yǔ)語(yǔ)指導(dǎo)教師簽名: 年 月 日攀枝花學(xué)院課程設(shè)計(jì)任務(wù)書攀枝花學(xué)院本科學(xué)生課程設(shè)計(jì)任務(wù)書攀枝花學(xué)院本科學(xué)生課程設(shè)計(jì)任務(wù)書題題 目目實(shí)現(xiàn)計(jì)算器功能的應(yīng)用程序1 1、課程設(shè)計(jì)的目的、課程設(shè)計(jì)的目的通過(guò)本課程設(shè)計(jì)使學(xué)生能夠較全面的掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的有關(guān)概念和開發(fā)方法,以便能較全面地理解、掌握和綜合運(yùn)用所學(xué)的知識(shí),提高自身的編程能力。2 2、課程設(shè)計(jì)的內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)要求、工作要求等)、課程設(shè)計(jì)的內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)要求、工作要求等)根據(jù)計(jì)算器的實(shí)際功能,要求:能夠?qū)崿F(xiàn)簡(jiǎn)單的加、減、乘、除、乘方、開方、階乘、正弦、余弦運(yùn)算等相關(guān)運(yùn)算,界面美觀。3 3、主要參考文獻(xiàn)、主要
5、參考文獻(xiàn)1朱福喜.Java 語(yǔ)言程序設(shè)計(jì)(第二版).科學(xué)出版社2陳國(guó)君等.Java 程序設(shè)計(jì)基礎(chǔ)(第二版).清華大學(xué)出版社3 Deitel.Java 大學(xué)基礎(chǔ)教程(第六版).電子工業(yè)出版社 4 MaryCampione.Java 語(yǔ)言導(dǎo)學(xué)(第四版).機(jī)械工業(yè)出版社5 Y.Daniel Liang.Java 語(yǔ)言程序設(shè)計(jì)基礎(chǔ)篇(第六版). 機(jī)械工業(yè)出版社6 Kathy Sierra.Head First Java(第二版).東南大學(xué)出版社4 4、課程設(shè)計(jì)工作進(jìn)度計(jì)劃、課程設(shè)計(jì)工作進(jìn)度計(jì)劃序號(hào)時(shí)間(天)內(nèi)容安排備注11分析設(shè)計(jì)準(zhǔn)備周一22編程調(diào)試階段周二至周三31編寫課程設(shè)計(jì)報(bào)告周四41考核周五總
6、計(jì)5(天)指導(dǎo)教師指導(dǎo)教師(簽字)日期日期年 月 日攀枝花學(xué)院課程設(shè)計(jì)評(píng)定表4教研室意見:教研室意見:年 月 日學(xué)生學(xué)生(簽字): 接受任務(wù)時(shí)間: 年 月 日注:注:任務(wù)書由指導(dǎo)教師填寫。攀枝花學(xué)院課程設(shè)計(jì)摘要5摘 要自從 java 語(yǔ)言誕生以來(lái),java 語(yǔ)言就以不可抵擋的趨勢(shì)很快成為國(guó)際上廣泛流行的面向?qū)ο缶幊陶Z(yǔ)言,它既具有高級(jí)語(yǔ)言的特點(diǎn),又少了 C 語(yǔ)言中指針特點(diǎn),因而變得簡(jiǎn)單了很多。Java 是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,其具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人 PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大
7、的開發(fā)者專業(yè)社群。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java 更具備了顯著優(yōu)勢(shì)和廣闊前景。本文介紹了用 java 語(yǔ)言編寫一個(gè)簡(jiǎn)易計(jì)算器。實(shí)現(xiàn)數(shù)學(xué)上的加、減、乘、除、乘方、開方、階乘、正弦、余弦運(yùn)算等相關(guān)運(yùn)算。利用這個(gè)程序可以方便的進(jìn)行日常性的小規(guī)模運(yùn)算,小巧簡(jiǎn)易,是個(gè)實(shí)用的工具。關(guān)鍵詞關(guān)鍵詞: : 程序設(shè)計(jì),計(jì)算器,java 語(yǔ)言攀枝花學(xué)院課程設(shè)計(jì)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è)計(jì)目錄7目錄摘要摘要.4ABSTRACT.51 1 前言前言.71.1 課程設(shè)計(jì)背景.71.2 需求環(huán)境.71.3 課程設(shè)計(jì)思路.72 2 課程設(shè)計(jì)概要課程設(shè)計(jì)概要.83 3 計(jì)算器詳細(xì)設(shè)計(jì)計(jì)算器詳細(xì)設(shè)計(jì).93.1 計(jì)算器界面.93.1.1 C
12、AL 主類的顯示布局.93.1.2 計(jì)算器顯示界面實(shí)現(xiàn)代碼.93.2 監(jiān)聽各個(gè)按鈕的類.103.2.1 編寫監(jiān)聽類目的.103.2.2 監(jiān)聽類實(shí)現(xiàn)代碼.113.3 按鍵響應(yīng)類.123.3.1 響應(yīng)類編寫的目的.123.3.2 響應(yīng)類實(shí)現(xiàn)代碼.123.4 運(yùn)算處理類.133.4.1 處理方式.133.4.2 處理類實(shí)現(xiàn)代碼.134 4 運(yùn)行與調(diào)試運(yùn)行與調(diào)試.154.1 進(jìn)入程序主界面.154.2 加減乘除功能實(shí)現(xiàn).154.3 正余弦、正切功能實(shí)現(xiàn).164.4、階乘功能實(shí)現(xiàn) .164.5、乘方、開方功能實(shí)現(xiàn) .175 5 課程設(shè)計(jì)總結(jié)課程設(shè)計(jì)總結(jié).18參考文獻(xiàn)參考文獻(xiàn).19附錄:源代碼附錄:源代碼
13、.20攀枝花學(xué)院課程設(shè)計(jì)前言81 前言1.1 課程設(shè)計(jì)背景日常生活中我們經(jīng)常會(huì)遇到一些小型數(shù)據(jù)計(jì)算的問題,本課程設(shè)計(jì)就是以此為出發(fā)點(diǎn),設(shè)計(jì)了這樣一個(gè)簡(jiǎn)單的計(jì)算器,用以實(shí)現(xiàn)基本的數(shù)學(xué)運(yùn)算。在java 語(yǔ)言當(dāng)中通過(guò)定義類,類中的各種方法實(shí)現(xiàn)對(duì)計(jì)算器相關(guān)功能的實(shí)現(xiàn),并通過(guò)與用戶自己手動(dòng)輸入并選擇運(yùn)算功能實(shí)現(xiàn)計(jì)算功能,是一個(gè)完全由用戶控制的簡(jiǎn)易計(jì)算器。在完成課程設(shè)計(jì)的期間,參閱了相關(guān)的書籍并在網(wǎng)絡(luò)上查找相關(guān)的資料,對(duì)實(shí)現(xiàn)這個(gè)設(shè)計(jì)提供了很大的幫助。由于設(shè)計(jì)水平和知識(shí)方面的匱乏,本次課程設(shè)計(jì)還存在缺點(diǎn)和不足,希望大家提出寶貴的意見,互相交流以期提高。1.2 需求環(huán)境本課程設(shè)計(jì)需要的設(shè)備為硬件要求和軟件配置
14、要求具體要求如下:硬件要求:一臺(tái)計(jì)算機(jī)。軟件配置:WINDOWS 系統(tǒng)、JDK 1.7、eclipse1.3 課程設(shè)計(jì)思路做計(jì)算器最主要的就是實(shí)用性,要簡(jiǎn)單,便于操作。程序界面是一個(gè)窗口的形式展現(xiàn)并由用戶自己完全手動(dòng)控制。并以設(shè)計(jì)的要求為基礎(chǔ),在實(shí)現(xiàn)課程設(shè)計(jì)所給的功能以外,要對(duì)界面的美觀進(jìn)行了優(yōu)化,看起來(lái)更人性化,由此一個(gè)簡(jiǎn)潔美觀的計(jì)算器就建立起來(lái)了。攀枝花學(xué)院課程設(shè)計(jì)課程概要設(shè)計(jì)92 課程設(shè)計(jì)概要在設(shè)計(jì)程序的時(shí)候,考慮到計(jì)算器的功能,首先編寫一個(gè) CAL 類,在該類中按照其功能分別寫了一個(gè)方法實(shí)現(xiàn),在程序開始后,可以看到一個(gè)控制面板形式的計(jì)算器界面展現(xiàn)在用戶面前,用戶自己輸入數(shù)據(jù)和選擇要運(yùn)算
15、的功能進(jìn)行計(jì)算。具體方法有:加減乘除運(yùn)算、乘方開方運(yùn)算、正余弦正切運(yùn)算、刪除階乘運(yùn)算等具體的關(guān)系結(jié)構(gòu)如表 2-1:表表 2-1 CAL 類加、減、乘、除方法正余弦、正切方法刪除、階乘方法乘方、開方方法流程功能實(shí)現(xiàn)的流程圖詳解:用戶按數(shù)字鍵輸入數(shù)據(jù)加、減、乘、除方法正余弦、正切方法刪除、階乘方法乘方、開方方法用戶啟動(dòng)計(jì)算器運(yùn)算輸出運(yùn)算結(jié)果攀枝花學(xué)院課程設(shè)計(jì)計(jì)算器詳細(xì)設(shè)計(jì)103 計(jì)算器詳細(xì)設(shè)計(jì)3.1 計(jì)算器界面3.1.1 CAL 主類的顯示布局為了方便用戶的使用,創(chuàng)建了一個(gè)帶按鈕的控制面板。將所有的運(yùn)算鍵、數(shù)字鍵等都放在該面板中方便用戶選擇與使用。所有的運(yùn)算選擇都完全由用戶掌控。3.1.2 計(jì)算器
16、顯示界面實(shí)現(xiàn)代碼程序如下:public class cal extends Applet / 定義所有需要使用的全局變量String str = 0;/ 暫存顯示屏數(shù)據(jù)String sign = null;/ 暫存符號(hào)數(shù)據(jù)double num = 0;/ 暫存內(nèi)部運(yùn)算數(shù)據(jù)boolean change = false;/ 暫存內(nèi)部四則運(yùn)算起用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()/ 主程序部分/ 定義各個(gè)控件的樣式number = new JTextField(20);/ 顯示屏number.setHorizontalAlignment(JTextField.RIGHT);number.setEnabled(false);number.setText(0);num_
18、p = new Button(。);/ 小數(shù)點(diǎn)的按鈕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è)計(jì)計(jì)算器詳細(xì)設(shè)計(jì)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();/ 布局整個(gè)計(jì)算器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)聽各個(gè)按鈕的類攀枝花學(xué)院課程設(shè)計(jì)計(jì)算器詳細(xì)設(shè)計(jì)123.2.1 編寫監(jiān)聽類目的編寫監(jiān)聽類的目的主要監(jiān)聽用戶所按下的數(shù)字鍵和運(yùn)算鍵,為了計(jì)算機(jī)后續(xù)的取得數(shù)據(jù)并進(jìn)行運(yùn)算做預(yù)備工作。給后續(xù)計(jì)算工作提供保障。3.2.2 監(jiān)聽
22、類實(shí)現(xiàn)代碼class getbt implements ActionListener / 監(jiān)聽作出反應(yīng)的類 public void actionPerformed(ActionEvent e)/ 對(duì)每個(gè)每個(gè)按鈕做出響應(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è)計(jì)計(jì)算器詳細(xì)設(shè)計(jì)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)類編寫的目的通過(guò)監(jiān)聽類的監(jiān)聽,采集用戶所按下的按鍵信息進(jìn)行分析,并將分析結(jié)果保存為不同的方法和標(biāo)記,通過(guò)不同的標(biāo)記在運(yùn)算過(guò)程中調(diào)用處理類中的不同方法實(shí)現(xiàn)計(jì)算功能。3.3.2 響應(yīng)類實(shí)現(xiàn)代碼public void p
26、ress0()/ 對(duì)按 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()/ 對(duì)按。作出反應(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 運(yùn)算處理類3.4.1 處理方式通過(guò)獲得上訴用戶所按下數(shù)字鍵和運(yùn)算功能鍵的信息,用響應(yīng)類的處理結(jié)果信息進(jìn)行判斷標(biāo)示符的形式對(duì)號(hào)入座進(jìn)行調(diào)用不同運(yùn)算處理并把運(yùn)算結(jié)果顯示在輸入數(shù)據(jù)框中。3.4.2 處理類實(shí)現(xiàn)代碼public void pressans()/ 對(duì)按=作出反應(yīng)if (sign = null)number.setText(str);else if (sign = fac) int sum=1;for(int i=1;i=num;i+)攀枝花學(xué)院課程設(shè)計(jì)計(jì)算器詳細(xì)設(shè)計(jì)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è)計(jì)計(jì)算器詳細(xì)設(shè)計(jì)16攀枝花學(xué)院課程設(shè)計(jì)運(yùn)行與調(diào)試174 運(yùn)行與調(diào)試4.1 進(jìn)入程序主界面4.2 加減乘除功能實(shí)現(xiàn)例如;333333 乘于 555555攀枝花學(xué)院課程設(shè)計(jì)運(yùn)行與調(diào)試184.3 正余弦、正切功能實(shí)現(xiàn)例如:30 的 tan4.4、階乘功能實(shí)現(xiàn)例如:9 的階乘攀枝花學(xué)院課程設(shè)計(jì)
31、運(yùn)行與調(diào)試194.5、乘方、開方功能實(shí)現(xiàn)例如;36 開方攀枝花學(xué)院課程設(shè)計(jì)課程設(shè)計(jì)總結(jié)205 課程設(shè)計(jì)總結(jié)在這次課程設(shè)計(jì)中,獨(dú)自編寫計(jì)算器的各個(gè)功能,并對(duì)其進(jìn)行按鍵的排版、監(jiān)聽、處理、運(yùn)算等各個(gè)步驟的親力親為,基本上完成了任務(wù)書上的各項(xiàng)內(nèi)容。雖然在這次的課程設(shè)計(jì)中有很多的不足,但是我也收獲了很多。由于本身計(jì)算器這個(gè)課題就比較簡(jiǎn)單,涉及的知識(shí)不是很多,所以我一個(gè)人一組,通過(guò)與同學(xué)們的交流,解決了不少長(zhǎng)久以來(lái)困擾我的 java 語(yǔ)言問題,讓我深切體會(huì)到了大家共同努力的重要性。在設(shè)計(jì)這個(gè)系統(tǒng)的時(shí)候,我查閱了很多相關(guān)的書籍,并通過(guò)網(wǎng)絡(luò)解決了不少問題。通過(guò)這次課程式設(shè)計(jì),我對(duì) eclipse 的開發(fā)環(huán)境
32、有了更多的認(rèn)識(shí)和了解,讓我對(duì) java 語(yǔ)言的認(rèn)識(shí)又加深了一步,不僅使我學(xué)會(huì)了如何查閱資料,同時(shí)也讓我發(fā)現(xiàn)了網(wǎng)絡(luò)這個(gè)好老師,總之收獲了很多攀枝花學(xué)院課程設(shè)計(jì)參考文獻(xiàn)21參考文獻(xiàn)1 朱福喜.Java 語(yǔ)言程序設(shè)計(jì)(第二版).科學(xué)出版社2 陳國(guó)君等.Java 程序設(shè)計(jì)基礎(chǔ)(第二版).清華大學(xué)出版社3 Deitel.Java 大學(xué)基礎(chǔ)教程(第六版).電子工業(yè)出版社 4 MaryCampione.Java 語(yǔ)言導(dǎo)學(xué)(第四版).機(jī)械工業(yè)出版社5 Y.Daniel Liang.Java 語(yǔ)言程序設(shè)計(jì)基礎(chǔ)篇(第六版).機(jī)械工業(yè)出版社6 Kathy Sierra.Head First Java(第二版).東南
33、大學(xué)出版社7(美)??藸?著,陳昊鵬 譯 Java 編程思想(第 4 版).機(jī)械工業(yè)出版社8 李興華 Java 從入門到精通 人民郵電出版社 2010-4-1 版9 臧萌 編著 Java 入門 123清華大學(xué)出版社 2010-5-1 版10 李鐘尉,周小彤,陳丹丹等編著 Java 從入門到精通 (第 2 版)清華大學(xué)出版社11 李輝 打通經(jīng)脈 Java 基礎(chǔ)入門編程詳解中國(guó)鐵道出版社 2010-11-01 版12 (美)卡登赫斯第 Java 編程入門經(jīng)典(第 4 版) 人民郵電出版社13 喻桃陽(yáng) Java 快速入門與商用項(xiàng)目培訓(xùn)清華大學(xué)出版社 2011-03-01 版14 溫沿書 Java 入
34、門與實(shí)戰(zhàn)教程人民郵電出版社 2010-03-01 版15 李鐘尉 Java 范例完全自學(xué)手冊(cè) 人民郵電出版社 2009-10-116 (美)斯采爾德 著,馬海軍 Java2 實(shí)用教程清華大學(xué)出版社 2004-1-117 (美)貝茨(Bates,B.) Head First Java(中文版)中國(guó)電力出版社 2007-2-1 版18 辛運(yùn)幃 Java 程序設(shè)計(jì)(第二版) 清華大學(xué)出版社攀枝花學(xué)院課程設(shè)計(jì)運(yùn)行與調(diào)試22攀枝花學(xué)院課程設(shè)計(jì)附錄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;/ 暫存符號(hào)數(shù)據(jù)double num = 0;/ 暫存內(nèi)部運(yùn)算數(shù)據(jù)boolean change = false;/ 暫存內(nèi)部四則運(yùn)算起用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()/ 主程序部分/ 定義各個(gè)控件的樣式number = new JTextField(20);/ 顯示屏number.setHorizontalAlignment(JTextField.RIGHT);number.se
37、tEnabled(false);number.setText(0);num_p = new Button(。);/ 小數(shù)點(diǎn)的按鈕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è)計(jì)附錄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();/ 布局整個(gè)計(jì)算器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è)計(jì)附錄
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)/ 對(duì)每個(gè)每個(gè)按鈕做出響應(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è)計(jì)附錄26else if (e.getSource() = fac)pressfac();else if (e.getSource()
51、 = sqr)presssqr();else if (e.getSource() = inv)pressinv();public void press0()/ 對(duì)按 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()/ 對(duì)按 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()/ 對(duì)按 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()/ 對(duì)按 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()/ 對(duì)按 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()/ 對(duì)按 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()/ 對(duì)按 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è)計(jì)附錄27nu
55、mber.setText(str);public void press7()/ 對(duì)按 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()/ 對(duì)按 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()/ 對(duì)按 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()/ 對(duì)按。作出反應(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()/ 對(duì)按 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()/ 對(duì)按 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()/ 對(duì)按=作出反應(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: 本站所有資源如無(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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案