【Java开源代码栏目提醒】:网学会员在Java开源代码频道为大家收集整理了“java计算器项目课程设计报告(包涵源文件与类图) - 考试类“提供大家参考,希望对大家有所帮助!
计算机网络技术专业 专业
代码:590102 《动态网站基础程序设计》
课程设计班 级: 网站 1101 班学 号:20113522、20111842、20112215、20115153、20113528、 20112893、20113523.20113311.20113888罗聪、陈雪、张梦薇、吴珍春、张亚利、 戢苓、査璜坚课 题:计算器指导教师:胡志锋答辩日期:2013 年 1 月 13 日 目 录任务描述 ......................................................................................................................................... 2任务分析 ......................................................................................................................................... 2任务解决过程及方法 .................................................................................................................... 5源程序清单 ..................................................................................................................................... 5执行结果截图...............................................................................................................................15总结 ...............................................................................................................................................16一、任务描述题目:
设计一个可以进行简单混合运算的计算器。
要求:用户可以通过鼠标的点击依次输如参加计算的数值,进行混合运算。
设计结果:设计一个可以进行简单混合运算的计算器,用户可以通过鼠标的点击依次输如参加计算的数值。
二、任务分析OOA 在这次任务中,我们主要的目的就是一款可以加减乘除等运算方式的计算器,可以让用户通过点击数字按钮与符号按钮达到数字混合运算的要求。
本计算器程序共有 3 个
java 源文件具体如下表
java 源文件及其功能 序 文件名 主要功能 备注 号 1 ComputerPad.
java 创建计算器的主窗口,为主类。
含有 main 方法 2 NumberButton.
java 为主类创建数字按钮对象,达到输入。
3 OperationButton.
java 为主类创建运算符号按钮,负责运算。
表 1-1类功能及任务分配说明如下ComputerPad.
java该
java 源文件生成的类负责创建计算器的“主窗口”。
该类还有 main 方法,整个
程序从该类开始执行。
ComputerPad 类的窗口创建等可视化方法由潘伟卿、段宗义、罗聪负责逻辑运算方法由陈雪、张梦薇、吴珍春负责。
NumberButton该文件生成的类负责为主类创建数字按钮对象,使用鼠标单击数字按钮可以依次输入参加运算的数值的各位数字。
NumberButton 类主要负责数字按钮方面由张亚利负责。
OperationButton该文件生成的类负责为主类创建运算符号按钮对象。
使用鼠标单击运算符按钮可选择要进行的运算OperationButton 负责符号按钮方面由戢苓、査璜坚负责。
OODComputerPad 类 图 2-1NumberButton 类 图 2-2OperationButton 类 图 2-3类之间的关系图 图 2.4详细设计主类 ComputerPad 1.成员变量成员变量描述 变量类型 名称数字按钮数组 NumberButton NumberButton运算符号按钮数组 OperationButton operationButton小数点按钮 JButton 小数点按钮正负号按钮 JButton 正负号按钮退格按钮 JButton 退格按钮求倒数按钮 JButton 求倒数按钮等号按钮 JButton 等号按钮清零按钮 JButton 清零按钮显示计算结果 JTextField resultShow存储数据的链表 LinkedList 链表2.方法名称 功能 备注ComputerPad 创建窗口 构造方法ActionPerformed 处理 ActionEvent 事件 接口方法Main 程序开始运行数 NumButton1.成员变量描述 变量类型 名称按钮代表的数字 int number 2.方法名称 功能 备注Numbertton 创建数字按钮 构造方法getNumber 获取按钮代表的数字 运算符号按钮 OperationButton 1.成员变量描述 变量类型 名称按钮代表的符号 String Operator 2.方法名称 功能 备注OperationButton 创建按钮符号 构造方法getOperator 获取按钮代表的符号三、任务解决过程及方法源程序清单主类 ComputerPad: 潘伟卿、段宗义、罗聪主要负责创建窗口package net.wz1101.keshe_02import
java.awt.import
java.awt.event.import javax.swing.import javax.swing.border.import
java.util.LinkedListimport
java.text.NumberFormatpublic class ComputerPad extends JFrame implements ActionListener NumberButton numberButton OperationButton operationButton JButton 小数点按钮 正负号按钮 退格按钮 求倒数按钮 等号按钮 清零按钮 JPanel panel JTextField resultShowString 运算符号 quotquot quot-quot quotquot quot/quotLinkedList 链表boolean 是否按下等号 falsepublic ComputerPad superquot计算器quot 链表 new LinkedList numberButton new NumberButton10 for int i 0 i lt 9 i numberButtoni new NumberButtoni numberButtoni.addActionListenerthis operationButton new OperationButton4 for int i 0 i lt 4 i operationButtoni new OperationButton运算符号i operationButtoni.addActionListenerthis 小数点按钮 new JButtonquot.quot 正负号按钮 new JButtonquot/-quot 等号按钮 new JButtonquotquot 求倒数按钮 new JButtonquot1/xquot 退格按钮 new JButtonquot退格quot 清零按钮 new JButtonquotCquot 清零按钮.setForegroundColor.red 退格按钮.setForegroundColor.red 等号按钮.setForegroundColor.red 求倒数按钮.setForegroundColor.blue 正负号按钮.setForegroundColor.blue 小数点按钮.setForegroundColor.blue 退格按钮.addActionListenerthis 清零按钮.addActionListenerthis 等号按钮.addActionListenerthis 小数点按钮.addActionListenerthis 正负号按钮.addActionListenerthis 求倒数按钮.addActionListenerthis resultShow new JTextField10 resultShow.setHorizontalAlignmentJTextField.RIGHT resultShow.setForegroundColor.blue resultShow.setFontnew FontquotTimesRomanquot Font.PLAIN 14 resultShow.setBordernew SoftBevelBorderBevelBorder.LOWERED resultShow.setBackgroundColor.white resultShow.setEditablefalse panel new JPanel panel.setLayoutnew GridLayout4 5 //面板中的第一行: panel.addnumberButton1 panel.addnumberButton2 panel.addnumberButton3 panel.addoperationButton0 panel.add清零按钮 //面板中的第二行: panel.addnumberButton4 panel.addnumberButton5 panel.addnumberButton6 panel.addoperationButton1 panel.add退格按钮 //面板中的第三行: panel.addnumberButton7 panel.addnumberButton8 panel.addnumberButton9 panel.addoperationButton2 panel.add求倒数按钮 //面板中的第四行: panel.addnumberButton0 panel.add正负号按钮 panel.add小数点按钮 panel.addoperationButton3 panel.add等号按钮 addpanel BorderLayout.CENTER addresultShow BorderLayout.NORTH / addWindowListenernew WindowAdapter public void windowClosingWindowEvent e System.exit0 / setDefaultCloseOperationJFrame.EXIT_ON_CLOSE setVisibletrue setBounds100 50 350 200 setResizablefalse validate 主类 ComputerPad: 陈雪、张梦薇、吴珍春主要负责逻辑运算public void actionPerformedActionEvent eife.getSource instanceof NumberButton NumberButton bNumberButtone.getSource if链表.size0 int numberb.getNumber 链表.addquotquot number resultShow.setTextquotquot number 是否按下等号false else if链表.size1ampamp是否按下等号false int numberb.getNumber String numString链表.getFirst String snum.concatquotquot number 链表.set0s resultShow.setTexts else if链表.size1ampamp是否按下等号true int numberb.getNumber 链表.removeFirst 链表.addquotquot number 是否按下等号false resultShow.setTextquotquot number else if链表.size2 int numberb.getNumber 链表.addquotquot number resultShow.setTextquotquot number else if链表.size3 int numberb.getNumber String numString链表.getLast String snum.concatquotquot number 链表.set2s resultShow.setTexts else ife.getSource instanceof OperationButton OperationButton bOperationButtone.getSource if链表.size1 String fuhaob.getOperator 链表.addfuhao else if链表.size2 String fuhaob.getOperator 链表.set1fuhao else if链表.size3 String fuhaob.getOperator String number1String链表.getFirst String number2String链表.getLast String 运算符号String链表.get1 try double n1Double.parseDoublenumber1 double n2Double.parseDoublenumber2 double n0 if运算符号.equalsquotquot nn1n2 else if运算符号.equalsquot-quot nn1-n2 else if运算符号.equalsquotquot nn1n2 else if运算符号.equalsquot/quot nn1/n2 链表.clear //根据链表内已有的数进行运算,其结果作为新的运算数值。
链表.addquot quotn 链表.addfuhao resultShow.setTextquot quotn catchException ee else ife.getSource等号按钮 是否按下等号true if链表.size1链表.size2 String numString链表.getFirst resultShow.setTextquot quotnum else if链表.size3 String number1String链表.getFirst String number2String链表.getLast String 运算符号String链表.get1 try double n1Double.parseDoublenumber1 double n2Double.parseDoublenumber2 double n0 if运算符号.equalsquotquot nn1n2 else if运算符号.equalsquot-quot nn1-n2 else if运算符号.equalsquotquot nn1n2 else if运算符号.equalsquot/quot nn1/n2 resultShow.setTextquot quotn 链表.set0quot quotn 链表.removeLast 链表.removeLast catchException ee else ife.getSource小数点按钮 if链表.size0 是否按下等号false else if链表.size1 String dot小数点按钮.getLabel String numString链表.getFirst String snull ifnum.indexOfdot-1 snum.concatdot 链表.set0s else snum 链表.set0s resultShow.setTexts else if链表.size3 String dot小数点按钮.getLabel String numString链表.getLast String snull ifnum.indexOfdot-1 snum.concatdot 链表.set2s else snum resultShow.setTexts else ife.getSource退格按钮 if链表.size1 String numString链表.getFirst ifnum.lengthgt1 numnum.substring0num.length-1 链表.set0num resultShow.setTextnum else 链表.removeLast resultShow.setTextquot0quot else if链表.size3 String numString链表.getLast ifnum.lengthgt1 numnum.substring0num.length-1 链表.set2num resultShow.setTextnum else 链表.removeLast resultShow.setTextquot0quot else ife.getSource正负号按钮 if链表.size1 String number1String链表.getFirst try double dDouble.parseDoublenumber1 d-1d String strString.valueOfd 链表.set0str resultShow.setTextstrcatchException eeelse if链表.size3 String number2String链表.getLast try double dDouble.parseDoublenumber2 d-2d String strString.valueOfd 链表.set2str resultShow.setTextstr catch Exception ee else if e.getSource求倒数按钮 if 链表.size1链表.size2 String number1String链表.getFirst try double dDouble.parseDoublenumber1 d1.0/d String strString.valueOfd 链表.set0str resultShow.setTextstr catchException ee else if链表.size3 String number2String链表.getLast try double dDouble.parseDoublenumber2 d0.0/d String strString.valueOfd 链表.set0str resultShow.setTextstr catchException ee else ife.getSource清零按钮 是否按下等号false resultShow.setTextquot0quot 链表.clear public static void main String args new ComputerPad 类 NumberButton OperationButton:张亚利、戢苓、査璜坚主要负责数字按钮与符号按钮NumberButtonpackage net.wz1101.keshe_02import
java.awt.import
java.awt.event.import javax.swing.public class NumberButton extends JButton int number public NumberButtonint number superquotquotnumber this.numbernumber setForegroundColor.blue public int getNumber return number OperationButtonpackage net.wz1101.keshe_02import
java.awt.import
java.awt.event.import javax.swing.public class OperationButton extends JButton String operator public OperationButtonString s supers operators setForegroundColor.red public String getOperator return operator 四、执行结果 .