下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上大连民族大学计算机科学与工程学院Java语言课程实验报告实验题目: 计算器的设计与实现 课程名称: Java语言 实验类型:演示性 验证性 操作性 设计性 综合性专业:网络工程 班级:*学生姓名* 学号:*实验日期:2018年 4月23日地点:计算机学院综合试验中心(I-303)实验学时:4实验成绩:指导教师签字: 2018年 5月21日一、 问题需求描述:利用Java Swing设计计算器图形化界面,并实现事件的监听,以及计算器基本的加、减、乘、除、清空、输出运算结果的操作,学习使用各种图形化界面的控件,容器,布局等,学习对按钮事件的处理等。以及对非法输入的处理。二
2、、 设计说明:Design notes本计算器,界面方面总体采用BorderLayout布局,显示输入输入的文本框和清除按钮采用FlowLayout布局,容器放在BorderLayout的North;0-9和各种运算符号还有小数点采用GridLayout布局,容器放在BorderLayou的Center;事件监听和处理通过实现addActioListener监视器接口和ItemEvent事件接口,从而对每一个按钮实现事件的监听和处理;计算方面,调用ScriptEngineManager和ScriptEngine两个类,直接通过eval函数直接把输入文本当作JS代码执行,输出执行结果,这样报错也
3、会直接实现,另把文本框设置不允许直接从键盘输入以防止出现安全事件。 最后通过转化成JS代码运算得到启发,使用类似方法,我还实现了调用VB代码实现计算器实时读出键盘输入,发出声音。三、 系统实现:system implementation1.程序界面展示四、 总结体会: summary and experience 实验达到了预期的目标。通过此次的编程,我学会了用Java语言编写简单的软件,增强了我对学习Java的兴趣。编程过程中,总体设计主要是窗口与组件的应用,具体执行则是利用Java语言设计算法,而难点也在算法的设计上。虽然程序大体上符合要求,但由于第一次编写这么复杂的程序,程序仍然存在一-
4、些漏洞,譬如由于未进行异常处理,当连续输入运算符是程序会出错,还有若一直按小数点的话会得到一连串的小数点。由于最近忙着考试没有时间修改,考试结束后一定认真修改这些问题。我觉得在编程时应该注意排版对齐,这样不论是自己检查程序还是别人阅读程序都会更加方便。如果能添加备注的话以后阅读程序会更容易些。在以后的编程中我会吸取经验,养成认真、严谨的编程习惯。附:程序清单1.import javax.swing.JFrame;public class Calculator public static void main(String paramArrayOfString) CalculatorFrame l
5、ocalCalculatorFrame = new CalculatorFrame(); localCalculatorFrame.setSize(800, 800); localCalculatorFrame.setVisible(true); 2import java.awt.Container;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JFrame;class CalculatorFrame extends JFrame public Calculato
6、rFrame() setTitle(Calculator); setSize(200, 200); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent paramAnonymousWindowEvent) System.exit(0); ); Container localContainer = getContentPane(); localContainer.add(new CalculatorPanel(); 3. import java.awt.BorderLayout;import ja
7、va.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.JPanel;import javax.swing.JTextField;class CalculatorPanel extends JPanel implements ActionListe
8、ner private JTextField display; public CalculatorPanel() setLayout(new BorderLayout(); this.display = new JTextField(); this.display.setEditable(false); this.display.setFont(this.font); this.display.setBackground(Color.orange); add(this.display, North); JPanel localJPanel = new JPanel(); localJPanel
9、.setLayout(new GridLayout(4, 4, 5, 5); String arrayOfString = 7, 8, 9, /, 4, 5, 6, *, 1, 2, 3, -, 0, ., =, + ; for (int i = 0; i arrayOfString.length; i+) addButton(localJPanel, arrayOfStringi); add(localJPanel, Center); private void addButton(Container paramContainer, String paramString) JButton lo
10、calJButton = new JButton(paramString); localJButton.setFont(this.font); paramContainer.add(localJButton); localJButton.addActionListener(this); public void actionPerformed(ActionEvent paramActionEvent) String str = paramActionEvent.getActionCommand(); if (0 = str.charAt(0) & (str.charAt(0) = 9) | (s
11、tr.equals(.) if (this.start) this.display.setText(str); else this.display.setText(this.display.getText() + str); this.start = false; else if (this.start) if (str.equals(-) this.display.setText(str); this.start = false; else this.op = str; else double d = Double.parseDouble(this.display.getText(); calculate(d); this.op = str; this.start = true; public void calculate(double paramDouble) if (this.op.equals(+) this.arg += paramDouble; else if (this.op.equals(-) this.arg -= paramDouble; else if (this.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新形势下智能交互显示行业顺势崛起战略制定与实施分析研究报告
- 绿色农业展览馆行业深度调研及发展战略咨询报告
- 管理考研科目试题及答案
- 2026届厦门市九年级语文中考三模原创仿真模拟试卷(含参考答案解析与作文范文)
- 机械识图题库及答案2
- 护理妇产科试卷及答案
- 2026年中国电信校招笔试历年仿真题
- 2026年幼儿园卫生消毒理论知识
- 2026年网络游戏运营合作协议合同
- 2026年数字货币交易安全协议合同
- 【大学课件】图书分类法
- 《民爆物品安全知识》课件
- 2025年高考语文备考之常考的修辞手法分类古诗文默写题(含答案)
- GB/T 29468-2024洁净室及相关受控环境围护结构夹芯板
- 七年级下册数学课件:平行线中的拐点问题
- 2024新能源光伏场站电力监控系统安全防护总体方案
- 广东工业大学线性代数试卷A卷1
- 2023年中冶赛迪研发中心招聘笔试参考题库附带答案详解
- 小儿推拿常用手法及穴位
- GB/T 14782-2010平地机技术条件
- 房地产中介企业交易房款监管账户及账号申报表
评论
0/150
提交评论