ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:133.29KB ,
资源ID:5643593      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5643593.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JAVA课程设计计算机袁.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JAVA课程设计计算机袁.docx

1、JAVA课程设计计算机袁武汉理工大学华夏学院课程设计报告书课程名称: JAVA课程设计 题 目: 计算器的设计与实现 系 名: 信息工程系 专业班级: 计算机1121班 姓 名: 袁世杰 学 号: 10210412102 指导教师: 刘春燕 2014年 9 月 11 日课程设计任务书学生姓名: 袁世杰 专业班级: 计算机1121班 指导教师: 刘春燕 工作单位: 信息工程系 设计题目: 计算器的设计与实现要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算(1)完成加法,减法,乘法和除法的计算;(2)具有

2、小数点,正负号,退格和清零功能;设计报告撰写格式要求:1、明确课程设计的目的和重要性,认真领会课程设计的题目,读懂课程设计指导书的要求,学会设计的基本方法与步骤,学会如何运用前修知识与收集、归纳相关资料解决具体问题的方法。严格要求自己,要独立思考,按时、独立完成课程设计任务。2、设计报告:要求层次清楚、整洁规范、不得相互抄袭,凡正文内容有整段完全相同者一律以抄袭论处。设计报告正文字数不少于0.2万字(不包括附录)时间安排:消化资料、系统调查 1天项目原型开发 1天系统功能实现 1天系统验收 1天指 导 教 师 签 字: 2014年 9 月 5 日系 主 任 签 字: 2014 年 9 月 5

3、日1 目标设计一个图形界面(GUI)的计算器应用程序,完成简单的加、减、乘、除等算术运算。通过对计算器的编辑来检测和提升自己的java编程能力。2 软件开发环境与技术简介2.1 开发工具介绍 NetBeans包括开源的开发环境和应用平台,NetBeans IDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,NetBeans IDE已经支持PHP、Ruby、JavaScript、Groovy、Grails和C/C+等开发语言。NetBeans项目由一个活跃的开发社区提供支持, NetBean开发环境提供了丰富的产品文档和培训资源以及大量的第三方插件。NetBea

4、ns是开源软件开发集成环境,是一个开放框架,可扩展的开发平台,可以用于Java、C/C+,PHP等语言的开发,本身是一个开发平台,可以通过扩展插件来扩展功能。2.2 硬件环境带有windows xp系统的计算机2.3 软件环境NetBeans IDE 6.9.13 系统需求分析(1)设计的计算器可以完成加法、减法、乘法、除法的简单运算。(2)实现一些简单的扩展运算,如:正负号、倒数、退格、清零等功能。(3)添加小数点功能,用以实现浮点型数据的计算。(4)使用布局管理器设计一个计算器的界面,使用事件监听器处理数据的输入,并完成相关的计算。4 系统总体设计4.1 系统功能简介 (1)完成加法,减法

5、,乘法和除法的计算;(2)具有小数点,正负号,退格和清零功能;4.2 系统功能模块规划 (1)根据所设计出来的界面,首先要设计其GUI界面,总体界面有一个文本框,20个按钮,总体界面用GridLayout布局,文本框放置在最NORTH,然后0到9以及+,-,*,/等按钮放置到一个面板Panel中,完成界面设计。 (2)设计计算流程,首先点击数字按钮时,将按钮数值添加到文本框当中,并将该数值保存到一个字符串中,再次点击数字按钮时,将之前保存的字符串与新的数值拼接起来,再添加到文本框当中,直到点击运算符按钮时,将文本框当中的字符串保存在一个字符串变量中,然后重置文本框内容,将运算符号显示到文本框中

6、,随后输入第二个计算数据时,用同样的办法保存数据,最后通过控制“=”运算符先将字符串数据转化成双精度类型,然后计算出结果并显示到文本框当中。5 系统详细设计5.1程序流程图开始显示界面输入数字将数字赋给x输入字符将x的值给y,x取新数将字符赋给operation点“=”输出结果退格或清零操作 5.2程序分析(1)类Calculator继承自ActionListener接口,通过这一接口来处理界面中的按钮所触发的动作事件。ActionListener接口可以接收ActionEvent,该接口有一个事件方法actionPerformed(ActionEvent e ),在该方法中将触发需要实现的功

7、能。 (2)ActionEvent类继承自AWTEvent,代表的是一个语义事件,用来指出某组件(component)所定义“行动”发生了。这种事件由一个组件(如Button)引发,而触动的时机则是当这组件的某种特定动作(如该Button被单击)发生之时。此事件产生后,系统会将它分配给该组件所注册(用addActionListenert()方法实现注册)的每一个ActionListener(监听者),来接收并处理这种事件。所以如果一个按钮组件注册一个addActionListener方法,那么当用户用鼠标单节此按钮时,就会产生ActionEvent事件。(3)在程序运行中,每当单击数字按钮和运

