java计算器实验总结
java计算器实验总结,做完实验你会有所发现,怎么写总结呢?下面是小编带来的java计算器实验总结,欢迎阅读!
java计算器实验总结【1】
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); 输入,请重新输入:");
}
else { } String reslut = text.setText(text.getText()+"="+reslut); text.requestFocus(); 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(154,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(154,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(154,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(154,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 =
se.eval(text.getText()).toString();
}
} text.setText(text.getText()+"="+reslut); text.requestFocus(); }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)
} } });
程序截图
1.初始运行界面
2.运行测试
成绩 指导教师
日期 注:请用A4纸书写,不够另附纸。
第 页,共 页
java计算器实验总结【2】
终于搞定了这份实训报告,受益匪浅啊
一开始想做计算器那个课题,原因很简单,就是因为我感觉那个课题很简单,在百度里一搜就搜到了一模一样的源程序。
只是感觉没什么意思,那个界面也不是很好看,又不好玩。
所以就做了现在这个猜数游戏。
一直想编个游戏程序,于是就到网上去搜代码,一下子就搜到了,而且代码很少,简单易懂 。
程序是弄好了,那么简短的程序写起报告就犯难了!不得不把程序再添加些模块,充实充实。
这也让我感觉实训远比想像的难度大,不是网上随便搜一下就可以交差的!不仅需要自己看懂代码,还需要根据自己的需要添加模块,充实代码。
从网上搜的代码都是字符界面的,老师说既然字符界面的没挑战性,那就做图形界面的好了。
做图形界面就有点犯难了,首先没有什么程序可以参照了,必须自己充分理解字符界面的源代码,然后逐步修改完善。
我依据课本上的GUI章节设计了此次的java简单程序,基本实现了课题的要求,还添加了图片以增加视觉效果,以及确定按钮方便用户确定输入数字。
通过这次实训我的体会归纳为以下4点:
1. 态度第一 摆正自己的心态,不要以为什么东西上网搜搜就可以了,一定要有自己的东西。
只有自己付出过,当程序运行成功时的那种喜悦才会令自己有一种莫名的自豪感。
态度决定一切!
2. 兴趣是关键 我的学习完全是兴趣导向的,所以压力并不大。
因为有兴趣,所以我会很想充分理解一切细节。
又因为理解,所以许多原本片片断断的知识都可以渐渐互相融会贯通,累积技术能量,理论和实务之间的藩篱被打破了,学习效率倍增。
学习并快乐着!
3. 敢于挑战 不安于现成的程序,要敢于用多种方法实现一个目的。
现在的网络科技很发达,想要一个源程序的确很简单,所以很多人都是在自己都不明白题目要求时,就可以在网上搜到一模一样的代码,根本没有自己的东西。
挑战自我是项艰巨的任务。
只有坚持自己多看代码多写程序才会有更多的收获。
4. 不懈追求 要对源代码进行不断地完善,要尽可能地实现课题所要求的功能。
对初学者来说,大量地写程序是必要的,但过了某个阶段之后,写程序所带来的技术能力成长已经到了极限,还不如多花一点时间看书,学新技术和新观念。
可以从实现源程序功能着手,比如添加写模块啊什么的,实现更多功能。
看着自己编的程序能成功运行,这样自己会更感兴趣,也就会乐此不疲。
【java计算器实验总结】相关文章:
8.java学习总结