java计算器实验报告

上传人:沈*** 文档编号:107344278 上传时间:2022-06-14 格式:DOC 页数:12 大小:122KB
返回 下载 相关 举报
java计算器实验报告_第1页
第1页 / 共12页
java计算器实验报告_第2页
第2页 / 共12页
java计算器实验报告_第3页
第3页 / 共12页
点击查看更多>>
资源描述
. -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 java*.swing.*;import.*;import;import java*.script.ScriptEngine;import java*.script.ScriptEngineManager;import java*.script.ScriptE*ception;publicclassCalculatore*tends Framepublicstaticvoid main(String args) final Frame window = new Frame(Calculator); window .setSize(380, 337); window .setResizable(false); int width = Toolkit.getDefaultToolkit().getScreenSize().width; int height = Toolkit.getDefaultToolkit().getScreenSize().height; window.setLocation(width / 2 - 200, height / 2 - 150); window .setLayout(null); /final JTe*tField te*t = new JTe*tField();te*t.setHorizontalAlignment(JTe*tField.RIGHT); /te*t.setEditable(false);te*t.setEditable(true); te*t.setBounds(10,40,360,50); window .add(te*t); te*t.setForeground(Color.blue); te*t.setBackground(Color.LIGHT_GRAY ); te*t.addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent arg0) ScriptEngineManager sem1 = new ScriptEngineManager(); ScriptEngine se1 = sem1.getEngineByName(js);tryint leng10 = te*t.getTe*t().length();if(leng10 = 0)JOptionPane.showMessageDialog(null, 对不起,您没有任何输入,请重新输入:); te*t.requestFocusInWindow(); else String reslut = se1.eval(te*t.getTe*t().toString(); te*t.setTe*t(te*t.getTe*t()+=+reslut); te*t.requestFocus(); catch (ScriptE*ception evt) JOptionPane.showMessageDialog(null,表达式错误,请重新输入!); te*t.setTe*t(); /给文本框赋值为空到达清屏作用 te*t.requestFocus(); );/*设置0键*/final utton b0 = new utton(0); /新建按钮0b0.setBounds(10,283,72,50); /设置0键的位置window.add(b0); /把文本框添加到窗口中b0.addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) te*t.setTe*t(te*t.getTe*t()+0); te*t.requestFocus(); );/*设置1键*/final utton b1 = new utton(1); window.add(b1); b1.setBounds(10,233,72,50); b1.addActionListener(new ActionListener()publicvoid actionPerformed(ActionEvent e) te*t.setTe*t(te*t.getTe*t()+1); te*t.requestFocus(); );/*设置2键*/final utton b2 = new utton(2);b2.setBounds(82,233,72,50); window.add(b2); b2.addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) te*t.setTe*t(te*t.getTe*t()+2);te*t.requestFocus(); );/*设置3键*/final utton b3 = new utton(3);b3.setBounds(154,233,72,50); window.add(b3); b3.addActionListener(new ActionListener()publicvoid actionPerformed(ActionEvent e) te*t.setTe*t(te*t.getTe*t()+3); te*t.requestFocus(); );/*设置4键*/final utton b4 = new utton(4);b4.setBounds(10,183,72,50); window.add(b4); b4.addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) te*t.setTe*t(te*t.getTe*t()+4); te*t.requestFocus(); );/*设置5键*/final utton b5 = new utton(5);b5.setBounds(82,183,72,50); window.add(b5); b5.addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) te*t.setTe*t(te*t.getTe*t()+5);te*t.requestFocus(); );/*设置6键*/final utton b6 = new utton(6);b6.setBounds(154,183,72,50); window.add(b6); b6.addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) te*t.setTe*t(te*t.getTe*t()+6);te*t.requestFocus(); );/*设置7键*/final utton b7 = new utton(7);b7.setBounds(10,135,72,50); window.add(b7); b7.addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) te*t.setTe*t(te*t.getTe*t()+7);te*t.requestFocus(); );/*设置8键*/final utton b8 = newutton(8);b8.setBounds(82,135,72,50); window.add(b8); b8.addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) te*t.setTe*t(te*t.getTe*t()+8);te*t.requestFocus(); );/*设置9键*/final utton b9 = new utton(9);b9.setBounds(154,135,72,50); window.add(b9); b9.addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) te*t.setTe*t(te*t.getTe*t()+9);te*t.requestFocus(); );/*设置加法键*/final utton Add = new utton(+);Add.setBounds(154,283,72,50); window.add(Add); Add .addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) te*t.setTe*t(te*t.getTe*t()+); te*t.requestFocus(); );/*设置减法键*/final utton Sub = new utton(-);Sub.setBounds(298,183,80,50); /设置减法键的位置window.add(Sub); /把减号键添加到窗口中 Sub.addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) te*t.setTe*t(te*t.getTe*t()+-); te*t.requestFocus(); );/*设置乘法键*/final utton Multi = new utton(*);Multi.setBounds(226,183,72,50); window.add(Multi); Multi.addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) int leng3 = te*t.getTe*t().length(); if(leng3 = 1 ) te*t.setTe*t(te*t.getTe*t()+*); te*t.requestFocus(); else JOptionPane.showMessageDialog(null,您输入的第一个字符为乘号,不符合要求请重新输入:); te*t.requestFocus(); );/*设置除法键*/final utton Div= new utton(/);Div.setBounds(226,135,72,50); window.add(Div); Div.addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) int leng4 = te*t.getTe*t().length();if(leng4 = 1 ) te*t.setTe*t(te*t.getTe*t()+/); te*t.requestFocus(); else JOptionPane.showMessageDialog(null,您输入的第一个字符为除号,不符合要求请重新输入:); te*t.requestFocus(); );/*设置等号键*/final utton equal = new utton(=);equal.setBounds(226,283,153,50); window.add(equal); equal .addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) ScriptEngineManager sem = new ScriptEngineManager(); ScriptEngine se = sem.getEngineByName(js);tryint leng5 = te*t.getTe*t().length();if(leng5=0)JOptionPane.showMessageDialog(null, 对不起,您没有任何输入,请重新输入:); te*t.requestFocus(); else String reslut = se.eval(te*t.getTe*t().toString();te*t.setTe*t(te*t.getTe*t()+=+reslut);te*t.requestFocus(); catch (ScriptE*ception evt) JOptionPane.showMessageDialog(null,表达式错误,请重新输入!); te*t.setTe*t(); te*t.requestFocus(); );/*设置小数点键*/final utton point = new utton(.);point.setBounds(82,283,72,50); window.add(point); point.addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) int leng6 = te*t.getTe*t().length();if(leng6 0) te*t.setTe*t(te*t.getTe*t()+.); te*t.requestFocus(); else JOptionPane.showMessageDialog(null,您输入的第一个字符为小数点,不符合要求请重新输入:); te*t.requestFocus(); );/*设置左括号键*/final utton left = new utton();left .setBounds(226,233,72,50); /设置左括号键的位置window.add(left); /把左括号键添加到窗口中 left.addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) te*t.setTe*t(te*t.getTe*t()+();te*t.requestFocus(); );/*设置右括号键*/final utton right = new utton();right.setBounds(298,233,80,50); /设置右括号键的位置window.add(right); /把右括号键添加到窗口中 right.addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) int leng7 = te*t.getTe*t().length();if(leng7 0) te*t.setTe*t(te*t.getTe*t()+); te*t.requestFocus(); else JOptionPane.showMessageDialog(null,您输入的第一个字符为右括号,不符合要求请重新输入:); te*t.requestFocus(); );/*设置清屏键*/final utton ce = new utton(CE);ce.setBounds(190,90,186,45); window.add(ce); ce.addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) int leng8 = te*t.getTe*t().length();if(leng8 0 ) te*t.setTe*t(); te*t.requestFocus(); else JOptionPane.showMessageDialog(null,当前以经为空,无需清屏!); te*t.requestFocus(); );/*设置退格键*/final utton back = new utton(Backspace);back.setBounds(10,90,180,45); window.add(back); back.addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) String message;int leng = te*t.getTe*t().length(); message=te*t.getTe*t(); if(leng=0)JOptionPane.showMessageDialog(null, 对不起,您没有任何输入无法退格:);te*t.requestFocus(); elsete*t.setTe*t(message.substring(0,leng-1); te*t.requestFocus(); );final utton Air = new utton(%);Air.setBounds(298,135,80,50); window.add(Air);Air.addActionListener(new ActionListener() publicvoid actionPerformed(ActionEvent e) int leng9 = te*t.getTe*t().length();if(leng9 0)te*t.setTe*t(te*t.getTe*t()+%);te*t.requestFocus(); elseJOptionPane.showMessageDialog(null,您输入的第一个字符为求余数,不符合要求请重新输入:);te*t.requestFocus(); );/*关闭按钮*/window .addWindowListener(new WindowAdapter() publicvoid windowClosing(WindowEvent e) System.e*it(0); );window .show();程序截图1.初始运行界面2.运行测试成绩指导教师日期注:请用A4纸书写,不够另附纸。第页,共页. 优选-
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!