java课程设计-计算器实际与实现_第1页
java课程设计-计算器实际与实现_第2页
java课程设计-计算器实际与实现_第3页
java课程设计-计算器实际与实现_第4页
java课程设计-计算器实际与实现_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计课程设计报告题目计算器设计与实现专业班级姓名指导教师成绩XX201X年X月XX日学号XXXXXX目录1设计内容及要求111设计内容112设计任务及具体要求12概要设计121功能需求122系统的开发运行环境23设计过程232系统功能模块34设计结果与分析441功能模块的划分442功能模块的实现4小结105参考文献111设计内容及要求11设计内容该程序是一个图形界面的简单JAVA计算器,具有良好的界面,使用人员能快捷简单的进行操作。即时准确地获得需要的计算结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。可以进行简单的四则运算(加、减、乘、除,等)12设计任务及具体要求计算器的设计与实现,使学生巩固和加深以JAVA语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以JAVA为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的JAVA程序的水平。在日常生活中经常需要用到计算器,比如科学计算、数字计算、会计业务甚至是日常生活中的一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。2概要设计21功能需求在日常生活中人们总是难以避免的要进行一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。在该系统中不仅可以进行整数的加、减、乘、除等简单运算,也可以进行浮点数的加、减、乘、除等运算。除此之外还可以进行三角函数、指数、对数、平方等运算。人们应用它可以解决日常生活中的一些运算问题,比如做买卖时进行交易的过程中就可以利用该计算器进行数量、价格以及金额的统计计算。学生也可以利用该计算器进行数学运算,解决简单的三角函数运算。22系统的开发运行环境本系统开发平台JAVA本系统集成开发环境MYECLIPSE和ULTRAEDIT本系统运行环境WINDOWSXP3设计过程31系统体系结构设计本应用程序继承自框架类FRAME,此程序使用FRAME布局管理器GRIDLAYOUT,在CONTAINER容器中将单行文本框放在窗体上方区域,将选项、进制转换、帮助等按钮添加到菜单条。包含各种按钮的面板JPANEL采用N行M列的网格布局,然后将数字按钮和运算按钮以及控制按钮添加到面板中。同时注册事件监听器计算器总体结构如图1所示图1总体分析图32系统功能模块321系统功能描述1基本运算,包括对整数和浮点数进行加、减、乘、除以及乘方、三角函数、指数等运算;2进制运算,包括十进制和二进制数、十进制和八进制之间的转换;3其他功能,包括对输入、输出结果的复制、粘贴、剪切和退格、清零等。322系统流程图根据系统要求和和系统功能的划分可以得到如图2所示的流程图图2程序流程图323主要类设计PUBLICCLASSCALCULATOREXTENDSFRAMEIMPLEMENTSACTIONLISTENER;WINDOWLISTENER/CALCULATOR是初始化界面,整体布局及响应用户的各种按钮操作CLASSWINCLOSEIMPLEMENTSWINDOWLISTENERPUBLICVOIDWINDOWCLOSINGWINDOWEVENTE/WINCLOSE是设置计算器整个窗体的显示、退出、隐藏的操作。4设计结果与分析41功能模块的划分(1)界面模块实现计算器的运算界面,该界面表示数据的按钮、表示浮点型的按钮运算符按钮和实现显示运算结果界面以及菜单选项界面。(2)监听器模块该模块为每一个按钮设置监听器,当鼠标点击按钮时通过监听器来判断该按钮代表的什么数据、实现什么运算功能、执行什么功能等。(3)动作响应模块该模块通过按钮事件,进行对应的处理功能其主要是将运算数据,以浮点型类型保存在内存中,然后通过判断运算符类型对数据进行相应的运算,并将运算结果以STRING类型在结果文本区域中显示,其中包括菜单条里的进制转换和各选项菜单的动作响应。(4)主函数模块调用已经设计好的函数,来实现计算器的全部功能。42功能模块的实现421计算器界面模块在界面设计中,应用FRAME框架,FRAME是独立于浏览器的可运行的窗口,所以应用FRAME框架来设计计算器界面比较合适。在FRAME框架的容器分别设置菜单条JMENUBAR、文本区JTEXTFIELD、然后在其中设置了五个面板分别都采用GIRDLAYOUT布局完成数字键盘和运算符的设置。实现该界面的部分代码如下PUBLICCLASSCALCULATOREXTENDSFRAMEIMPLEMENTSACTIONLISTENER,WINDOWLISTENERPRIVATECONTAINERCONTAINERPRIVATEGRIDBAGLAYOUTLAYOUTPRIVATEGRIDBAGLAYOUTLAYOUTPRIVATEGRIDBAGCONSTRAINTSCONSTRAINTSPRIVATEJTEXTFIELDDISPLAYFIELD/保存,/,命令定义各种组件JPANELPANEL1NEWJPANELPANEL1SETLAYOUTNEWGRIDLAYOUT1,5,4,4/定义为GRIDLAYOUT布局THISADDPANEL1BUTTON_SQRTNEWJBUTTON“SQRT“BUTTON_PLUSMINUSNEWJBUTTON“/“PANEL1ADDBUTTON_SQRT/面板的定义和按钮添加422监听器模块通过继承ACTIONLISTENER和WINDONLISTENER接口来实现事件监听。当BUTTOIN或ITEM对象上用鼠标进行点击时,将发送一个ACTIONEVENT事件。这个事件ACTIONEVENT事件会被使用ADDATIONLISTENER方法注册的所有ACTIONLISTENER的ACTIONPERFORMED方法接收,首先为所有具有时间动作的组件用ADDATIONLISTENERTHIS进行监听,当被监听的组件发生事件时就进行反馈,同时进行动作事件处理。该模块的部分代码如下BUTTON_PLUSMINUSADDACTIONLISTENERTHISBUTTON_EXPADDACTIONLISTENERTHISBUTTON_CEADDACTIONLISTENERTHIS/各按钮的监听器设置THISADDWINDOWLISTENERNEWWINCLOSE/注册窗口监听器THISSETVISIBLETRUEDIALOGADDLABEL_DIALOGDIALOGADDWINDOWLISTENERTHIS/为对话框注册窗口事件监听器JMENUITEMM1_EXITNEWJMENUITEM“复制“M1_EXITADDACTIONLISTENERTHIS/设置菜单按钮的监听器423动作响应模块该模块通过PUBLICVOIDACTIONPERFORMEDACTIONEVENTE函数来实现动作响应事件。首先通过EGETSOURCE来获得当前发生动作,然后根据不同的按钮产生不同动作响应,在实现动作响应之前定义了LASTCOMMAND、RESUL、START变量界面效果,其中若鼠标点击的是数字按钮则EGETSOURCE获取LASTCOMMAND,IFEGETSOURCEEQUALSBUTTON_1|EGETSOURCEEQUALSBUTTON_2|IFSTARTDISPLAYFIELDSETTIEXT“/设置计算器初始为空IFINPUTEQUALS“/“DISPLAYFIELDSETTEXTDISPLAYFIELDGETTEXT“IFINPUTEQUALS“/“当首先输入的符号是/时初始IFINPUTEQUALS“退格“/退格键的实现方IFSTRLENGTH0DISPLAYFIELDSETTEXTSTRSUBSTRING0,STRLENGTH1LSEIFINPUTEQUALS“C“/清零键的实现方DISPLAYFIELDSETTEXT“0“ELSEIFEGETACTIONCOMMAND“复制“/各按钮的动作响应方式代码DISPLAYFIELDCOPYELSEIFEGETACTIONCOMMAND“剪切“ELSEIFEGETACTIONCOMMAND“二进制“/二进制的转换IFDISPLAYFIELDGETTEXTNULL若为空则弹出对话框JOPTIONPANESHOWMESSAGEDIALOGTHIS,“不能为空请输入要进行转换的字符“,“消息对话框“,JOPTIONPANEWARNING_MESSAGEELSEIFEGETACTIONCOMMAND“用法“/按帮助菜单栏用法的处理方法LABEL_DIALOGSETTEXT“SQRT,EXP,LOG等键是先输运算符再输数字,其他运算是先输入数字再输入运算符N“ELSEIFEGETACTIONCOMMAND“关于“/按关于菜单栏用法的处理方法JOPTIONPANESHOWMESSAGEDIALOGLABEL_DIALOG,“JAVA的计算器N“JAVA课程设计“详情咨询MAIL605260019QQCOMN“,“关于计算器“,JOPTIONPANEINFORMATION_MESSAGEIFLASTCOMMANDEQUALS“/各运算符的具体运算方法RESULTXPUBLICVOIDWINDOWCLOSINGWINDOWEVENTEIFEGETSOURCEDIALOGDIALOGSETVISIBLEFALSE/隐藏对话框ELSESYSTEMEXIT0基于前面三块模板的功能,定义一个主函数来实现计算器的所有功能,同时定义一个WINDOWCLOSING控制窗口关闭事件,其具体代码如下PUBLICSTATICVOIDMAINSTRINGARGSCALCULATORCALCULATORNEWCALCULATORCALSSWINCLOSEIMPLEMENTSWINDOWLISTENERPUBLICVOIDWINDOWCLOSINGWINDOWEVENTE43功能模块的测试图3初始化界面图4求平方根图5COS运算图6EXP运算结果图7加减运算小结设计,给人以创作的冲动,但也要为这次冲动承担一定的痛苦,但事后发现,这一切都是值得的,本次的JAVA课程设计让我对JAVA的理论知识又有深一步的了解,温故而知新,开始设计之时完全没头绪,对与理论学习不够扎实的我深感“书到用时方恨少”只好再把书上介绍的相关知识重新阅读一遍,对知识进行了全面而系统的梳理,遇到难处首先是苦思冥想寻求方法,再向同学请教,终于熟练掌握了基本理论知识,而且领悟了诸多平时学习难以理解掌握的的较难的知识,学会了如何思考的方式,找到了设计的灵感。在反反复复的学习中,我终于作出一我涉及到的仅仅是计算器的一部分简单内容,离实际的需求肯定还有差距。由于我的知识浅薄,经验不足及阅历颇浅,在设计方面还有很多不足,比如功能过少,界面不醒目等问题,我会在以后的学习过程中,根据具体要求不断的修改、完善,争取使系统慢慢趋于完美。这次课程设计使我感到收获不小,促进了对理论知识的消化与吸收,也巩固和完善了本门课程的知识体系结构。设计过程中遇到了不少的麻烦,在调试过程中也出现一些平时学习过程中没有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论