




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java课程设计 题 目 :Java计算器 学生姓名 杨云鹏 学 号 20121325054 学 院 信息与控制学院 专 业 系统工程二一四 年 6 月 3 日课程设计报告书目录 一、课程设计任务及要求5二、设计目的5三、操作环境5四、设计场所(机房号、机器号或自己机器)5五、设计过程(设计内容及主要程序模块)6六、本次设计中用到的课程知识点(列出主要知识16七、设计过程中遇到的问题及解决办法16八、程序清单18Java背景介绍:JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由升阳(Sun Microsystems)公司的詹姆斯高斯林(James Gosling)等人于1990年代初开发。它最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,在1995年5月23日以“Java”的名称正式发布了。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Oracle收购Sun后Java前途未卜。一、课程设计任务及要求1、课题要求(1)使用图形用户界面:一个文本框;0-9数字按钮;加、减、乘、除运算符;“等于”符号.(2)完成整数、实数的四则运算(加、减、乘、除);(3)通过按钮点击实现数据运算。(4)实数运算中小数位的精度一致。2、课题设计思想对于此计算器程序,首先要设计其界面,总体界面有一个文本框,十多个按钮,总体界面用BorderLayout布局。 文本框放置在最NORTH,然后0到9以及+,-,*,/的按钮放置到一个面板Panel中,添加到整体布局的CENTER,界面设计完成。布局设计好后再添加按钮事件。对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。这是计算器中的一种:简单计算器,本项目用到了Java中的界面和swing组件以及awt布局,所以简单易用,它能完成如下的几个小功能:点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除求模四则运算 ;还能通过用户自己在文本框中输入数字,进行简单运算。二、设计目的 进一步掌握和理解java程序编程;进一步掌握java语言的基本数据类型,熟悉定义变量和使用变量;理解java图形用户界面的基本工作原理和界面设计;巩固窗体的布局设计;掌握窗体按钮控件和文本控件对事件的响应;理解函数和方法的使用。三、操作环境 Windows2007下jdk四、详细设计过程1、界面设计 界面设计中有用到swing组件的TextField和Button,用awt中的BorderLayout和GridLayout布局管理方式,窗体名称Calculator继承JFrameActionListener接口,并实现public void actionPerformed(ActionEvent e)方法。定义菜单、菜单条、菜单项、按钮、文本框、容器,设置为private类型。定义变量double memoryd;/使用内存中存储的数字;DecimalFormat df;/保留小数位数。使用private JButton getJButton()方法添加按钮并给按钮命名,方法设置按钮的字体和字体颜色。设置数字按钮1到9并添加监控,使其在发生鼠标事件时改变按钮颜色public CalculatorPanel() setLayout(new BorderLayout(); result = 0; lastCommand = =; start = true; display = new JButton(0); display.setEnabled(false); add(display, BorderLayout.NORTH); ActionListener insert = new InsertAction(); ActionListener command = new CommandAction(); panel = new JPanel(); panel.setLayout(new GridLayout(4, 4); addButton(7, insert); addButton(8, insert); addButton(9, insert); addButton(/, command); addButton(4, insert); addButton(5, insert); addButton(6, insert); addButton(*, command); addButton(1, insert); addButton(2, insert); addButton(3, insert); addButton(-, command); addButton(0, insert); addButton(., insert); addButton(=, command); addButton(+, command); add(panel, BorderLayout.CENTER); 其图形界面如下:流程图: 2、 等于号按钮,jButton.setText(=);通过使用switchcase语句来控制, Operator变量在定义+、-、*、/按钮时对其赋值3、设置计算器名称:(Calculator)class CalculatorFrame extends JFrame public CalculatorFrame() setTitle(Calculator); CalculatorPanel panel = new CalculatorPanel(); add(panel); pack();4、算法的实现:private class CommandAction implements ActionListener public void actionPerformed(ActionEvent event) String command = event.getActionCommand(); if(start) if(command.equals(-) display.setText(command); start = false; else lastCommand = command; else calculate(Double.parseDouble(display.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; display.setText( + result); setBounds()方法实现窗体的显示位置和窗体大小,setVisible()将其设置为五、程序的调试与运行结果说明加法:231.6+377= 减法:7678-14288 乘法:122.6*144 除法:347/142特殊算法:3/0 此计算器漏洞,不能处理特殊算法。六、设计中用到的课程知识点Java语言程序设计:1布局管理器:borderLayout、gridLayout、 setLayout;2组件:JFrame、JPanel、JButton、JTextField、JMenuBar、JMenu、JMenuItem 3图形用户界面;4类的继承、接口的继承;5监听器的使用;6Math方法的使用;7强制类型转换;七、设计中遇到的问题及解决方法 因为第一次设计简单的JAVA程序,有很多地方没有想到,这次设计计算器,也有很多没有完善的地方,比如:计算器除数不能为0,但我们这次设计的计算器没考虑到这个方面,使得计算器在这种情况下不能正常计算,后经过查阅参考书,解决了这个问题,只需一行代码即可:if(d3=0) tf.setText(除数不能为零)。相关内容简单的计算器,实现如下功能:(1)用户在窗口(WindowOperation类负责创建)中的两个文本框中输入参与运算的两个操作数。(2)用户在下拉列选择运算符触发ItemEvent事件,ItemEvent事件的监视器operator(OperatorListener类负责创建)获得运算符,并将运算符传递给ActionEvent事件的监视器computer(3)用户单击按钮触发ActionEvent事件,监视器computer(ComputerrListener类负责创建)给出运算结果。八、主要收获这次的程序设计,从一个简单的计算器就可以看出JAVA的程序设计不是那么简单,仅仅是一个小小的计算器,就已经有很多需要注意的问题,一不小心就会出错,还会有很多地方没怎么明白,而计算器的设计是最简单的几个设计其中之一,可见,平时的知识积累是很重要的。没有知识的积累,再简单的东西也不可能设计出来。课程设计还让我们练习了动手能力,使我们平时学习的知识得以在实际中应用,不会学死书,活学活用,很大程度上提高了我们的能力,对以后的学习、工作、生活也会有一定的帮助。通过此次的程序设计,让我了解了JAVA的更多知识,使平时的知识可以运用,更好的理解了JAVA这门课程。九、参考文献:Java语言程序设计 郑莉 清华大学出版社Java2实用教程 耿祥义 清华大学出版社10、 程序源代码Calculator计算器import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator public static void main(String args) CalculatorFrame frame = new CalculatorFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); class CalculatorFrame extends JFrame public CalculatorFrame() setTitle(Calculator); CalculatorPanel panel = new CalculatorPanel(); add(panel); pack(); class CalculatorPanel extends JPanel private JButton display; private JPanel panel; private double result; private String lastCommand; private boolean start; public CalculatorPanel() setLayout(new BorderLayout(); result = 0; lastCommand = =; start = true; display = new JButton(0); display.setEnabled(false); add(display, BorderLayout.NORTH); ActionListener insert = new InsertAction(); ActionListener command = new CommandAction(); panel = new JPanel(); panel.setLayout(new GridLayout(4, 4); addButton(7, insert); addButton(8, insert); addButton(9, insert); addButton(/, command); addButton(4, insert); addButton(5, insert); addButton(6, insert); addButton(*, command); addButton(1, insert); addButton(2, insert); addButton(3, insert); addButton(-, command); addButton(0, insert); addButton(., insert); addButton(=, command); addButton(+, command); add(panel, BorderLayout.CENTER); private void addButton(String label, ActionListener listener) JButton button = new JButton(label); button.addActionListener(listener); panel.add(button); private class InsertAction implements ActionListener public void actionPerformed(ActionEvent event) String input = event.getActionCommand(); if(start) display.setText(); start = false;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 惠崇春江晓景教学课件
- 新质生产力提出的时间背景
- 新质生产力核心构成要素
- 小学教学叙事演讲课件
- 粘贴画小学美术教学课件
- 比亚迪汉中控屏播放课件
- 急性心梗的考试及答案
- 2025年语音合成技术面试题及答案含实操案例
- 个人诊所院感理论知识考核试题及答案
- 眼镜定配工中级眼视光模拟练习题及答案
- 无人机原理课件
- 2025年河北高考生物试卷真题答案详解及备考指导
- 宁德新能源verify测试题库
- 2023年甘肃公交建集团清傅项目收费运营工作人员招聘笔试真题
- 酒店运营管理课件
- 2022年红河产业投资集团有限公司招聘笔试题库及答案解析
- 肺心病(课)课件
- 中国烟草PPT模板
- 急性淋巴管炎的护理查房
- 江苏省综合评标专家库题库
- 农作物品种试验技术规程玉米
评论
0/150
提交评论