Java实现简易计算器

  • 格式:doc
  • 大小:88.00 KB
  • 文档页数:11

Java实训作业

题目: Java实现简易计算器

学 院:

姓 名:

学 号:

班 级:

20 年 月 一、 实验目的

通过课程设计,主要要达到两个目的,一是检验和巩固专业知识、二是提高综合素质和能力。此次课程设计实训主要是Java语言程序设计的实现。通过该课程设计,可以将课堂上掌握的理论知识与处理数据的业务相结合,以检验自己掌握知识的宽度、深度及对知识的综合运用能力。

二、 实验要求

用Java编写一个简单的计算器,使其能够实现最基本的功能,如简单的加、减、乘、除;平方根,倒数,平方等功能。

三、 详细内容

1. 界面设计

界面设计使用GUI,其中有用到swing组件的TextField和Button,用到awt中的BorderLayout和GridLayout布局管理方式,其图形界面如图1-1所示:

图1-1 其中主要代码为:

public mainWindow(){

this.setTitle("计算器");//用户图形界面标题

this.setVisible(true);//用户图形界面可缩小

this.setResizable(false);//用户图形界面不可放大

this.setSize(350,300);//设置用户图形界面的大小

this.setLocation(400,150);//用户图形界面在屏幕中的显示位置

JPanel panel1 = new JPanel();//新建一个画板

JPanel panel2 = new JPanel();

button1 = new JButton("1");

...

reset = new JButton("CE");

Container container = this.getContentPane();

container.add(panel2,BorderLayout.NORTH);

container.add(panel1);

panel1.setLayout(new GridLayout(5,4));//将画板1分为4行5列

result.setEnabled(false);

result.setFont(new Font("Dialog",Font.BOLD,25));//运算结果的字体大小

result.setEditable(false);

result.setHorizontalAlignment(SwingConstants.RIGHT);

panel1.add(reciprocal);//分别将20个按钮依次添加到画板panel1中,并设置各自的大小

reciprocal.setFont(new Font("Dialog",Font.PLAIN,20));

...

panel1.add(divide);

divide.setFont(new Font("Dialog",Font.PLAIN,20));

panel2.setLayout(new GridLayout());

panel2.add(result);//画板panel2添加运算结果

2. 四则运算

较为简单的实现了简单的加、减、乘、除运算,主要代码如下: ActionListener equal1 = new ActionListener(){ //实现四则运算

public void actionPerformed(ActionEvent e){

String str = result.getText();

b = DatatypeConverter.parseDouble(str);{

if(flag == "+")

c = a + b;

else if(flag == "-")

c = a - b;

else if(flag == "*")

c = a * b;

else if(flag == "/" || b != 0)

c = a / b;

}

if(flag != "=")

result.setText("" + c);

else

result.setText("零不能做除数!");

a = 0;

b = 0;

c = 0;

flag = "";

}

};

3. 其他功能

另外添加了平方根,倒数,平方等功能,主要代码如下:

平方根运算的实现:

ActionListener sqrt1= new ActionListener(){

public void actionPerformed(ActionEvent e){

String str = result.getText();

double i = DatatypeConverter.parseDouble(str);

i = Math.sqrt(i); result.setText("" + i);

}

};

倒数运算的实现:

ActionListener reciprocal1 = new ActionListener(){

public void actionPerformed(ActionEvent e){

String str = result.getText();

double i = DatatypeConverter.parseDouble(str);

i = 1/i;

result.setText("" + i);

}

};

平方运算的实现:

ActionListener square1 = new ActionListener(){

public void actionPerformed(ActionEvent e){

String str = result.getText();

double i = DatatypeConverter.parseDouble(str);

i = i*i;

result.setText("" + i);

}

};

4. 程序测试

经测试发现本计算器基本功能均能实现,可正常运行计算,针对功能实现的代码部分过于简单,可以对其进行改善提高,方便用户使用!

5. 实训小结

通过对计算器窗体的编写,熟悉了java图形用户界面的设计原理和程序结构,熟悉了java中awt和swing的组合。学会将书本上的知识运用在实际中,提升了编程能力。 四、 源代码

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Container;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.SwingConstants;

import javax.xml.bind.DatatypeConverter;

public class Calculator{

public static void main(String[] args){

new mainWindow();//新建主类调用

}

}

class mainWindow extends JFrame{

JTextField result = new JTextField("0");//结果栏用于存储运算结果

JButton button0;//按钮0

JButton button1;//按钮1

JButton button2;//按钮2

JButton button3;//按钮3

JButton button4;//按钮4

JButton button5;//按钮5

JButton button6;//按钮6

JButton button7;//按钮7

JButton button8;//按钮8

JButton button9;//按钮9

JButton reciprocal;//倒数按钮

JButton square;//平方按钮

JButton sqrt;//平方根按钮

JButton reset;//清零按钮

JButton add;//加法按钮

JButton reduce;//减法按钮

JButton multiply;//乘法按钮

JButton divide;//除法按钮

JButton equal;//等号按钮

JButton point;//小数点按钮

double a,b,c;

String flag;

public mainWindow(){

this.setTitle("计算器");//用户图形界面标题

this.setVisible(true);//用户图形界面可缩小