您好,欢迎来到抵帆知识网。
搜索
您的当前位置:首页java计算器实验报告

java计算器实验报告

来源:抵帆知识网


GDOU-B-11-112

广东海洋大学学生实验报告书(学生用表)

实验名称 JAVA计算器程序设计 学院(系) 学生姓名

课程名称 专业

JAVA程序设计

班级

课程号 完成日期

学号

实验地点

实验JAVA计算器程序设计

1) 实验总结:刚做之前,勉强还能做些小程序,但在进行了计算器程序设计的时候,才发现很多语句还不能联系运用,大部分还是通过百度和书籍才勉勉强强完成,看来实践才是硬道理 2) 实验目的

通过计算器程序设计,能够更加深入的了解JAVA,熟悉图形用户的设计原理和程序结构等

4) 实验内容和步骤

实验内容

应用JAVA软件设计一个简易的计算器,实现基本的四则运算及括号

设计流程

1. 分析该计算器需要完成的功能。

用户能够完成添加括号和负号的四则混合运算,并且计算器能够自动识别运算符的优先级,根据用户输入的运算表达式,自动计算出相应的结果。同时还完成了计算器中C按钮清屏功能和

Backspace退格键。

2. 考虑异常处理。

(1)当输入的表达式中出现除零的操作,显示框将显示“Infinity(无穷大)”。

(2)当输入的表达式错误时,将弹出提示框显示“表达式错误请重新输入”

(3)当计算器的显示文本框里为没有输入内容时直接点击等号按钮,将弹出提示框显示“对不起,您没有任何输入,请重新输入:”。 (4)当第一次输入乘号键,除号键,右括号,小数点,求余键,等号键,ce键,Backspace键时提示错误。 4. 考虑数据的处理

目标计算表达式通过点击计算器界面上的按钮进行输入,当按下等号之后,计算器通过调用JAVA中script这个包中的相关类和方法来实现数据的处理。 5. 编码实现计算器的功能。 (1)新建相关的文件。

(2)引入JAVA中相关的包。

(3)新建类Jsq,并继承了类Frame,而且实现了接口ActionListener (4)定义相关的变量,创建相关组件,并对组件的属性进行设置。 (5)对所创建的组件进行布局,完成界面的实现。 (6)为各个组件添加事件。

(7)重写事件接口ActionListener的方法public void actionPerformed(ActionEvent e)。

(8)为各个组件编写事件代码,完成每个按钮的不同功能。 4、程序

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

import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager; import javax.script.ScriptException;

public class Calculator extends Frame {

public static void main(String[] args) {

final Frame window = new Frame(\"Calculator\"); window .setSize(380, 337); int width = Toolkit.getDefaultToolkit().getScreenSize().width;

window .setResizable(false);

int height = Toolkit.getDefaultToolkit().getScreenSize().height; window.setLocation(width / 2 - 200, height / 2 - 150); window .setLayout(null); /

final JTextField text = new JTextField(); //text.setEditable(false);

text.setEditable(true); text.setBounds(10,40,360,50); window .add(text); text.setForeground(Color.blue); text.setBackground(Color.LIGHT_GRAY ); text.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

ScriptEngineManager sem1 = new ScriptEngineManager(); ScriptEngine se1 = sem1.getEngineByName(\"js\"); try{

int leng10 = text.getText().length(); if(leng10 == 0) {

JOptionPane.showMessageDialog(null, \"对不起,您没有任何

text.requestFocusInWindow();

text.setHorizontalAlignment(JTextField.RIGHT);

输入,请重新输入:\");

}

}

String reslut =

text.setText(text.getText()+\"=\"+reslut); text.requestFocus();

else {

se1.eval(text.getText()).toString();

}catch (ScriptException evt){

JOptionPane.showMessageDialog(null,\"表达式错误,请重新输入! text.setText(\"\"); //给文本框赋值为 text.requestFocus(); }

\");

空达到清屏作用

}

});

/***********设置0键***************/

final JButton b0 = new JButton(\"0\"); //新建按钮0 b0.setBounds(10,283,72,50);

//设置0键的位置

window.add(b0); //把文本框添加到窗口中 b0.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) text.setText(text.getText()+\"0\"); text.requestFocus();

{ }

});

/********设置1键****************/

final JButton b1 = new JButton(\"1\"); window.add(b1); b1.setBounds(10,233,72,50); b1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) text.setText(text.getText()+\"1\"); text.requestFocus(); }

{

});

/***********设置2键*****************/

final JButton b2 = new JButton(\"2\"); b2.setBounds(82,233,72,50); window.add(b2); b2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e)

text.setText(text.getText()+\"2\"); text.requestFocus(); }

{

});

/********设置3键****************/

final JButton b3 = new JButton(\"3\"); b3.setBounds(1,233,72,50); window.add(b3); b3.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e)

}

text.setText(text.getText()+\"3\"); text.requestFocus();

{

});

/*********设置4键***************/

final JButton b4 = new JButton(\"4\"); b4.setBounds(10,183,72,50); window.add(b4); b4.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e)

}

text.setText(text.getText()+\"4\"); text.requestFocus();

{

});

/*********设置5键*************/

final JButton b5 = new JButton(\"5\"); b5.setBounds(82,183,72,50); window.add(b5); b5.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) text.setText(text.getText()+\"5\"); text.requestFocus();

{

}

});

/********设置6键***************/

final JButton b6 = new JButton(\"6\"); b6.setBounds(1,183,72,50); window.add(b6); b6.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) text.setText(text.getText()+\"6\"); text.requestFocus();

{ }

});

/*********设置7键**************/

final JButton b7 = new JButton(\"7\"); b7.setBounds(10,135,72,50); window.add(b7); b7.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) text.setText(text.getText()+\"7\"); text.requestFocus();

{ }

});

/**********设置8键***************/ final JButton b8 = new JButton(\"8\"); b8.setBounds(82,135,72,50); window.add(b8); b8.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) text.setText(text.getText()+\"8\"); text.requestFocus();

{ }

});

