《java程序设计报告---设计一个计算器.doc》由会员分享,可在线阅读,更多相关《java程序设计报告---设计一个计算器.doc(8页珍藏版)》请在金锄头文库上搜索。
1、课 程 设 计课程设计目的 设计一个基于Swing的计算器应用程序,完成普通的算术运算。 课程设计要求1.设计的计算器是基于Swing的,可以完成加减乘除和取余运算。2.增加计算器的日期计算功能,能够计算两个日期之间相距的天数。(要判断键入的日期格式是否正确,并能正确处理按钮动作事件,同时能够得到正确的计算结果)设计要点 主要练习使用布局管理器设计一个计算器的界面,并使用事件监听器处理数据的输入,完成相关的计算。在面板上可以增加一个算术/日期的转换按钮来选择是普通计算还是日期计算。以及增加一个清零的按钮CE,用以将显示结果的单行文本域清空,同时将各个参数设置为默认值。二、总体方案设计日常生活中
2、经常需要用到计算器,比如科学计算,数值计算,会计业务等等,在Applet中实现一个精巧的计算器,可以让用户的操作也更方便和快捷。本项目需要实现一个具有四则运算的计算器,能够实现基本的加、减、乘、除运算,以及其它的辅助功能;界面简洁适用;要提供主要的设计思路、类的设计,本次设计添加转进制等功能。本应用程序继承自框架(frame),此程序使用frame布局管理器bordelayout,将单行文本加入相应区域,包含各种按纽的面板buttonpanel加入相应区域还可以将进制转换的面板与单行文本框放一块包含各种按纽的面板buttonpanel采用N行N列的网格布局,然后将数字按钮和运算符按钮以及控制按
3、钮添加到面板中,同时注册按钮事件监听器。布局设计好后再添加按钮事件。对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。四、程序的调试与运行结果说明程序功能实现:使用swing组件和awt图形用户界面以及BroadLayout布局管理器。通过在按钮的单击事件处理方法中调用类的成员方法calculator()来进行简易计算器的各种运算,并正确实现运算功能。程序可以实现加、减、乘、除、取余等运算,并且可进行负数的运算,设置
4、CE清零按钮可进行清零运算。添加菜单条,列出标准计算、日期计算菜单选项,并别实现标准计算且整个程序对话框可实现最小化、最大化、关闭。运行结果截图: 五、程序代码源代码:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator extends Frame implements ActionListener/,WindowListener /定义一个继承Frame主程序类并实现按钮监听器和窗口监听器接口private Container container;/定义一个私有的抽象组件类
5、containerprivate GridBagLayout layout;/定义一个私有的面板类private GridBagConstraints constraints;/定义一个私有类用于添加和删除private JTextField displayField; /计算结果显示区private String lastCommand; /保存+,-,*,/,=命令0private double result; /保存计算结果private boolean start; /判断是否为数字的开始private JMenuBar menubar;/定义类用于放置菜单Dialog dialog;
6、/用于对话框的设置private JButton button_plusminus,button_cancel,button_1,button_2,button_3,button_4,button_5,button_6,button_7,button_8,button_9,button_0,button_plus,button_minus,button_multiply,button_divide,button_point,button_equal,button_yu;/定义按钮public Calculator() /构造方法设置布局、为按钮注册事件监听器super(Calculator);
7、/调用父类中的calculator方法this.setLocation(240,200);/设置初始化this.setSize(350,300);/设置窗口大小this.setResizable(true);/设置位置可重置说明框架大小可被用户改变this.setLayout(new GridLayout(7,1);/建立GridLayou版面配置格子this.addmyMenu(); /调用成员方法添加菜单displayField=new JTextField(20);/创建文本对象this.add(displayField);/调用成员方法并添加对象displayField.setEdit
8、able(true);/设置用户可编程文本start=true;result=0;lastCommand = =;/初始化变量JPanel panel0=new JPanel();/声明对象panel0.setLayout(new GridLayout(1,1);/使用边框布局指定行数和列数JPanel panel1=new JPanel();panel1.setLayout(new GridLayout(1,3,4,4);/使用边框布局和流布局指定行数、列数和水平垂直间距this.add(panel1);/调用成员方法并添加panel1button_cancel=new JButton(CE
9、);/声明按钮对象button_plusminus=new JButton(+/-);button_yu=new JButton(%);JPanel panel2=new JPanel();panel2.setLayout(new GridLayout(1,4,4,4);this.add(panel2);button_7=new JButton(7);button_8=new JButton(8);button_9=new JButton(9);button_divide=new JButton(/);JPanel panel3=new JPanel();panel3.setLayout(ne
10、w GridLayout(1,4,4,4);this.add(panel3);button_4=new JButton(4);button_5=new JButton(5);button_6=new JButton(6);button_multiply=new JButton(*);JPanel panel4=new JPanel();panel4.setLayout(new GridLayout(1,4,4,4);this.add(panel4);button_1=new JButton(1);button_2=new JButton(2);button_3=new JButton(3);b
11、utton_minus=new JButton(-);JPanel panel5=new JPanel();panel5.setLayout(new GridLayout(1,4,4,4);this.add(panel5);button_0=new JButton(0);button_point=new JButton(.);button_equal=new JButton(=);button_plus=new JButton(+);panel1.add(button_cancel);/把按钮添加到panel上panel1.add(button_plusminus);panel1.add(bu
12、tton_yu);panel2.add(button_7);panel2.add(button_8);panel2.add(button_9);panel2.add(button_divide);panel3.add(button_4);panel3.add(button_5);panel3.add(button_6);panel3.add(button_multiply);panel4.add(button_1);panel4.add(button_2);panel4.add(button_3);panel4.add(button_minus);panel5.add(button_0);pa
13、nel5.add(button_point);panel5.add(button_equal);panel5.add(button_plus);button_cancel.addActionListener(this);/为按钮添加监听器button_plusminus.addActionListener(this);button_yu.addActionListener(this);button_7.addActionListener(this);button_8.addActionListener(this);button_9.addActionListener(this);button_
14、divide.addActionListener(this);button_4.addActionListener(this);button_5.addActionListener(this);button_6.addActionListener(this);button_multiply.addActionListener(this);button_1.addActionListener(this);button_2.addActionListener(this);button_3.addActionListener(this);button_minus.addActionListener(
15、this);button_0.addActionListener(this);button_point.addActionListener(this);button_equal.addActionListener(this);button_plus.addActionListener(this);this.addWindowListener(new WinClose(); /注册窗口监听器this.setVisible(true);/设置按钮可见private void addmyMenu()/菜单的添加JMenuBar menubar=new JMenuBar();/菜单对象的创建this.add(menubar);/调用方法添加菜单JMe