1、java计算器实验总结 java计算器实验,做完实验你会有所发现,怎么写总结呢?下面是带来的java计算器实验总结,欢迎阅读! GDOU-B-11-112 广东海洋大学学生实验报告书(学生用表) 实验名称 JAVA计算器程序设计 学院(系) 学生姓名 课程名称 专业 JAVA程序设计 班级 课程号 完成日期 学号 实验地点 实验JAVA计算器程序设计 1) 实验总结:刚做之前,勉强还能做些小程序,但在进展了计算器程序设计的时候,才发现很多语句还不能联系运用,大部分还是通过百度和书籍才勉勉强强完成,看来实践才是硬道理
2、 2) 实验目的 通过计算器程序设计,能够更加深入的了解JAVA,熟悉图形用户的设计原理和程序构造等 4) 实验内容和步骤 实验内容 应用JAVA软件设计一个简易的计算器,实现根本的四那么运算及括号 设计流程 1. 分析该计算器需要完成的功能。 用户能够完成添加括号和负号的四那么混合运算,并且计算器能够自动识别运算符的优先级,根据用户输入的运算表达式,自动计算出相应的结果。 同时还完成了计算器中C按钮清屏功能和Backspace退格键。 2. 考虑异常处理。 (1)当输入的表达式中出现除零的操作,显示框将显示“In
3、finity(无穷大)”。 (2)当输入的表达式错误时,将弹出提示框显示“表达式错误请重新输入” (3)当计算器的显示文本框里为没有输入内容时直接点击等号按钮,将弹出提示框显示“对不起,您没有任何输入,请重新输入:”。 (4)当第一次输入乘号键,除号键,右括号,小数点,求余键,等号键,ce键,Backspace键时提示错误。 4. 考虑数据的处理 目标计算表达式通过点击计算器界面上的按钮进展输入,当按下等号之后,计算器通过调用JAVA中script这个包中的相关类和方法来实现数据的处理。 5. 编码实现计算器的功能。 (1)新建相关的文件
4、 (2)引入JAVA中相关的包。 (3)新建类Jsq,并继承了类Frame,而且实现了接口ActionListener (4)定义相关的变量,创立相关组件,并对组件的属性进展设置。 (5)对所创立的组件进展布局,完成界面的实现。 (6)为各个组件添加事件偷听。 (7)重写事件接口ActionListener的方法public void actionPerformed(ActionEvent e)。 (8)为各个组件编写事件代码,完成每个按钮的不同功能。 4、程序 import java.awt.*; import
5、 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 ma
6、in(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 - 1
7、50); 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.LIGHTGRAY ); text.addActionListener(new ActionListener() { public
8、 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.setHorizont
9、alAlignment(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.reques
10、tFocus(); } "); 空到达清屏作用 } }); /***********设置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
11、"); 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(); } { }
12、); /***********设置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键******
13、/ 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
14、 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.setBo
15、unds(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)
16、 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 ActionListen
17、er() { 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(Ac
18、tionEvent 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(te
19、xt.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
20、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.r
21、equestFocus(); { } }); /***********设置乘法键**************/ 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 )
22、 { } 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);
23、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(); { 符合要求请重新输入:");
24、 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 ScriptEngineManage
25、r(); 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.getTe
26、xt()+"="+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
27、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(); { 不符合要求请重新输入:");
28、 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()+"(
29、"); 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
30、getText().length(); if(leng7 > 0) { } else { JOptionPane.showMessageDialog(null,"您输入的第一个字符为右括号,text.setText(text.getText()+")"); text.requestFocus(); { 不符合要求请重新输入:"); text.requestFocus(); } }); /***********设置清屏键**************/ final JButton ce = new JButton("CE")
31、 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();
32、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 =
33、 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(29
34、8,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(); 余数,不符合要求请重新输入
35、"); text.requestFocus(); } } } }); /*********关闭按钮***********/ window .addWindowListener(new WindowAdapter() { { System.exit(0); } public void windowClosing(WindowEvent e) } } }); 程序截图 1.初始运行界面 2.运行测试 成绩 指导教师 日期 注:请用A4纸书写,不够另附纸。 第 页,共 页 终于搞定了这份实训报告,受益匪
36、浅啊 一开始想做计算器那个课题,原因很简单,就是因为我感觉那个课题很简单,在百度里一搜就搜到了一模一样的源程序。 只是感觉没什么意思,那个界面也不是很好看,又不好玩。 所以就做了现在这个猜数游戏。 一直想编个游戏程序,于是就到网上去搜代码,一下子就搜到了,而且代码很少,简单易懂 。 程序是弄好了,那么简短的程序写起报告就犯难了!不得不把程序再添加些模块,充实充实。 这也让我感觉实训远比想像的难度大,不是网上随便搜一下就可以交差的!不仅需要自己看懂代码,还需要根据自己的需要添加模块,充实代码。 从网上搜的代码都是字符界面的,老师说既然字符界
37、面的没挑战性,那就做图形界面的好了。 做图形界面就有点犯难了,首先没有什么程序可以参照了,必须自己充分理解字符界面的源代码,然后逐步修改完善。 我依据课本上的GUI章节设计了此次的java简单程序,根本实现了课题的要求,还添加了图片以增加视觉效果,以及确定按钮方便用户确定输入数字。 通过这次实训我的体会归纳为以下4点: 1. 态度第一 摆正自己的心态,不要以为什么东西上网搜搜就可以了,一定要有自己的东西。 只有自己付出过,当程序运行成功时的那种喜悦才会令自己有一种莫名的自豪感。 态度决定一切! 2. 兴趣是关键 我的学习完全是兴趣导向的,
38、所以压力并不大。 因为有兴趣,所以我会很想充分理解一切细节。 又因为理解,所以许多原本片片断断的知识都可以渐渐互相融会贯穿,累积技术能量,理论和实务之间的藩篱被打破了,学习效率倍增。 学习并快乐着! 3. 敢于挑战 不安于现成的程序,要敢于用多种方法实现一个目的。 现在的网络科技很兴旺,想要一个源程序确实很简单,所以很多人都是在自己都不明白题目要求时,就可以在网上搜到一模一样的代码,根本没有自己的东西。 挑战自我是项艰巨的任务。 只有坚持自己多看代码多写程序才会有更多的收获。 4. 不懈追求 要对源代码进展不断地完善,要尽可能地实现课题所要求的功能。 对初学者来说,大量地写程序是必要的,但过了某个阶段之后,写程序所带来的技术能力成长已经到了极限,还不如多花一点时间看书,学新技术和新观念。 可以从实现源程序功能着手,比方添加写模块啊什么的,实现更多功能。 看着自己编的程序能成功运行,这样自己会更感兴趣,也就会乐此不疲。