/***********设置9键**************/ final JButton b9 = new JButton(\"9\"); b9.setBounds(1,135,72,50); window.add(b9); b9.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e)

{ }

text.setText(text.getText()+\"9\"); text.requestFocus();

});

/***********设置加法键**************/ final JButton Add = new JButton(\"+\"); Add.setBounds(1,283,72,50); window.add(Add); Add .addActionListener(new ActionListener() {

{

text.setText(text.getText()+\"+\"); text.requestFocus();

public void actionPerformed(ActionEvent e)

} });

/***********设置减法键**************/ final JButton Sub = new JButton(\"-\");

Sub.setBounds(298,183,80,50); //设置减法键的位置

window.add(Sub); //把减号键添加到窗口中 Sub.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e)

text.setText(text.getText()+\"-\"); text.requestFocus();

{

} });

/***********设置乘法键**************/

final JButton Multi = new JButton(\"*\"); Multi.setBounds(226,183,72,50); window.add(Multi); Multi.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) int leng3 = text.getText().length(); if(leng3 >= 1 ) { } else {

JOptionPane.showMessageDialog(null,\"您输入的第一个字符为乘号,不text.setText(text.getText()+\"*\"); text.requestFocus();

{

符合要求请重新输入:\"); text.requestFocus();

} });

/***********设置除法键**************/ final JButton Div= new JButton(\"/\"); Div.setBounds(226,135,72,50); window.add(Div); Div.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) int leng4 = text.getText().length(); if(leng4 >= 1 ) { } else {

JOptionPane.showMessageDialog(null,\"您输入的第一个字符为除号,不text.setText(text.getText()+\"/\"); text.requestFocus();

{

}

符合要求请重新输入:\"); text.requestFocus();

} });

/***********设置等号键**************/

final JButton equal = new JButton(\"=\"); equal.setBounds(226,283,153,50);

window.add(equal); equal .addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e)

ScriptEngineManager sem = new ScriptEngineManager(); ScriptEngine se = sem.getEngineByName(\"js\"); try{

int leng5 = text.getText().length(); if(leng5==0) {

JOptionPane.showMessageDialog(null, \"对不起,您没有任何

text.requestFocus();

{

}

输入,请重新输入:\");

}

else {

}

}

String reslut =

text.setText(text.getText()+\"=\"+reslut); text.requestFocus();

se.eval(text.getText()).toString();

}catch (ScriptException evt){

JOptionPane.showMessageDialog(null,\"表达式错误,请重新输入! text.setText(\"\"); text.requestFocus(); }

\");

});

/***********设置小数点键**************/ final JButton point = new JButton(\".\"); point.setBounds(82,283,72,50); window.add(point); point.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) int leng6 = text.getText().length(); if(leng6 > 0) { } else {

JOptionPane.showMessageDialog(null,\"您输入的第一个字符为小数点,text.setText(text.getText()+\".\"); text.requestFocus();

{

不符合要求请重新输入:\"); text.requestFocus();

} });

/***********设置左括号键**************/ final JButton left = new JButton(\"(\");

left .setBounds(226,233,72,50); //设置左括号键的位置

window.add(left); //把左括号键添加到窗口中 left.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) text.setText(text.getText()+\"(\"); text.requestFocus();

{ }

}

});

/***********设置右括号键**************/ final JButton right = new JButton(\")\");

right.setBounds(298,233,80,50); //设置右括号键的位置

window.add(right); //把右括号键添加到窗口中 right.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) int leng7 = text.getText().length(); if(leng7 > 0) { } else {

JOptionPane.showMessageDialog(null,\"您输入的第一个字符为右括号,text.setText(text.getText()+\")\"); text.requestFocus();

{

不符合要求请重新输入:\"); text.requestFocus();

} });

/***********设置清屏键**************/ final JButton ce = new JButton(\"CE\");

ce.setBounds(190,90,186,45); window.add(ce); ce.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) int leng8 = text.getText().length(); if(leng8 > 0 ) { } else { }

JOptionPane.showMessageDialog(null,\"当前以经为空,无需清屏!\"); text.requestFocus(); text.setText(\"\"); text.requestFocus();

{

}

} });

/***********设置退格键**************/

final JButton back = new JButton(\"Backspace\"); back.setBounds(10,90,180,45);

window.add(back); back.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) String message;

int leng = text.getText().length(); message=text.getText(); if(leng==0) { } else {

text.setText(message.substring(0,leng-1)); text.requestFocus();

JOptionPane.showMessageDialog(null, \"对不起,您没有任何输入无法

text.requestFocus();

{

退格:\");

}

}

});

final JButton Air = new JButton(\"%\");

Air.setBounds(298,135,80,50); window.add(Air);

Air.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

int leng9 = text.getText().length(); {

if(leng9 > 0) { } else {

JOptionPane.showMessageDialog(null,\"您输入的第一个字符为求text.setText(text.getText()+\"%\"); text.requestFocus();

余数,不符合要求请重新输入:\"); text.requestFocus();

}

}

}

});

/*********关闭按钮***********/

window .addWindowListener(new WindowAdapter() {

{

System.exit(0); }

public void windowClosing(WindowEvent e)

}

}

});

window .show();

程序截图

1.初始运行界面

2.运行测试

成绩 指导教师

日期

注:请用A4纸书写,不够另附纸。

第 页,共 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务