java课程设计计算器1.doc

上传人:仙人指路1688 文档编号:2387062 上传时间:2023-02-17 格式:DOC 页数:17 大小:163.50KB
返回 下载 相关 举报
java课程设计计算器1.doc_第1页
第1页 / 共17页
java课程设计计算器1.doc_第2页
第2页 / 共17页
java课程设计计算器1.doc_第3页
第3页 / 共17页
java课程设计计算器1.doc_第4页
第4页 / 共17页
java课程设计计算器1.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《java课程设计计算器1.doc》由会员分享,可在线阅读,更多相关《java课程设计计算器1.doc(17页珍藏版)》请在三一办公上搜索。

1、中文摘要该程序是一个图形界面的简单Java计算器,具有良好的界面,使用人员能快捷简单的进行操作。即时准确地获得需要的计算结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。可以进行简单的四则运算(加、减、乘、除,等)。其中C表示清零,界面简洁使用方便。目录一、课程设计任务及要求1二、需求分析2三、设计思路3四、详细设计5五、运行调试与分析讨论11六、设计体会与小结14七、参考文献15一、课程设计任务及要求设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算、设计的计算器应用程序可以完成家法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。二、

2、需求分析在日常生活中经常要用到计算器,比如科学计算器、数值计算、会计业务等,在Applet中实现一个精巧实用的计算器,可以让用户在使用网站服务的同时,可以很方便地进行数据运算,可增加页面的实用性,同时让用户的操作也更方便与快捷。本次实验要求实现一个具有四则运算的计算器,拥有加、减、乘、除功能,并且还要求具备清零等功能。三、设计思路本应用程序继承自框架类(Frame),此程序使用Frame布局管理器BorderLayout,将单行文本框加入到“North”区域,包含各种按钮的面板Panel p加入到”Center”区域。 包含各种按钮的面板Panel p 采用4行5列的网格布局,然后将数字按钮和

3、运算符按钮以及控制按钮添加到面板中。同时注册按钮事件监听器。如:Button b=new Button();b.addActionListener(事件监听器);事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”8”,”9”)、运算符按钮事件(”+”,”“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”)、求倒按钮事件(”1/x”)、退格按钮事件(”退格”)、清楚按钮事件(“C”)。在事件处理。触发按钮事件时

4、,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。计算器完成的是一个数学表达式,如:32,所以可以采用一个链表(LinkedList类)来存储数字或字符,如3,2分别存储在链表中,最后运算时,可以一一取出来进行运算。本应用程序中的数字按钮和运算符按钮可以分别定义以下两个类的对象组件数字按钮NumberButton类如下:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class NumberButton extends Button int number; public Numb

5、erButton(int number) super(+number); this.number=number; setForeground(Color.blue); public int getNumber() return number; 运算符按钮OperationButton类如下import java.awt.*;import java.awt.event.*;import javax.swing.*;public class OperationButton extends Button String 运算符号; public OperationButton(String s) su

6、per(s); 运算符号=s; setForeground(Color.red); public String get运算符号() return 运算符号; 四、详细设计本程序主要包含两部分分别为主类和附类,程序详细设计如下:1. 数据分析计算器的程序设计,必然有数据的输入,当中就包含运算符和数字,都要通过计算器上的button按钮选项按键输入进去,里面录入的为字符型的数据,若要进行运算,要将输入的字符转换成double型,以防运算出错。2. 类的设计class Calculator extends JFrame implements ActionListener/Calculator 是初始

7、化界面,以及响应用户的操作。Calculate是个内部类,功能是进行进制的转换。3. 功能设计数字键按钮,输入所需计算的数字。算数符按钮,输入所需的算数符号。等号按钮,输出运算的结果。C按钮,执行清零。 4. 程序代码主类:import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;class SwingCalculator public static void main(String args) JFrame frame = new Calculator(); frame.

8、setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); 附类:import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*; class Calculator extends JFrame private final Font BIGGER_FONT = new Font(monspaced, Font.PLAIN, 20); private JTextField textfield; pr