8、算符按钮,都会触发动作actionPerformed(ActionEvent e),利用类ActionEvent得getActionCommand()方法确定是由哪一个按钮触发的,进行相应的计算操作。(4)在AWT中提供了五种布局管理类。布局管理器指明了容器中构件的位置和尺寸大小。通过布局管理器,只需知道放置的构件同其他构件的相对应的位置即可,有助于实现软件的平台无关性。本程序中用到的布局管理管理器的BorderLayout、GridLayout。其中BorderLayout类使用地理上的方向North、South、West和Center来确定构件添加的位置。其中前四个方向占据屏幕的四边,而C

9、enter方向占据剩下的空白;GridLayout是比较复杂但是却很灵活得AWT布局,可以精确地指定组件的放置位置,它是在将屏幕划分成网格的基础上,允许每个机构占据一个或多个单元(显示区域)。在程序中用到GridLayout的构件函数GridLayout(int rows ,int cols,int hasp,int vgap)其中的参数分别表示行数,列数,水平间距和垂直间距。 (5)AWT中提供了可以用来盛装构件的面板(Panel),可以把对象放在面板上,在把面板镶到窗口中,每一个面板有颜色、大小,甚至页面设计等属性。5.3部分代码及解析1.需要调用的类import java.awt.*;i

10、mport java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class hutest extends JFrame implements ActionListener,DocumentListener JTextField text;/文本诓 String x=,y=,operation=; boolean flag1=true,flag2=true,flag3=true,flag4=true,flag5=true;2.主函数 public static void main(String args)

