还剩14页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
十进制转换为二进制、总结与体会及讨论分析4将代码写好之后检查代码的正确性,检查代码无误后将代码进行调试和运行将会出现一个JavaApplet计算器界面在调试过程中可能会出现有界面但是不能运行小程序,那是因为没有初始化小程序,那时我们应该在主函数中将小程序进行初始化,这样小程序才能运行!在调试和运行完全正确后,我们就可以按照自己的医院将小程序进行简单测试,例如输入一些简单数据分别运行各个按钮结果正确后可以初步确定程序师正确的有时候我们还要输入不同范围的值进行测试,可能会发现更多的错误,因为有时候我们定义数据的范围可能会过小或输入数据会越界,到时我们就可以改正以适应更多更大的运算有时候我们会不自觉的选择一种最优函数方法尽量将自己的代码简单规范而又不缺少题目所要求的功能,那就要求我们翻阅很多参考书和查阅很多资料其实JavaApplet图形界面的布局也是我们要讨论的范围,如何使得界面更加美观是我们要探讨的!有时候我们可能会到书上或网上找到一些满足我们要求的程序代码,在此我们应该取其优秀的简单易理解代码作为我们设计程序的代码,作为初学者参考和借用部分外部程序是不可避免,但是我认为前提我们应该看懂那些程序代码,要知其所以然,那样才达到我们学程序的目的,但不主张完全照搬,否则就会没意义了!总结1通过编写这个相对复杂的程序,让我认识解决实际问题前应现建立模型,再通过建立的模型使问题简单化,从而解决问题2这次编写的程序大部分是通过调用各包中的方法来实现的,这也让我充分理解了包和类调用的关系3并且通过实训我了解到String类是字符串常量类,初始化后不能更改;StringBuffer类是字符串缓冲区,可以被修改布尔型不能转化成其他任何类型等等在做本项目是时候,会遇到很多小问题,比如说如何保存输入的数字和下一个数进行加、减、乘、除运算还有如何判断它是第几个输入的数字后来进行多次研究和查询才知道可以通过设运算符标志位来判断是输入的第几个数值还有在安装日期计算按钮时会遇到日期对象和标准计算的类不再同一个包中,这时需要重新定义一个类来实现日期计算,这一功能我在编程时遇到了一些问题,所以最后运行时只有按钮事件但在按钮上没有添加实现功能的方法并且编写程序时需要声明多个对象,给不同的对象分配不同的空间程序中对布局管理器和事件、按钮监听器的应用十分广泛并且运用了java.awt.*;和java,swing中的很多组件通过编程我对这些内容有了更深层次的理解,为以后的编程打下了良好的基础设计体会在此次的课程设计实践中,我学到了教科书上没有的东西这次课程设计,我按照课程设计的要求,分块实现程序的功能在实践中我遇到许多的问题,但我都克服,最终我成功的完成了这次课程设计从中我充分理解了Java面对对象的特性,并体会到Java与C语言的不同之处在实践的同时,我又从中成长了许多,特别是在对程序的编译和调试中掌握了许多的技巧和方法,为今后的其他计算机语言的学习奠定了一定的基础此次课程设计让我更了解熟悉了Java中的图形用户界面和它的编程方式在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,收获很大在做项目时必然会遇到困难,会有不会的东西,重要的不是现在会不会,而是遇到问题知道如何找到解决的途径还使我对所学知识能够融会贯通,又不断丰富了新知识Java计算器设计使得我们对所学的专业课有了更为深刻的认识,使得知识得到了巩固和提高此次的课程设计使我复习、巩固Java语言的基础知识,进一步加深Java语言的理解和掌握;课程设计为我们提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼了我们分析解决实际问题的能力提高我们适应实际,实践编程的能力;并且培养了我们在项目开发中团队合作精神、创新意识及能力在实践的同时,我又从中成长了许多,特别是在对程序的编译和调试中掌握了许多的技巧和方法,为今后的其他计算机语言的学习奠定了一定的基础、参考文献5朱福喜.《语言程序设计》(第二版).科学出版社陈国君等.《程序设计基础》(第二版).清华大学出版社
[1]Java《大学基础教程》(第六版).电子工业出版社
[2]Java《语言导学》(第四版).机械工业出版社
[3]Deitel.Java《语言程序设计基础篇》(第六版).机械工业出版社
[4]MaryCampione.Java《》(第二版).东南大学出版社
[5]Y.Daniel Liang.Java
[6]Kathy Sierra.Head FirstJava附件:程序源代码import javax.swing.*;import javax.swing,text.JTextComponent;import java.util.StringTokenizer;import java.awt.import java.awt.event.*;import java.math.public classCalculator implementsActionListener{JFrame jf=new JFrame〃计算器〃;JTextField tf=new JTextFieldO;JPanel pnl;JButton jButtonDENG;JButton jButtonJIAN;JButton JButtonCHENG;JButton jButtonl;JButton jButton2;JButton jButton3;JButton jButton4;JButton jButton5;JButton JButton6;JButton jButton7;JButton jButton8;JButton jButton9;JButton jButtonO;JButton JButtonCHU;JButton jButtonQINGKONG;JButton jButtonJIA;JButton jButtonQUYU;JButton jButtonPINGFANG;JButton jButtonXIAOSHUDIAN;JButton jButtonBACKSPACE;JButton jButtonDAOSHU;JButton jButtonKAIPINGFANG;JButton jButtonERJINZHI;JButton jButtonSHIJINZHI;public Calculator{//初始化界面的方法Container c=jf.getContentPane;tf.setHorizontalAlignmentJTextField.RIGHT;c.add tf,North;JPanel pnl=new JPanel;c.add pnl,Center;pnl.setLayoutnew GridLayout6,5;jButtonl=new JButton〃1〃;jButtonl.addActionListenerthis;pnl.addjButtonl;jButton2=new JButton2;jButton
2.addActionListenerthis;pnl.addjButton2;jButton3=new JButton〃3〃;jButton
3.addActionListenerthis;pnl.addjButton3;jButtonBACKSPACE=new JButtonbackspace;jButtonBACKSPACE.addActionListenerthis;pnl.add jButtonBACKSPACE;JButton4=new JButton〃4〃;jButton
4.addActionListenerthis;pnl.addjButton4;jButton5=new JButton〃5〃;jButton
5.addActionListenerthis;pnl.addjButton5;jButton6=new JButton〃6〃;jButton
6.addActionListenerthis;pnl.addjButton6;jButtonJIA=new JButton〃+〃;jButtonJIA.addActionListenerthis;pnl.addjButtonJIA;jButton7=new JButton〃7〃;jButton
7.addActionListenerthis;pnl.addjButton7;jButton8=new JButton〃8〃;jButton
8.addActionListenerthis;pnl.addjButton8;jButton9=new JButton〃9〃;jButton
9.addActionListenerthis;pnl.addjButton9;jButtonJIAN=new JButton〃-〃;jButtonJIAN.addActionListenerthis;pnl.addJButtonJIAN;jButtonO=new JButton〃0〃;jButtonO.addActionListenerthis;pnl.addjButtonO;jButtonQINGKONG=new JButton〃清空〃;jButtonQINGKONG.addActionListenerthis;pnL addjButtonQINGKONG;jButtonCHENG=new JButton〃*〃;jButtonCHENG.addActionListenerthis;pnl.addjButtonCHENG;jButtonCHU=new JButton/;jButtonCHU.addActionListenerthis;pnl.addjButtonCHU;jButtonQUYU=new JButton〃%〃;jButtonQUYU.addActionListenerthis;pnl.addjButtonQUYU;jButtonPINGFANG=new JButton〃平方〃;jButtonPINGFANG.addActionListener this;pnl.add jButtonPINGFANG;jButtonXIAOSHUDIAN=new JButton〃.〃;jButtonXIAOSHUDIAN.addActionListenerthis;pnl.add jButtonXIAOSHUDIAN;jButtonDENG=new JButton〃二〃;jButtonDENG.addActionListenerthis;pnl.addjButtonDENG;jButtonDAOSHU=new JButton〃倒数〃;jButtonDAOSHU.addActionListenerthis;pnl.addjButtonDAOSHU;jButtonKAIPINGFANG=new JButton〃开平方〃;jButtonKAIPINGFANG.addActionListenerthis;pnl.addjButtonKAIPINGFANG;jButtonERJINZHI=new JButton〃二进制〃;JButtonERJINZHL addActionListenerthis;pnLaddjButtonERJINZHI;jButtonSHIJINZHI=new JButton〃十进制〃;jButtonSHIJINZHI.addActionListenerthis;pnl.add jButtonSHIJINZHI;jf.setSize600,400;jf.setVisibletrue;public voidactionPerformedActionEvent event{〃检测运算符的方法try doublewen=0;String toknizer=//+/z;String ben;String wenben=tf.getText+event.getActionCommand;tf.setText wenben;//各运算符的判断运行代码ifwenben.indexOf〃*〃!=-1{toknizer=〃*〃;if wenben.indexOf+〃!=T{toknizer=〃+〃;ifwenben.indexOf〃-〃!=-1{toknizer=〃一〃;ifwenben.indexOf〃/〃!=-l{toknize厂〃/〃;if wenben.indexOf〃%〃!=T{toknizer=//%/z;if wenben.indexOf〃平方〃!=T{toknizer=〃平方〃;if wenben.indexOf倒数”!=T{toknizer=”倒数〃;if wenben.indexOf〃开平方〃!=T{toknizer=〃开平方〃;if wenben.indexOf“二进制〃!=T{toknizer二〃二进制〃;if wenben.indexOf〃十进制〃!=T{toknizer二〃十进制〃;}〃各个运算符的运算方法代码if event.getSource—jButtonQINGKONG{〃清空算法wenben二〃〃;tf.setTextwenben;if event.getSource==jButtonBACKSPACE{//清除算法wenben=wenben.substring0,wenben.length-10;tf.setTextwenben;}if event.getSource==jButtonDENG{〃〃=〃算法wenben=wenben.substring0,wenben.length-1;double b[]=new double
[10];String a口二new String
[15];StringTokenizer sun=new StringTokenizerwenben,toknizer;int i=0;while sun.hasMoreTokens{a[i++]=sun.nextToken;forint j=0;j10;j++{Strings=a[j];String k=a[j+1];ifs==null{break;}else{if toknizer==〃*〃{ifj==0{wen=l;}b[j]=Double.parseDoubles;wen=wen*b[j];〃〃*〃算ben=Double.toStringwen;法tf.setText wenben+〃=〃+ben;}if toknizer-z,+/z{ifj==0{wen=0;}b[j]=Double.parseDouble s;wen=wen+b[j];〃〃+〃算法ben=Double.toStringwen;tf.setTextwenben+〃=〃+ben;}iftoknizer二=〃一〃{b[j]=Double.parseDoubles;ifj==0{wen=2*b[j];}wen=wen-b[j];〃〃-〃算法ben=Double.toStringwen;tf.setTextwenben+〃=〃+ben;if toknizer==z7z/{//〃/〃算法b[j]=Double.parseDoubles;ifj==O{wen=b[j]*b[j];}wen=wen/b[j];ben=Double.toStringwen;tf.setText wenben+/z=//+ben;if toknizer=二〃平方〃{//平方算法if j=0{wen=1;}b[j]=Double.parseDouble s;wen=wen*b[j]*b[j];ben=Double.toString wen;tf.setText wenben+/,=/z+ben;if toknizer二二〃倒数〃{〃倒数算法b[j]=Double.parseDouble s;wen=l/b[j];ben=Double.toStringwen;tf.setText wenben+//=zz+ben;if toknizer=〃开平方〃{〃开平方算法ifj==0{wen=O;}b[j]=Double.parseDouble s;double wenl=sqrt b[j];ben=Double.toStringwenl;tf.setTextwenben+〃=〃+ben;}JTextComponent textAnswer=null;if toknizeL二〃十进制〃{//二进制转为十进制代码//b[j]=Integer.parselnt s;wen=Integer,parselnts,2;ben=Double.toStringwen;tf.setTextwenben+〃=〃+ben;if toknizer二二〃二进制〃{〃十进制转换为二进制代码int den=Integer.parselnt s;String daen=Integer.toBinaryStringden;tf.setText wenben+//=z/+daen;if toknizer==z/%//{〃〃旷算法ifj==0{b[j]=Double.parseDouble s;bEj+ll=Double.parseDoublek;ifb[j]b[j+l]{wen=b[j];}ifb[j]==b[j+l]{wen=0;}ifb[j]b[j+l]{wen=b[j]%b[j+l];}ifjD{b[j]=Double.parseDouble a[j];wen=wen%b[j];}ben=Double.toStringwen;tf.setText wenben+z,=,/+ben;catchException e{e.getMessage;private intsqrt doubled{//TODO Auto-generated methodstub return0;〃主函数public staticvoid mainString[]args{new Calculator;〃对小程序进行初始化成绩教师签名日期:目录
1、前言3L1设计目的及思路3L2功能模块设计
31.3系统功能图
42、计算器的设计与实现
43、计算器演示
54、总结与体会及讨论分析
8、参考文献510附件11程序源代码
11、前言
11.1设计目的及思路通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力利用Java Applet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上至于其中的进制转换功能的实现则是直接调用Java中进制转换的函数,例如要将十进制转换成二进制则可直接调用函数Integer.toBinaryString inti来实现,充分显示了Java语言的简洁性和Java语言功能的强大性当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是Java语言健壮性的体现!12功能模块设计以下为标准计算器的基本功能1加法两个数据进行加操作,可以为小数2减法两个数据进行减操作,可以为负数相减3乘法两个数相乘操作4除法两个数相除操作5开平方对任意一个数进行开方运算,可以是小数6求余对任意一个数进行求余运算7倒数对任意一个数进行倒数运算8转换将十进制数转换为二进制以及将二进制转换为十进制
1.3系统功能图、计算器的设计与实现22,1总体方案设计日常生活中经常需要用到计算器,比如科学计算,数值计算,会计业务等等,在中实现一个精巧的计算器,可以让用户的操作也更方便和快捷本项目需要实现一个具有四则Applet运算的计算器,能够实现基本的加、减、乘、除运算,以及其它的辅助功能;界面简洁适用;要提供主要的设计思路、类的设计,本次设计添加转进制等功能本应用程序继承自框架此程序使用布局管理器将单行文本加入相应区域,包含各种按纽的面板加入相应区域还可以将进制转换的面板与单行文frame,frame bordelayout,本框放一块包含各种按纽的面板叩采用行列的网格布局,然后将数字按钮和buttonpanel运算符按钮以及控制按钮添加到面板中,同时注册按钮事件监听器butto anelN N布局设计好后再添加按钮事件对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中
2.2程序的调试与运行结果说明程序功能实现使用swing组件和awt图形用户界面以及BroadLayout布局管理器通过在按钮的单击事件处理方法中调用类的成员方法calculator来进行简易计算器的各种运算,并正确实现运算功能程序可以实现加、减、乘、除、取余等运算,并且可进行负数的运算,设置CE清零按钮可进行清零运算添加菜单条,列出‘标准计算日期计算’菜单选项,并别实现标准计算且整个程序对话框可实现最小化、最大化、关闭、计算器演示3加法减法乘法除法倒数平方二进制转换为十进制。