




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告题 目: 基于 JAVA计算器小软件设计 学生姓名: 廖永治 束翔 陶善庆 学生学号: 0908050220 0908050229 0908050233 系 别: 电气信息工程学院 专 业: 电子信息科学与技术 届 别: 2013届 指导教师: 李营 电气信息工程学院制2012年 5月淮南师范学院电气信息工程学院 2013 届电子信息科学与技术专业课程设计报告1 第 页基于 JAVA 计算器小软件设计学生:廖永治 束翔 陶善庆指导教师:李营电气信息工程学院1 课程设计的任务及要求1.1 课程设计的任务(1)掌握 JAVA语言。(2)创建一个简单的计算器,具有简单人机交互界面,易于操作,便于进行 数据之间的简单运算。(3)设计要完成设计、编码、测试等过程。1.2 课程设计的要求(1) 能够实现简单的加、减、乘、除四则运算。(2) 运算结果能够正常显示,并能够清零。(3)实数运算中小数位的精度一致。1.3 课程设计的研究基础及主要设计思想对于此计算器程序,首先要设计其 GUI 界面,总体界面有一个文本框,19 个按钮,总体界面用 GridBagLayout 布局。文本框放置在 JTextField,然后 0 到 9 以及+,-, , 的按钮放置一个面板container 中,添加到整体布局中,界面设计完成。布局设计好后再添加按钮事件。对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。在进行加、减、乘、除计算时要把点击加、减、乘、除按钮之前的数值保存下来,运算时是这个被保存下来的数值和文本框中的数值加、减、乘、除。2 总体方案制定2.1 需求分析淮南师范学院电气信息工程学院 2013 届电子信息科学与技术专业课程设计报告2 第 页日常生活中经常需要用到计算器,比如科学计算、数值计算、会计业务等,在Applet 中实现一个精巧实用的计算器,可以让用户在使用网站服务的同时,可以很方便的惊醒数据运算,可增加页面的实用性,同时让用户的操作也更加方便月快捷。本项目需要实现一个具有四则运算的小型计算器,拥有加,减,乘,除功能。2.2 总体设计(1)界面设计界面设计要求用 GUI,界面设计中有用到 swing 组件的 JTextField,用到 awt中的 GridLayout 布局管理方式,窗体名称 Conclutor 继承 JFrame 类,InsertAction 实现 ActionListener 一个接口,并实现 public void actionPerformed(ActionEvent e)方法。定义菜单、菜单条、菜单项、按钮、文本框、容器,设置为 private 类 型。定义变量 double result;/使用内存中存储的数字和结果;JTextField r esultfield;/显示计算结果。使用 private void addButton()方法添加按钮 并给按钮 命名;其图形界面如下图(1):图 1:图形界面(2)功能介绍淮南师范学院电气信息工程学院 2013 届电子信息科学与技术专业课程设计报告3 第 页这是计算器中的一种:简单计算器,本项目用到了 Java 中的 GUI 界面和 swing组件以及 awt 布局,所以简单易用,它能完成如下的几个小功能:点击按钮中的数字键和运算符键就能进行简单的加、减、乘、除求模四则运算 ;还能通过用户自己在文本框中输入数字,进行简单运算;如果输入有误时可以按BackSpace 撤销后重新输入新数据也可以通过 CE 清除所有数据。3 详细方案设计3.1 设计所需的环境及软件介绍(1)JDK(Java Development Kit)是 Sun Microsystems 针对 Java 开发员的产品。JDK 是整个 Java 的核心,包括了 Java 运行环境、Java 工具和 Java 基础类库。 (2)本次设计使用 Eclipe 开发平台。Eclipse 是一个开放源代码的、基于 Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务, 用于通过插件组 建构建开发环境。3.2 程序流程图如下:图(2):程序设计流程图淮南师范学院电气信息工程学院 2013 届电子信息科学与技术专业课程设计报告4 第 页3.3 部分代码说明(1)程序的主框架设计代码:private Container container;private GridBagLayout layout;private GridBagConstraints constraints;private JTextField resultfield;/ 计算结果显示区private String lastCommand;/ 保存+,-,=命令private double result;/ 保存计算结果private boolean start;/ 判断是否为数字的开始public Conclutor() /创建和定义计算器的图形界面;setTitle(“计算器“ );setSize(300, 500);setVisible(true);container = getContentPane();layout = new GridBagLayout();container.setLayout(layout);constraints = new GridBagConstraints();constraints.gridx = 0;constraints.gridy = 0;constraints.gridwidth = 4;constraints.gridheight = 1;constraints.fill = GridBagConstraints.BOTH;constraints.weightx = 300;constraints.weighty = 300;resultfield = new JTextField(19);resultfield.setHorizontalAlignment(JTextField.RIGHT);start = true;result = 0;淮南师范学院电气信息工程学院 2013 届电子信息科学与技术专业课程设计报告5 第 页lastCommand = “=“;layout.setConstraints(resultfield, constraints);container.add(resultfield);(2)增加数字按钮以及符号按钮并对按钮进行监听的代码:ActionListener insert = new InsertAction();ActionListener command = new CommandAction();addButton(“Backspace“, 0, 1, 2, 1, insert);addButton(“CE“, 2, 1, 2, 1, insert);addButton(“7“, 0, 2, 1, 1, insert);addButton(“8“, 1, 2, 1, 1, insert);addButton(“9“, 2, 2, 1, 1, insert);addButton(“, 3, 2, 1, 1, command);addButton(“4“, 0, 3, 1, 1, insert);addButton(“5“, 1, 3, 1, 1, insert);addButton(“6“, 2, 3, 1, 1, insert);addButton(“, 3, 3, 1, 1, command);addButton(“1“, 0, 4, 1, 1, insert);addButton(“2“, 1, 4, 1, 1, insert);addButton(“3“, 2, 4, 1, 1, insert);addButton(“-“, 3, 4, 1, 1, command);addButton(“.“, 0, 5, 1, 1, insert);addButton(“+/-“, 2, 5, 1, 1, insert); / 实现负数输入addButton(“0“,1, 5, 1, 1, insert);addButton(“+“, 3, 5, 1, 1, command);addButton(“=“, 0, 6, 4, 1, command);(3)程序运算过程的设计代码 :淮南师范学院电气信息工程学院 2013 届电子信息科学与技术专业课程设计报告6 第 页private class InsertAction implements ActionListener public void actionPerformed(ActionEvent event) String input = event.getActionCommand();if (start) resultfield.setText(“);start = false;if (input.equals(“+/-“)/ if(displayField.getText().charAt(0)!=-)resultfield.setText( “-“ + resultfield.getText() );/ else / displayField.setText(displayField.getText().substring(1);/ return;/ if (!input.equals(“+/-“) if (input.equals(“Backspace“) String str = resultfield.getText();if (str.length() 0)resultfield.setText(str.substring(0, str.length() - 1); else if (input.equals(“CE“) resultfield.setText(“0“);start = true; elseresultfield.setText(resultfield.getText() + input);private class CommandAction implements ActionListener 淮南师范学院电气信息工程学院 2013 届电子信息科学与技术专业课程设计报告7 第 页public void actionPerformed(ActionEvent evt) String command = evt.getActionCommand();if (start) lastCommand = command; else calculate(Double.parseDouble(resultfield.getText();lastCommand = command;start = true;public void calculate(double x) if (lastCommand.equals(“+“)result += x;else if (lastCommand.equals(“-“)result -= x;else if (lastCommand.equals(“)result *= x;else if (lastCommand.equals(“)result /= x;else if (lastCommand.equals(“=“)result = x;resultfield.setText(“ + result);(4)计算器入口程序设计代码:public static void main(String args) Conclutor calculator = new Conclutor();calculator.setDefaultCloseOperation(JFrame.EXIT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年康复医疗服务体系在康复医疗市场中的竞争策略与市场拓展报告
- 中医识药考试题及答案
- 2025年交通设备制造业数字化转型与智能生产设备维护管理研究报告
- 2025年事业单位工勤技能-安徽-安徽计算机操作员四级(中级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-安徽-安徽汽车修理工(技师/高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-安徽-安徽农机驾驶维修工二级(技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-安徽-安徽不动产测绘员四级(中级工)历年参考题库含答案解析
- 高铁车站管理岗位招聘面试题
- 8月推拿治疗学模拟考试题(附参考答案)
- 电工初中级考证试题及答案
- 软件项目开发需求规格说明书(标准模板)
- GB/T 9797-2022金属及其他无机覆盖层镍、镍+铬、铜+镍和铜+镍+铬电镀层
- GB/T 33365-2016钢筋混凝土用钢筋焊接网试验方法
- GB/T 32288-2015电力变压器用电工钢铁心
- FZ/T 01008-2008涂层织物耐热空气老化性的测定
- 精神科病历书写精神科病历书写及范例
- 《乒乓裁判规则规程》考试题库(附答案)
- 依托自主化装备建设分布式能源三联供项目
- 老年肌肉衰减综合征(肌少症)课件
- PCB全制程培训教材
- 应急保障措施及处置方案
评论
0/150
提交评论