java实验报告-计算器附源代码

面向对象程序设计

实验报告

学 院 计算机科学与技术学院 专 业 计算机科学与技术 学 号 姓 名 指导教师

2016 年 1 月 1 日

1

一、实验目的

参照Windows计算器功能,用java语言编写一个图形化计算器程序,实现加、减、乘、

除等运算。

二、实验题目

Java计算器的编写

三、实验内容

import java.awt.*; import java.awt.event.*; import javax.swing.*;

public class Calculator extends JFrame implements ActionListener { //定义字符型数组,存放按钮字符

private final String[] str = { \

\

//定义按钮数组,用于实现上面的按钮字符 JButton[] buttons = new JButton[str.length]; //定义文本行,初始显示0

JTextField display = new JTextField(\ //计算器构造函数 public Calculator() { super(\计算器\

//panel1是集合了数字和运算符的面板

1

JPanel panel1 = new JPanel(new GridLayout(5, 4)); for (int i = 0; i < str.length; i++) { //把按钮数组加进来

buttons[i] = new JButton(str[i]); panel1.add(buttons[i]); }

this.addWindowListener(new WinClose()); //panel2是文本域和归零面板

JPanel panel2 = new JPanel(new BorderLayout()); panel2.add(\

getContentPane().setLayout(new BorderLayout()); getContentPane().add(\ getContentPane().add(\ // 为每个数字和运算符按钮添加事件监听器 for (int i = 0; i < str.length; i++) buttons[i].addActionListener(this); //为文本域添加事件监听器

display.addActionListener(this); //设置窗口位置

setBounds(500, 200, 400, 400); //设置框架不能改变大小 setResizable(false); //设置组件可见 setVisible(true);

2

//调整此窗口的大小,以适合其子组件的首选大小和布局 pack(); }

//value用来记录当前文本域的数值 double value=0;

public void actionPerformed(ActionEvent e) { String label = e.getActionCommand(); if(label.equals(\ display.setText(\

}

else if(label.equals(\ }

else if(label.equals(\ }

value=Double.parseDouble(display.getText()); if(value<0){ } else{ }

value=Math.sqrt(value);

display.setText(String.valueOf(value)); display.setText(\负数不存在平方根!\handleC();

3

else if(label.equals(\ }

value=Double.parseDouble(display.getText())*(-1); display.setText(String.valueOf(value));

else if (\

/*(\意思是当前输入的数字是“0123456789”中的一个时,响应输入数字事件,和下面同效果

* (label.equals(\label.equals(\label.equals(\label.equals(\label.equals(\

label.equals(\

label.equals(\label.equals(\

handleNumber(label); else

handleOperator(label); }

//设置布尔型变量,用于标记是否是第一次按下小数点,初始为是 boolean isFirstDigit = true; //响应数字按钮

public void handleNumber(String key) { if (isFirstDigit)

display.setText(key);

else if ((key.equals(\ display.setText(display.getText() + \

4

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4