版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 課程設計(大作業(yè))報告課程名稱:設計題目:計算器設計院 系:信息技術學院班 級:計算機科學與技術(2)班設 計 者:學 號:201011010208指導教師:設計時間:昆明學院昆明學院課程設計(大作業(yè))任務書 課程設計(大作業(yè))報告1、 課程設計介紹 41.1課程設計內容 .41.2課程設計要求 .42、 總體設計 42.1課設題目總體設計、算法描述42.1.1、功能模塊設計42.1.2、界面設計代碼.42.2功能模塊圖、流程圖分析.63、 調試與性能分析 (相關截圖 64、 參考文獻.8附 錄(程序清單).91、課程設計介紹1.1課程設計內容本計算器是由java 語言所編程設計的標準計算器
2、,可以進行十進制下的四則運算(加、減、乘、除)、開根號、百分號、求倒數(shù),還可以實現(xiàn)數(shù)值的符號轉換操作。 ,Backspace 表示退格, CE 表示將當前文本框內數(shù)據(jù)清除,C 表示文本框內數(shù)據(jù)清除。此外還提供了“編輯”、“查看”、“幫助”三個菜單項,使用者可通過使用菜單項實現(xiàn)復制、粘貼功能。界面類似windows 自帶計算器界面。1.2課程設計要求(1)設計一個標準型的計算器應用程序,完成簡單的算法運算。(2)該程序可以通過鼠標一次鍵入?yún)⒓佑嬎愕臄?shù)值,不僅可以參加加減乘除運算,還可以完成開方、百分運算、倒數(shù)運算等這些運算,并且還有小數(shù)點、正負號、退格、清零這些功能。2、總體設計2.1、課設題目
3、總體設計、算法描述2.1.1、功能模塊設計計算器基本功能(1)加法兩個數(shù)據(jù)進行加操作,可以為小數(shù)。(2)減法兩個數(shù)據(jù)進行減操作,可以為負數(shù)相減。(3)乘法兩個數(shù)相乘操作。(4)除法兩個數(shù)相除操作。(5)開平方對任意一個數(shù)進行開方運算,可以是小數(shù)。(6)百分號對任意一個數(shù)進行百分號運算。(7)倒數(shù)對任意一個數(shù)進行倒數(shù)運算。算法分析:事件監(jiān)聽器的事件處理方法void actionPerformed(ActionEvent evt 完成主要的按鈕事件的處理。事件處理分為以下幾種情況:數(shù)字按鈕事件(“0”、“1”、“2”、“3”、. “8”、“9”),運算符按鈕事件(“+”、“-”、“,”“*”、“/
4、”、“%”),正負值按鈕事件(“+/-”),小數(shù)點按鈕事件(“. ”), 等號按鈕事件(“=”), 求倒按鈕事件(“1、x ”),退格按鈕事件(“CE ”),清除按鈕事件(“C ”),2.1.2、 界面設計代碼計算器的界面由一個文本框及27個按鈕組成,具體實現(xiàn)代碼如下所示:JPanel pa1=new JPanel(;pa1.setBackground(new Color(236,231,210;text=new JTextField("0.",31;pa1.add("North",text; /面板添加和按鈕的設置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、調試與性能分析 (相關截圖(1)標準計算其界面 (2)、加、減、乘除運算演示分別輸入8和4進行運算演示加法 8 =乘法 *= 開方運算 sqrt 百分號運算 % 倒數(shù)運算 1/x4、參考文獻Java 語言程序設計(第6版) 機械工程出版社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; /使用內存中存儲的數(shù)字int memoryi;String copy;public jisuanqi(super("計算器"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;/面板添加和按鈕的設置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;/功能的實現(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("+/-"/單擊"+/-"選擇輸入的運算數(shù)是正數(shù)還是負數(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("負數(shù)不能開根號"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;/按下'+/-'按鈕時處理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 /如果當前字符串首字母有'-' 號, 代表現(xiàn)在是個負數(shù), 再按下時, 則將首符號去掉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;/如果當前字符串第一個字符不是符號,則添加一個符號在首字母處 elsetext.setText('-' + s;/計算器有關內存操作/'MC'的操作,將內存清0elseif (s = "MC" && clickable = true memoryd = memoryi = 0;t
21、extMemory.setText(""/'MS'的操作,將當前文本框內容保存入內存,顯示'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存儲器if (isDot = true memoryd = Double.parseDouble(text.getText(;memoryi = 0; /保證存儲器中存放最新的值/如果是int, 則存入memoryi(int存儲器else memoryi = Integer.parseInt(text.getText(;memoryd = 0; /保證存儲器中存放最新的值/'MR'的操作,將存儲器中的信息輸出elseif (s = "MR" && clickable = true if (memory
23、d != 0text.setText(Double.toString(memoryd;if (memoryi != 0text.setText(Integer.toString(memoryi;/'M+'的功能,將當前文本框里的數(shù)據(jù)和存儲器中數(shù)據(jù)相加后,再存入存儲器 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 /存儲中是一個int 型數(shù)if (isDot = false /被加數(shù)是一個int 型數(shù)memoryi += Integer.parseInt(text.getText(;else /被加數(shù)是一個double 型數(shù),則將int 存儲器中數(shù)傳入double 存儲器與當前數(shù)相加,int 存儲器清零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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Pt-IV-M13-生命科學試劑-MCE-4429
- Frutinone-A-生命科學試劑-MCE-8513
- 2-Carbamimidoylsulfanyl-acetic-acid-hydrochloride-生命科學試劑-MCE-6335
- 二零二五年度茶葉品牌授權合作協(xié)議
- 2025年度籃球俱樂部賽事安全預案與責任承擔協(xié)議
- 二零二五年度中式餐廳合伙人合作協(xié)議
- 2025年度游艇碼頭租賃與船舶租賃稅務籌劃合同
- 二零二五年度表格合同管理系統(tǒng)在線培訓及售后服務協(xié)議
- 施工現(xiàn)場施工防化學事故威脅制度
- 科技創(chuàng)新在小學生課余生活中的重要性
- 農業(yè)生產質量安全風險評估與監(jiān)控方案
- 人教版六年級上冊解方程練習300道及答案
- 2017年湖北省黃岡市中考語文(有解析)
- 2024年廣東省高考地理真題(解析版)
- DB37-T3953-2020醫(yī)療衛(wèi)生機構安全風險分級管控體系實施指南
- 浩順一卡通軟件新版說明書
- 植物檢疫員崗位職責說明書
- 2023~2024學年二年級下冊語文期末??荚嚲怼?chuàng)意情境 統(tǒng)編版
- 2024年北師大版六年級下冊數(shù)學期末測試卷(各地真題)
- 2024年江蘇農牧科技職業(yè)學院單招職業(yè)適應性測試題庫附答案
- 經理層年度任期經營業(yè)績考核及薪酬辦法
評論
0/150
提交評論