9、ivate boolean number = true; private String equalOp = =; private CalculatorOp op = new CalculatorOp(); public Calculator() textfield = new JTextField(0, 12); textfield.setHorizontalAlignment(JTextField.RIGHT); textfield.setFont(BIGGER_FONT); ActionListener numberListener = new NumberListener(); Stri

10、ng buttonOrder = 1234567890 ; JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new GridLayout(4, 4, 4, 4); for (int i = 0; i buttonOrder.length(); i+) String key = buttonOrder.substring(i, i+1); if (key.equals( ) buttonPanel.add(new JLabel(); else JButton button = new JButton(key); button.ad

11、dActionListener(numberListener); button.setFont(BIGGER_FONT);buttonPanel.add(button); ActionListener operatorListener = new OperatorListener(); JPanel panel = new JPanel(); panel.setLayout(new GridLayout(4, 4, 4, 4); String opOrder = +, -, *, /,=,C; for (int i = 0; i opOrder.length; i+) JButton butt

12、on = new JButton(opOrderi); button.addActionListener(operatorListener); button.setFont(BIGGER_FONT);panel.add(button); JPanel pan = new JPanel(); pan.setLayout(new BorderLayout(4, 4); pan.add(textfield, BorderLayout.NORTH ); pan.add(buttonPanel , BorderLayout.CENTER); pan.add(panel , BorderLayout.EA

13、ST ); this.setContentPane(pan); this.pack(); this.setTitle(Calculator); this.setResizable(false); private void action() number = true; textfield.setText(0); equalOp = =; op.setTotal(0);class OperatorListener implements ActionListener public void actionPerformed(ActionEvent e) if (number) action(); t

14、extfield.setText(0); else number = true; String displayText = textfield.getText(); if (equalOp.equals(=) op.setTotal(displayText); else if (equalOp.equals(+) op.add(displayText); else if (equalOp.equals(-) op.subtract(displayText); else if (equalOp.equals(*) op.multiply(displayText); else if (equalO

15、p.equals(/) op.divide(displayText); textfield.setText( + op.getTotalString(); equalOp = e.getActionCommand(); class NumberListener implements ActionListener public void actionPerformed(ActionEvent event) String digit = event.getActionCommand(); if (number) textfield.setText(digit); number = false; e

16、lse textfield.setText(textfield.getText() + digit); public class CalculatorOp private int total; public CalculatorOp() total = 0; public String getTotalString() return +total; public void setTotal(String n) total = convertToNumber(n); public void add(String n) total += convertToNumber(n); public voi

17、d subtract(String n) total -= convertToNumber(n); public void multiply(String n) total *= convertToNumber(n); public void divide(String n) total /= convertToNumber(n); private int convertToNumber(String n) return Integer.parseInt(n); 五、运行调试与分析讨论程序运行中所遇到的错误:例如:程序在运行中遇到很多的困难和错误,上述为列举错误中的两个,实际上程序在刚开始编译

18、完成时遇到很多的错误,在通过自身努力和同学们的帮助下错误得以一一解决。以下就不一一举例所遇到的错误了。程序运行如下:运行状况如下:例如 运行39先输入3,在按*,在输入9 然后按=号,输出结果:六、设计体会与小结本次的Java课程设计使我对Java的知识有了更深一步的了解,同时在编译程序的时候对知识系统进行了更加全面的梳理,并通复习,和同学的帮助,终于熟练的掌握了基本理论知识,从而完成程序的编译。本次课程设计还使我收获很大,使我对Java的设计过程有了更深的了解,和对知识的笑话和吸收,同时也巩固了Java课程的知识。当然在设计编译程序是遇到了不少的麻烦和错误,在通过老师和同学的共同帮助下一一得到了解决。总之这次程序的设计让我发现了更多学习中没有遇到的问题,从而提高了综合能力。同时本次设计,使我明白了许多。七、参考文献1丁振凡主编.Java语言实用教程.北京:北京邮电大学出版社.20072李刚主编.疯狂Java讲义.北京:电子工业出版社.20083埃史尔主编.Java编程思想.北京:机械工业出版社.2007

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号