java程序设计报告---设计一个计算器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java程序设计报告---设计一个计算器课程设计目的
设计一个基于Swing的计算器应用程序,完成普通的算术运算。课程设计要求
1.设计的计算器是基于Swing的,可以完成加减乘除和取余运算。
2.增加计算器的日期计算功能,能够计算两个日期之间相距的天数。(要判断键入的日期格式是否正确,并能正确处理按钮动作事件,同时能够得到正确的计算结果)
设计要点
主要练习使用布局管理器设计一个计算器的界面,并使用事件监听器处理数日期的转换按钮来选据的输入,完成相关的计算。在面板上可以增加一个算术/
择是普通计算还是日期计算。以及增加一个清零的按钮CE,用以将显示结果的单行文本域清空,同时将各个参数设置为默认值。
二、总体方案设计
日常生活中经常需要用到计算器,比如科学计算,数值计算,会计业务等等,在Applet中实现一个精巧的计算器,可以让用户的操作也更方便和快捷。本项目需要实现一个具有四则运算的计算器,能够实现基本的加、减、乘、除运算,以及其它的辅助功能;界面简洁适用;要提供主要的设计思路、类的设计,本次设计添加转进制等功能。
本应用程序继承自框架(frame),此程序使用frame布局管理器bordelayout,将单行文本加入相应区域,包含各种按纽的面板buttonpanel加入相应区域还可以将进制转换的面板与单行文本框放一块包含各种按纽的面板buttonpanel采用N行N
列的网格布局,然后将数字按钮和运算符按钮以及控制按钮添加到面板中,同时注册按钮事件监听器。
布局设计好后再添加按钮事件。对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。
四、程序的调试与运行结果说明
程序功能实现:
使用swing组件和awt图形用户界面以及BroadLayout布局管理器。通
过在按钮的单击事件处理方法中调用类的成员方法calculator()来进行
简易计算器的各种运算,并正确实现运算功能。
程序可以实现加、减、乘、除、取余等运算,并且可进行负数的运
算,设置CE清零按钮可进行清零运算。
添加菜单条,列出‘标准计算’、‘日期计算’菜单选项,并别实
现‘标准计算’且整个程序对话框可实现最小化、最大化、关闭。运行结果截图:
五、程序代码
源代码:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator extends Frame implements ActionListener
//,WindowListener //定义一个继承Frame主程序类并实现按钮监听器和窗口监听器接口 {
private Container container;//定义一个私有的抽象组件类container private GridBagLayout layout;//定义一个私有的面板类
private GridBagConstraints constraints;//定义一个私有类用于添加和删
除
private JTextField displayField; //计算结果显示区
private String lastCommand; //保存+,-,*,/,=命令0
private double result; //保存计算结果
private boolean start; //判断是否为数字的开始
private JMenuBar menubar;//定义类用于放置菜单
Dialog dialog;//用于对话框的设置
private JButton
button_plusminus,button_cancel,button_1,button_2,
button_3,button_4,button_5,button_6,button_7,button_8,button_9,butto
n_0,
button_plus,button_minus,button_multiply,button_divide,button_point, button_equal,button_yu;//定义按钮
public Calculator() //构造方法设置布局、为按钮注册事件监听器
{
super("Calculator");//调用父类中的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.setEditable(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);//调用成员方法并添加panel1
button_cancel=new JButton("CE");//声明按钮对象
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(new GridLayout(1,4,4,4));
this.add(panel3);