资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
目录1、摘要2、概要设计3、详细设计4、测试分析5、总结6、参考文献前言】Java不依赖平台的特点使得它受到广泛的关注,Java已成 为网络时代最重要的语言之一。Java语言不仅是一门正在被广 泛使用的编程语言,而且已成为软件设计开发者应当掌握的一门 基础语言。目前,很多新的技术领域都涉及 Java 语言,国内外 许多大学已将Java语言列入了本科教学计划,掌握Java已经成 为共识。本次课程设计就是利用 java 语言来编写简单的计算器,能 进行加、减、乘、除四则运算,下面给出了该设计的理论分析和 具体步骤。一、摘要本计算器可以进行简单的四则运算(加、减、乘、除),但 仅限于十进制下。“Backspace”按钮表示退格“CE”按钮表示 清除当前文本框内的数据按钮表示清除文本框内数据,同 时var、answer清零。该程序可在JCreator环境下直接运行。二、概要设计1、自定义说明(1)类名:Calculator作用:主类继承的父类:JFrame类实现的接口: ActionListener 类public class Calculator extends JFrame implements ActionListener private static String btnTexts = 0,1,2,3,4,5,6,7,8,9,+,-,*,/,.,+/-;/定义数组 bstTexts 来存放计算器上的各个按钮Button button = new Button16;Button BkButton,CeButton,CButton,EqButton;boolean clickable;/控制当前能否按键double vard, answerd;用来保存double型数据的中间值(vard)和最后结果(answerd)short key = -1, prekey = -1; /key用来保存当前进行何种运算,prekey用来保存前次进行何种运算DecimalFormat df;/设置数据输出精度private JTextField displayField = new JTextField( );/计算结果显示区public Calculator()public void actionPerformed(ActionEvent event)方法名:Calculator作用:设置窗体布局public Calculator()/Frame frame = new Frame(Calculator);super(Calculator);显示主窗口标题“Calculator”设置数据输出精度(对于doubledf = new DecimalFormat(0.00000000);型值)BkButton = new Button(Backspace);BkButton.setForeground(Color.red);CeButton = new Button(CE); tForeground(Color.red);CButton = new Button(C);CButton.setForeground(Color.red);EqButton = new Button(=);将“Backspace”、“CE”、”C”、EqButton.setForeground(Color.red);“=”显示为红色BkButton.addActionListener(this);nListener(this);CButton.addActionListener(this);EqButton.addActionListener(this);displayField.setHorizontalAlignment(JTextField.RIGHT);/将计算结果显示在displayField的右面JPanel p1 = new JPanel(new FlowLayoutO); 以 FlowLayout 布局 p1p1.add(BkButton);p1.add(CeButton);p1.add(CButton);pl.add(EqButton);设置四个按钮:Backspace,CE,C,=JPanel p2 = new JPanel(new GridLayout(2,l); 以 GridLayout 布局 p2 p2.add(displayField);p2.add(p1);加入显示结果的JTextField和plJPanel p3 = new JPanel(new GridLayout(4,4); 以 GridLayout 布局 p3 for(int i = 0;i btnTexts.length;i+)buttoni = new Button(btnTextsi);/将数组 btnTexts的值赋给数组 buttonbuttoni.setForeground(Color.blue);/组件 button 的前景色显示 蓝 色p3.add(buttoni); buttoni.addActionListener(this);Container cp = this.getContentPaneO;采用默认的 BorderLayout布局cp cp.add(p2,BorderLayout.NORTH);R);(3 )方法名:action Performed 作用:设置各个按钮的行为public void actionPerformed(ActionEvent event)boolean sign = false;判断是否是double型数参与运算,是为true,不是为 falseObject temp = event.getSource();tryfor (int i = 0; i = 9; i+) /如果按下数据按钮, 将按下的按钮代表的数据插入的当前文本框字符串之后if (temp = buttoni & clickable = true)displayField.setText(displayField.getText() + Integer.toString(i);/按下.按钮时,判断当前文本框内字符串中含不含.,如果已含,则不允许再插入.if (temp = button14 & clickable = true)if ( (temp = button10 | temp = button11 | temp = button12 | temp = button13) & clickable = true)/+操作if (temp = button10) /-操作if (temp = button11) /*操作if (temp = button12) /操作if (temp = button13) /=操作if (temp = EqButton & clickable = true) /按下+/-按钮时处理if (temp = button15 & clickable = true) 按下Backspace键,利用循环将当前字符串中的最后一个字母删除if (temp = BkButton & clickable = true)按下CE按钮,将当前文本框内数据清除if (temp = CeButton)按下C按钮,文本框内数据清除,同时var,answer清0if (temp = CButton) /输入中如果有操作非法,比如按下两次+,捕获异常catch (Exception e)displayField.setText(操作非法); clickable = false;2、界面设计下图为该程序运行时的界面截图:三、详细设计以下为该程序的主要代码:import javax.swing.*;import java.awt.*;import javax.swing.event.*;import java.awt.event.*;imalFormat;public class Calculator extends JFrame implements ActionListenerprivatestaticStringbtnTexts=0 1 2 3 4 5 6 7 8 9 + _ * / +/_;Button button = new Button16;Button BkButton,CeButton,CButton,EqButton;boolean clickable;控制当前能否按键double vard, answerd;用来保存double型数据的中间值(vard)和最后结果(answerd)short key = _1, prekey = _1; /key用来保存当前进行何种运算,prekey用来保存前次进行何种运算DecimalFormat df;设置数据输出精度private JTextField displayField = new JTextField( );/计算结果显示区 public Calculator()super(Calculator);显示主窗口标题“Calculator”df = new DecimalFormat(0.00000000);/设置数据输出精度(对于double 型值)BkButton = new Button(Backspace);BkButton.setForeground(Color.red);CeButton = new Button(CE);CeButton.setForeground(Color.red);CButton = new Button(C);CButton.setForeground(Color.red);EqButton = new Button(=);EqButton.setForeground(Color.red);将“Backspace”、“CE”、”C”、BkButton.addActionListener(this);CeButton.addActionListener(this);CButton.addActionListener(this); EqButton.addActionListener(this);displayField.setHorizontalAlignment(JTextField.RIGHT
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号