java课程设计 计算器的设计与实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

淮海工学院计算机工程学院课程设计报告设计名称:面向对象课程设计选题名称:计算器的设计与实现姓名:学号:专业班级:系(院):计算机工程学院设计时间:设计地点:软件实验室、教室指导教师评语:签名:年月日成绩:面向对象课程设计报告第2页,共15页1.课程设计目的《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力。2.课程设计任务与要求:课程设计可选用NetBeans、Eclipse、JBuilder等作为开发平台以提高开发效率,尽可能熟练掌握其中一种集成开发环境。建议采用UML建模技术进行系统的分析设计,在Visio中画出系统用例图和类图,并将UML图复制到设计报告中。通过这次设计,要求掌握以下内容:1)面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用2)类、包、接口的定义与使用3)常用工具类与算法的实现(数组、向量、字符串、链表)4)Java常用标准GUI组件及其事件处理5)Java的异常处理机制6)Java的数据库连接技术7)Java的多线程技术与动画制作8)Java的网络编程3.课程设计说明书面向对象课程设计报告第3页,共15页1、需求分析(用例图)计算器加用户减除历史检验乘阶乘清空历史正弦余弦图1.用例图课题:计算器的设计与实现功能分析:此计算器有连续运算的功能,然而在很多人使用计算器时容易忘掉之前是用8*2呢还是6*2,于是这个计算器多出历史检验的功能,可以将以前的式子显示在下方,一边检验正确与否。2、概要设计MultipleOperation类,用来实现连续运算的类MultipleOperationtrans:String+operation(expr:String)面向对象课程设计报告第4页,共15页Listl类,用来记录历史的类listStr:StringEstr:Stringflag:String+toString()3.详细设计MultipleOperationtrans:String+operation(expr:String)publicclassMultipleOperation{Stringtrans;publicvoidoperation(Stringexpr){ScriptEngineManagermanager=newScriptEngineManager();ScriptEngineengine=manager.getEngineByName(js);try{trans=String.valueOf(engine.eval(expr));}catch(Exceptione){trans=错误语法;System.out.println(e);}}}listStr:StringEstr:Stringflag:String+toString()面向对象课程设计报告第5页,共15页publicclasslist{StringStr;StringEstr;Stringflag;publiclist(){Str=;Estr=;flag=;}@OverridepublicStringtoString(){//returnA+F+B+D+C;returnStr+=+Estr;}}4.编程实现packageCalculator;importjava.awt.event.*;importjavax.swing.*;importjava.util.*;publicclassNewJFrameextendsjavax.swing.JFrame{intClearNumber=1;//判定点击“=”后点击数字按钮重置文本框intI=0;//用来加入列表第一行的提示intflag=0;//点击列表后提取结果的判定源judgeju;privatebooleannumber=true;privateStringequalOp==;//privateCalculatorOpop=newCalculatorOp();MultipleOperationCalcuOperation;listhistory;VectorStringdata=newVectorString();//ActionListenernumberListener=newNumberListener();/*classNumberListenerimplementsActionListener{*publicvoidactionPerformed(ActionEventevent){*Stringdigit=event.getActionCommand();*if(number){*textfield.setText(digit);*number=false;*}else{*textfield.setText(textfield.getText()+digit);*}面向对象课程设计报告第6页,共15页*}*}**ActionListeneroperatorListener=newOperatorListener();*privatevoidaction(){*number=true;*textfield.setText();*equalOp==;*op.setTotal(0);*}**classOperatorListenerimplementsActionListener{*publicvoidactionPerformed(ActionEvente){*if(number){*action();*textfield.setText(0);*}else{*number=true;*StringdisplayText=textfield.getText();*if(equalOp.equals(=)){*op.A();*op.setTotal(displayText);*history.D==;***}elseif(equalOp.equals(+)){*op.add(displayText);*op.B();*history.F=+;*}elseif(equalOp.equals(-)){*op.subtract(displayText);*op.B();*history.F=-;*}elseif(equalOp.equals(×)){*op.multiply(displayText);*op.B();*history.F=×;*}elseif(equalOp.equals(÷)){*op.divide(displayText);*op.B();*history.F=÷;*}elseif(equalOp.equals(^N)){*op.B();*history.F=^;*intA;*intB;面向对象课程设计报告第7页,共15页*inttrans=1;*StringC;*A=Integer.parseInt(history.A);*B=Integer.parseInt(history.B);*op.B();*for(inti=0;iB;i++){*trans*=A;*}*op.power(String.valueOf(trans));*}*textfield.setText(+op.getTotalString());*equalOp=e.getActionCommand();*}*}*}*/publicclassjudge{publicvoidpan(){if(ClearNumber==0){textfield.setText();}}}/*publicclassCalculatorOp{**privatedoubletotal;*publicCalculatorOp(){*total=0;*}*publicStringgetTotalString(){*return+total;*}*publicvoidsetTotal(Stringn){*total=convertToNumber(n);*}*publicvoidadd(Stringn){*total+=convertToNumber(n);*}*publicvoidsubtract(Stringn){*total-=convertToNumber(n);*}*publicvoidmultiply(Stringn){*total*=convertToNumber(n);*}*面向对象课程设计报告第8页,共15页*publicvoiddivide(Stringn){*total/=convertToNumber(n);*}**publicvoidpower(Stringn){*total=convertToNumber(n);*}***publicvoidA(){*history.A=textfield.getText();*}*publicvoidB(){*history.B=textfield.getText();*}**privatedoubleconvertToNumber(Stringn){*returnDouble.parseDouble(n);*}*}*//***CreatesnewformNewJFrame*/publicNewJFrame(){initComponents();history=newlist();textfield.setText(null);CalcuOperation=newMultipleOperation();ju=newjudge();this.setLocationRelativeTo(null);this.setResizable(false);}privatevoidbtnPointActionPerformed(java.awt.event.ActionEventevt){textfield.setText(textfield.getText()+.);}privatevoidbtnClearActionPerformed(java.awt.event.ActionEventevt){textfield.setText(textfield.getText().substring(0,textfield.getText().length()-1));}面向对象课程设计报告第9页,共15页privatevoidbtnEqual1ActionPerformed(java.awt.event.ActionEventevt){textfield.setText();}privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+1);}privatevoidjButton2ActionPerformed(java.awt.event.ActionEventevt){ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+2);}privatevoidjButton3ActionPerformed(java.awt.event.ActionEventevt){ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+3);}privatevoidjButton4ActionPerformed(java.awt.event.ActionEventevt){ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+4);}p

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功