欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    java计算器课程设计报告.docx

    • 资源ID:17430494       资源大小:168.75KB        全文页数:22页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    java计算器课程设计报告.docx

    1、java计算器课程设计报告课程设计任务书 题目: 简易计算器 课程设计的任务和具体要求任务:设计一个图形界面(GUI)的应用程序,完成简单的运算。通过计算器的编辑来检测和提升自己的java能力,并最终完成课程设计报告。具体要求:(1)应用自己所学课程知识完成对计算器的基本任务。(2)查阅相关资料,学习和掌握项目中涉及的新知识,提高自学能力。(3)通过应用java程序编写计算器来提升对简单的图形界面的了解和掌握。指导教师签字: 、 日期: 指导教师评语成绩: 指导教师签字: 日期: 课程设计所需软件、硬件等PC机、Eclipse软件课程设计进度计划起至日期工作内容备注2012.11.20-201

    2、2.11.252012.11.26-2012.12.022012.12.05-2012.12.152012.12.15-2012.12.21商讨如何设计计算器布局、实现哪些计算功能;着手查阅资料;开始设计计算器,调试,修改直到成功;完成课程设计任务书;张湘,李楠楠张湘李楠楠,张湘张湘参考文献、资料索引序号文献、资料名称编著者出版单位(1)Java语言实用教程(第2版) 丁振凡 北京邮电大学出版社. (2)Java语言实用教程实验指导(第2版) 丁振凡 北京邮电出版社.(3)Java语言最新实用案例教程(第2版) 杨树林等 清华大学出版设. 一、课程设计任务及要求1.课程设计任务:设计一个图形界

    3、面(GUI)的计算器应用程序,完成简单的算术运算。通过对计算器的编辑来检测和提升自己的java编程能力,并最终完成课程设计报告! 2.课程设计要求:(1)应用自己所学课程知识完成对计算器的基本任务。(2)查阅相关资料,学习和掌握项目中涉及的新知识,提高自学能力。(3)通过应用java程序编写计算器来提升自己对简单的图形界面有一定的掌握和了解。二、需求分析1.设计的计算器可以完成加法、减法、乘法、除法的简单运算。2.实现一些简单的扩展运算,如:正负号、倒数、退格、清零等功能。3.添加小数点功能,用以实现浮点型数据的计算。4.使用布局管理器设计一个计算器的界面,使用事件监听器处理数据的输入,并完成

    4、相关的计算。三、设计思路1.界面设计: 2.设计思路:(1) 根据所设计出来的界面,首先要设计其GUI界面,总体界面有一个文本框,24个按钮,总体界面用BorderLayout布局,Panel1,Panel2采用GridLayout布局,文本框放置在Panel1(一行一列),0到9以及+,-,*,/等按钮按顺序放置到Panel2(六行四列)中,然后将Panel1放在主窗口的NORTH位置,Panel2放在主窗口的CENTER位置,完成界面设计。(2) 设计计算流程,首先点击数字按钮时,将按钮数值添加到文本框当中,并将该数值保存到一个字符串中,再次点击数字按钮时,将之前保存的字符串与新的数值拼接

    5、起来,再添加到文本框当中,直到点击运算符按钮时,将文本框当中的字符串转换成Double型保存在num1变量中,然后重置文本框内容为“0”,随后输入第二个计算数据时,用同样的办法保存在num2变量中,最后通过控制“=”运算符计算出结果并显示到文本框当中。(3) 基本运算设计完成以后则开始考虑其他个别功能的实现,例如倒数、清零、退格等功能的实现,清零直接重置文本框内容,退格功能则采用String类的substring方法截取字符串长度。四、详细设计1.程序流程图:2.主要代码展示及说明:总体代码的设计:程序主窗体继承JFrame类,使用24个JBotton按钮实现数字和基本功能,并且分别注册监听,

    6、采用6行4列网格布局,完成计算器界面的基本设置,最后对按钮进行计算分析,计算并显示结果。(1)这段代码主要是对程序的主框架进行相应的设置super(简易计算器); setSize(300,260); this.setLayout(new BorderLayout(); jPanel1=new JPanel(); jPanel1.setLayout(new GridLayout(1,1); /一行一列的布局 jPanel2=new JPanel(); jPanel2.setLayout(new GridLayout(6,4); /六行四列的布局 resultField=new JTextFiel

    7、d(0); jPanel1.add(resultField); this.add(jPanel1,BorderLayout.NORTH); this.add(jPanel2,BorderLayout.CENTER);(2)设置数字按钮1到9并添加监控以及符号等的添加监控 s1=new JButton( 1 ); s1.addActionListener(this); s2=new JButton( 2 ); s2.addActionListener(this); s3=new JButton( 3 ); s3.addActionListener(this); s4=new JButton( 4

    8、 ); s4.addActionListener(this); s5=new JButton( 5 ); s5.addActionListener(this); s6=new JButton( 6 ); s6.addActionListener(this); s7=new JButton( 7 ); s7.addActionListener(this); s8=new JButton( 8 ); s8.addActionListener(this); s9=new JButton( 9 ); s9.addActionListener(this); s0=new JButton( 0 ); s0

    9、.addActionListener(this); b1=new JButton( + ); b1.addActionListener(this); b2=new JButton( - ); b2.addActionListener(this); b3=new JButton( * ); b3.addActionListener(this); b4=new JButton( / ); b4.addActionListener(this); b5=new JButton( ); b5.addActionListener(this); b6=new JButton( 开方 ); b6.addAct

    10、ionListener(this); b7=new JButton( % ); b7.addActionListener(this); b8=new JButton( x! ); b8.addActionListener(this); b9=new JButton( 1/x ); b9.addActionListener(this); f1=new JButton( . ); f1.addActionListener(this); f2=new JButton( = ); f2.addActionListener(this); f3=new JButton( C ); f3.addAction

    11、Listener(this); f4=new JButton( 负 ); f4.addActionListener(this); f5=new JButton( 退格 ); f5.addActionListener(this); jPanel2.add(f3); jPanel2.add(b4); jPanel2.add(b3); jPanel2.add(f5); jPanel2.add(s7); jPanel2.add(s8); jPanel2.add(s9); jPanel2.add(b1); jPanel2.add(s4); jPanel2.add(s5); jPanel2.add(s6)

    12、; jPanel2.add(b2); jPanel2.add(s1); jPanel2.add(s2); jPanel2.add(s3); jPanel2.add(b5); jPanel2.add(s0); jPanel2.add(f1); jPanel2.add(f4); jPanel2.add(b6); jPanel2.add(b7); jPanel2.add(b8); jPanel2.add(b9); jPanel2.add(f2);(3)数据输入用方法num(int i)设计如下:public void num(int i) String s = null; s=String.valu

    13、eOf(i); /返回整数i的字符串表示形式 if(end) /如果数字输入结束,则将文本框置零,重新输入 resultField.setText(0); end=false; if(resultField.getText().equals(0) /如果文本框的内容为零,则覆盖文本框的内容 resultField.setText(s); else /如果文本框的内容不为零,则在内容后面添加数字 str = resultField.getText() + s; resultField.setText(str); 以及用JFrame的方法actionPerformed(ActionEvent e)

    14、来获取数据(4)符号运算及清零、退格的设计如下: if(add) / 加法 num1=num1 +num2; else if(sub) /减法 num1=num1 - num2; else if(mul) /乘法 num1=num1 * num2; else if(div) /除法 if (num2=0) throw new ArithmeticException(除数不能为零); else num1=num1 / num2; else if(chf) /乘方 if(num2=0) num1=1; else num1=Math.pow(num1, num2); else if(evo) /开方

    15、 if(num20) throw new ArithmeticException(被开方数不能小于零); else num1=Math.sqrt(num2); else if(rec) /倒数 if(num20) throw new ArithmeticException(分母不能小于零); else num1=1/num2; else if(per) /百分 num1=num1/100.0; else if(pur) /阶乘 if(num20) throw new ArithmeticException(负数不能求阶乘); else for(int i=1;inum2;i+) num1=i*

    16、num1; resultField.setText(String.valueOf(num1); end=true; else if(e.getSource()=f3) /实现清零 resultField.setText(0); else if(e.getSource()=f4) /实现负号 if(resultField.getText()!=0) resultField.setText(-+resultField.getText(); else if(e.getSource()=f5) /实现退格 int i; i=(resultField.getText().length(); if(i=1

    17、) resultField.setText(0); else str=resultField.getText(); resultField.setText(str.substring(0,i-1); 五、运行调试与分析讨论1.简单的运算(如12+45):分析:计算的结果为57.0,为双精度型,计算的结果被设置在文本框的最右端,该计算器的一个特点是可直接在文本框中输入数据以及进行更改。2.倒数的运算(如1/23):分析:输出的结果如图所示,倒数功能实现,计算时,不仅是结果,输入的数据同样可以先实现倒数功能后再进行相应的计算,没有影响!3.阶乘的运算(如4的阶乘):分析:只要在文本框里输入你想计算

    18、的数再按阶乘键再按等号就可以计算出你想要的结果如上图。3.退格的运算:分析:输出的结果如图所示,本计算器退格键有一个特点是,就算是计算后得出的结果也能实现退格,缺点是不能很好的处理小数点的问题,因为小数点也是字符串的一部分。5.总体分析:该计算器基本运算没有问题,清零、正负号、求倒数、退格功能都能很好的实现,总体能完成一个计算器的基本功能,但仍有许多地方需要改进,比如小数点的实现所存在的一些问题,虽然在基本的运算过程当中不会造成太大影响,但这依然不能认为是一个很好的计算器,同时,在另一方面,该计算器还没能很好的实现连续计算的功能,必须每次按下等号按钮计算出结果后才能用产生的结果接着进行下一次的

    19、计算,改进的方法是在运算符上同时注册Result类,让运算符同时拥有计算结果的功能。六、设计体会与小结本次课程设计到此算是告一段落了,经过这次的学习,我学到了很多东西,在此基础上更加巩固了自己对java的认识与了解。在做本项目是时候,会遇到很多小问题,比如说,在整个运算过程中要如何确保输入的计算数据哪个是第一个计算数据的,哪个是第二个计算数据的,同时也要区分运算符,因为该计算器程序应用的都是利用字符串来完成计算的,而且不能重复输出运算符,更不能将运算符错误的存储在了第一个计算数据的数值中,也得考虑到万一不小心重复点击了运算符按钮会不会造成第一个计算数据的重新赋值等等问题,最后想到利用布尔类型来

    20、很好的控制运算符的应用!此次课程设计让我更了解熟悉了Java中的图形用户界面和它的编程方式。在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,收获很大。最大的收获就是对大学学习的总结和培养了解决困难的信心和能力,使我对所学知识能够融会贯通,又不断丰富了新知识。Java计算器设计使得我们对所学的专业课有了更为深刻的认识,使得知识得到了巩固和提高。在接下来的时间里,我觉得我要更加努力的往深一层次的方面看齐,了解更多有关java的知识,熟练掌握java中常用类的方法。八附录import java.awt.*; import java.awt.event.*; import jav

    21、ax.swing.*; public class test1 extends JFrame implements ActionListener / JFrame jframe1; JPanel jPanel1,jPanel2; JTextField resultField; JButton s1,s2,s3,s4,s5,s6,s7,s8,s9,s0,b1,b2,b3,b4,b5,b6,b7,b8,b9,f1,f2,f3,f4,f5; private boolean end,add,sub,mul,div,evo,chf,per,rec,pur; private String str; priv

    22、ate double num1,num2; public test1() super(简易计算器); setSize(300,260); this.setLayout(new BorderLayout(); jPanel1=new JPanel(); jPanel1.setLayout(new GridLayout(1,1); /一行一列的布局 jPanel2=new JPanel(); jPanel2.setLayout(new GridLayout(6,4); /四行五列的布局 resultField=new JTextField(0); jPanel1.add(resultField);

    23、 this.add(jPanel1,BorderLayout.NORTH); s1=new JButton( 1 ); s1.addActionListener(this); s2=new JButton( 2 ); s2.addActionListener(this); s3=new JButton( 3 ); s3.addActionListener(this); s4=new JButton( 4 ); s4.addActionListener(this); s5=new JButton( 5 ); s5.addActionListener(this); s6=new JButton(

    24、6 ); s6.addActionListener(this); s7=new JButton( 7 ); s7.addActionListener(this); s8=new JButton( 8 ); s8.addActionListener(this); s9=new JButton( 9 ); s9.addActionListener(this); s0=new JButton( 0 ); s0.addActionListener(this); b1=new JButton( + ); b1.addActionListener(this); b2=new JButton( - ); b

    25、2.addActionListener(this); b3=new JButton( * ); b3.addActionListener(this); b4=new JButton( / ); b4.addActionListener(this); b5=new JButton( ); b5.addActionListener(this); b6=new JButton( 开方 ); b6.addActionListener(this); b7=new JButton( % ); b7.addActionListener(this); b8=new JButton( x! ); b8.addA

    26、ctionListener(this); b9=new JButton( 1/x ); b9.addActionListener(this); f1=new JButton( . ); f1.addActionListener(this); f2=new JButton( = ); f2.addActionListener(this); f3=new JButton( C ); f3.addActionListener(this); f4=new JButton( 负 ); f4.addActionListener(this); f5=new JButton( 退格 ); f5.addActi

    27、onListener(this); jPanel2.add(f3); jPanel2.add(b4); jPanel2.add(b3); jPanel2.add(f5); jPanel2.add(s7); jPanel2.add(s8); jPanel2.add(s9); jPanel2.add(b1); jPanel2.add(s4); jPanel2.add(s5); jPanel2.add(s6); jPanel2.add(b2); jPanel2.add(s1); jPanel2.add(s2); jPanel2.add(s3); jPanel2.add(b5); jPanel2.ad

    28、d(s0); jPanel2.add(f1); jPanel2.add(f4); jPanel2.add(b6); jPanel2.add(b7); jPanel2.add(b8); jPanel2.add(b9); jPanel2.add(f2); this.add(jPanel2,BorderLayout.CENTER); public void num(int i) String s = null; s=String.valueOf(i); /返回整数i的字符串表示形式 if(end) /如果数字输入结束,则将文本框置零,重新输入 resultField.setText(0); end=

    29、false; if(resultField.getText().equals(0) /如果文本框的内容为零,则覆盖文本框的内容 resultField.setText(s); else /如果文本框的内容不为零,则在内容后面添加数字 str = resultField.getText() + s; resultField.setText(str); public void actionPerformed(ActionEvent e)throws ArithmeticException /数字事件 if(e.getSource()=s1) num(1); else if(e.getSource()=s2) num(2); else if(e.getSource()=s3) num(3); else if(e.getSource()=s4) num(4); else if(e.getSource()=s5) num(5);


    注意事项

    本文(java计算器课程设计报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开