11、 new hutest(); 3界面设计 public hutest() super(计算器); Container c=this.getContentPane();/获得一个容器 c.setLayout(null);/布局为空 text=new JTextField(); text.setSize(480,38);/大小 text.setLocation(10,50);/位置 text.setHorizontalAlignment(JTextField.RIGHT);/文本旷右边 c.add(text); text.getDocument().addDocumentListener(this

12、);/文本框注册事件 JPanel pan2=new JPanel();/面板 pan2.setSize(480,240); pan2.setLocation(10,150); pan2.setLayout(new GridLayout(4,5,10,10); String str=1,2,3,+,c,4,5,6,-,退格,7,8,9,*,倒数,0,+/-,.,/,=; for(int i=0;istr.length;i+) JButton button=new JButton(stri); button.addActionListener(this); pan2.add(button); c

13、.add(pan2); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(500,450); this.setVisible(true); 4运算符的控制和值的输入输出public void changedUpdate(DocumentEvent e) public void insertUpdate(DocumentEvent e) x=text.getText();/获得文本诓 的内容 / System.out.println(y=+y+ x=+x); public void removeUpdate(Doc

14、umentEvent e) public void actionPerformed(ActionEvent e) String z=e.getActionCommand();/记录按纽上的字符 try if(Character.isDigit(z.charAt(0) text.setText(text.getText()+z); flag1=true;flag2=true;flag3=true;flag4=true;flag5=true; else if(z.equals(+)&flag1) operation=+;y=x;text.setText();flag1=false; else if

15、(z.equals(-)&flag2) operation=-;y=x;text.setText();flag2=false; else if(z.equals(*)&flag3) operation=*;y=x;text.setText();flag3=false; else if(z.equals(/)&flag4) operation=/;y=x;text.setText();flag4=false; else if(z.equals(倒数) flag1=true;flag2=true;flag3=true;flag4=true;flag5=true; y=x;Double y2=Dou

16、ble.parseDouble(y);double y22=1/y2;text.setText(y22+); else if(z.equals(+/-) y=x; double yy=-Double.parseDouble(y);text.setText(yy+); flag1=true;flag2=true;flag3=true;flag4=true;flag5=true; else if(z.equals(.) if(x.indexOf(.)=-1) text.setText(x+.); flag1=true;flag2=true;flag3=true;flag4=true;flag5=t

17、rue; else if(z.equals(=) flag1=true;flag2=true;flag3=true;flag4=true;flag5=true; Double op1=Double.parseDouble(y); Double op2=Double.parseDouble(x); if(operation.equals(+)x=op1+op2+;text.setText(x); else if(operation.equals(-)x=op1-op2+;text.setText(x); else if(operation.equals(*)x=op1*op2+;text.set

18、Text(x); else if(operation.equals(/)x=op1/op2+;text.setText(x); else if(operation.equals(%)x=op1%op2+;text.setText(x); else if(z.equals(c) x=;text.setText(); flag1=true;flag2=true;flag3=true;flag4=true;flag5=true; else if(z.equals(退格) text.setText(x.substring(0,x.length()-1); flag1=true;flag2=true;f

19、lag3=true;flag4=true;flag5=true; catch(Exception ex)x=;y=;operation=;text.setText(); 6 系统测试与运行 (1)界面显示(2)输入数字“13”(3)点击“+”后输入“14”。(4)点击“=”,获得结果。(5)输入数字“10”(6)取倒数运算后,获得结果。(7)点击“退格”,获得结果 7 总 结 本次课程设计到此算是告一段落了,经过这次的学习,我学到了很多东西,在此基础上更加巩固了自己对java的认识与了解。在做本项目是时候,会遇到很多小问题,比如说,在整个运算过程中要如何确保输入的计算数据哪个是第一个计算数据的

20、,哪个是第二个计算数据的,同时也要区分运算符,因为该计算器程序应用的都是利用字符串来完成计算的,而且不能重复输出运算符,更不能将运算符错误的存储在了第一个计算数据的数值中,也得考虑到万一不小心重复点击了运算符按钮会不会造成第一个计算数据的重新赋值等等问题,最后想到利用布尔类型来很好的控制运算符的应用!此次课程设计让我更了解熟悉了Java中的图形用户界面和它的编程方式。在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,收获很大。最大的收获就是对大学学习的总结和培养了解决困难的信心和能力,使我对所学知识能够融会贯通,又不断丰富了新知识。Java计算器设计使得我们对所学的专业课有

21、了更为深刻的认识,使得知识得到了巩固和提高。在接下来的时间里,我觉得我要更加努力的往深一层次的方面看齐,了解更多有关java的知识,对java有更深一步的了解,我会一步一步的走下去!8 参 考 文 献1 王建华. ASP NET 2.0 动态网站开发技术与实践M.北京:电子工业出版社,2007.2徐迎晓 Java语法及网络应用设计 清华大学出版社 2002 3戴特尔(美)Java 大学简明教程实例程序设计 2005附录A:系统核心代码public void changedUpdate(DocumentEvent e) public void insertUpdate(DocumentEvent

22、 e) x=text.getText();/获得文本诓 的内容 / System.out.println(y=+y+ x=+x); public void removeUpdate(DocumentEvent e) public void actionPerformed(ActionEvent e) String z=e.getActionCommand();/记录按纽上的字符 try if(Character.isDigit(z.charAt(0) text.setText(text.getText()+z); flag1=true;flag2=true;flag3=true;flag4=t

23、rue;flag5=true; else if(z.equals(+)&flag1) operation=+;y=x;text.setText();flag1=false; else if(z.equals(-)&flag2) operation=-;y=x;text.setText();flag2=false; else if(z.equals(*)&flag3) operation=*;y=x;text.setText();flag3=false; else if(z.equals(/)&flag4) operation=/;y=x;text.setText();flag4=false;

24、else if(z.equals(倒数) flag1=true;flag2=true;flag3=true;flag4=true;flag5=true; y=x;Double y2=Double.parseDouble(y);double y22=1/y2;text.setText(y22+); else if(z.equals(+/-) y=x; double yy=-Double.parseDouble(y);text.setText(yy+); flag1=true;flag2=true;flag3=true;flag4=true;flag5=true; else if(z.equals

25、(.) if(x.indexOf(.)=-1) text.setText(x+.); flag1=true;flag2=true;flag3=true;flag4=true;flag5=true; else if(z.equals(=) flag1=true;flag2=true;flag3=true;flag4=true;flag5=true; Double op1=Double.parseDouble(y); Double op2=Double.parseDouble(x); if(operation.equals(+)x=op1+op2+;text.setText(x); else if

26、(operation.equals(-)x=op1-op2+;text.setText(x); else if(operation.equals(*)x=op1*op2+;text.setText(x); else if(operation.equals(/)x=op1/op2+;text.setText(x); else if(operation.equals(%)x=op1%op2+;text.setText(x); else if(z.equals(c) x=;text.setText(); flag1=true;flag2=true;flag3=true;flag4=true;flag5=true; else if(z.equals(退格) text.setText(x.substring(0,x.length()-1); flag1=true;flag2=true;flag3=true;flag4=true;flag5=true; catch(Exception ex)x=;y=;operation=;text.setText();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1