下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、淮海工学院计算机工程学院课程设计报告设计名称:面向对象课程设计选题名称:计算器的设计与实现姓名:学号:专业班级:系(院):计算机工程学院设计时间:设计地点:软件实验室、教室指导教师评语:成绩:签名:年月日1. 课程设计目的及面而对豪思序,讦云说二亓史晦j!很孤而讦算机专亚塞袖谏程两!该讦应!习莞该藻程后行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力。2. 课程设计任务与要求:课程设计可选用NetBeans、Eclipse、JBuilder等作
2、为开发平台以提高开发效率,尽可能熟练掌握其中一种集成开发环境。建议采用UMLB模技术进行系统的分析设计,在Visio中画出系统用例图和类图,并将UMLH复制到设计报告中。通过这次设计,要求掌握以下内容:1)面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用2)类、包、接口的定义与使用3)常用工具类与算法的实现(数组、向量、字符申、链表)4)Java常用标准GUI组件及其事件处理5)Java的异常处理机制6)Java的数据库连接技术7)Java的多线程技术与动画制作8)Java的网络编程课程设计说明书1、需求分析(用例图)课题:计算器的设计与实现功能分析:此计算器有连续运算的功能,然
3、而在很多人使用计算器时容易忘掉之前是用8*2呢还是6*2,丁是这个计算器多出历史检验的功能,可以将以前的式子显示在下方,一边检验正确与否。2、概要设计MultipleOperation类,用来实现连续运算的类MultipleOperationtrans:String+operation(expr:String)Listl类,用来记录历史的类list3. Str:StringEstr:Stringflag:String+toString()详细设计MultipleOperationtrans:String+operation(expr:String)publicclassMultipleOper
4、ationStringtrans;publicvoidoperation(Stringexpr)ScriptEngineManagermanager=newScriptEngineManager();ScriptEngineengine=manager.getEngineByName("js");trytrans=String.valueOf(engine.eval(expr);catch(Exceptione)trans="错误语法”;System.out.println(e);listStr:StringEstr:Stringflag:String+toStr
5、ing()publicclasslistStringStr;StringEstr;Stringflag;publiclist()(Str=""Estr=""flag=""OverridepublicStringtoString()(/returnA+F+B+D+C;returnStr+"="+Estr;4.编程实现packageCalculator;importjava.awt.event.*;importjavax.swing.*;importjava.util.*;publicclassNewJFrameext
6、endsjavax.swing.JFrame(intClearNumber=1;/判定点击"="后点击数字按钮重置文本框intI=0;/用来加入列表第一行的提示intflag=0;/点击列表后提取结果的判定源judgeju;privatebooleannumber=true;privateStringequalOp="="/privateCalculatorOpop=newCalculatorOp();MultipleOperationCalcuOperation;listhistory;Vector<String>data=newVecto
7、r<String>();/ActionListenernumberListener=newNumberListener();/*classNumberListenerimplementsActionListener(publicvoidactionPerformed(ActionEventevent)(Stringdigit=event.getActionCommand();if(number)(textfield.setText(digit);number=false;else(textfield.setText(textfield.getText()+digit);Action
8、ListeneroperatorListener=newOperatorListener();privatevoidaction()(number=true;textfield.setText("");equalOp="="op.setTotal("0”);*classOperatorListenerimplementsActionListener(publicvoidactionPerformed(ActionEvente)(if(number)(action();textfield.setText("0”);else(number
9、=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="-&
10、quot;elseif(equalOp.equals("")xop.multiply(displayText);op.B();history.F=""xelseif(equalOp.equals("")+op.divide(displayText);op.B();history.F=""+elseif(equalOp.equals("AN")op.B();history.F="A"intA;intB;inttrans=1;StringC;A=Integer.parseInt(
11、history.A);B=Integer.parseInt(history.B);op.B();for(inti=0;i<B;i+)(trans*=A;op.power(String.valueOf(trans);textfield.setText(""+op.getTotalString();equalOp=e.getActionCommand();*/publicclassjudge(publicvoidpan()(if(ClearNumber=0)(textfield.setText("");/*publicclassCalculatorOp
12、(*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*=conve
13、rtToNumber(n);*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
14、*/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()+".
15、");privatevoidbtnClearActionPerformed(java.awt.event.ActionEventevt)(textfield.setText(textfield.getText().substring(0,textfield.getText().length()-1);privatevoidbtnEqual1ActionPerformed(java.awt.event.ActionEventevt)(textfield.setText("");privatevoidjButton1ActionPerformed(java.awt.e
16、vent.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)(
17、ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"3");privatevoidjButton4ActionPerformed(java.awt.event.ActionEventevt)(ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"4");privatevoidjButton5ActionPerformed(java.awt.event.ActionEventevt)(ju.pan();ClearNu
18、mber=1;textfield.setText(textfield.getText()+"5");privatevoidjButton6ActionPerformed(java.awt.event.ActionEventevt)(ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"6");privatevoidjButton7ActionPerformed(java.awt.event.ActionEventevt)(ju.pan();ClearNumber=1;textfield
19、.setText(textfield.getText()+"7");privatevoidjButton8ActionPerformed(java.awt.event.ActionEventevt)(ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"8");privatevoidjButton9ActionPerformed(java.awt.event.ActionEventevt)ju.pan();ClearNumber=1;textfield.setText(textfiel
20、d.getText()+"9");privatevoidjButton10ActionPerformed(java.awt.event.ActionEventevt)ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"0");privatevoidbtnAddActionPerformed(java.awt.event.ActionEventevt)textfield.setText(textfield.getText()+"+");ClearNumber=1;p
21、rivatevoidbtnSubtractActionPerformed(java.awt.event.ActionEventevt)textfield.setText(textfield.getText()+"-");ClearNumber=1;privatevoidbtnMultiplyActionPerformed(java.awt.event.ActionEventevt)ClearNumber=1;textfield.setText(textfield.getText()+"*");privatevoidbtnDivideActionPerfo
22、rmed(java.awt.event.ActionEventevt)textfield.setText(textfield.getText()+"/");ClearNumber=1;privatevoidbtnEqualActionPerformed(java.awt.event.ActionEventevt)/CalcuOperation;Stringstrans=""history.Str=textfield.getText();CalcuOperation.operation(textfield.getText();textfield.setTe
23、xt(CalcuOperation.trans);history.Estr=CalcuOperation.trans;strans=history.Str+"="+history.Estr;if(I=0&&textfield.getText()!=null)data.addElement(”历史记录如下:");I=1;if(CalcuOperation.trans="错误语法")ClearNumber=0;elsedata.addElement(strans);jlist.setListData(data);textfield.
24、setText(CalcuOperation.trans);ClearNumber=0;privatevoidbtnBrackets1ActionPerformed(java.awt.event.ActionEventevt)textfield.setText(textfield.getText()+"(");privatevoidbtnBrackets2ActionPerformed(java.awt.event.ActionEventevt)textfield.setText(textfield.getText()+")");privatevoidj
25、listValueChanged(javax.swing.event.ListSelectionEventevt)history.flag=String.valueOf(jlist.getSelectedValue();textfield.setText(history.flag.substring(history.flag.indexOf("=")+1,history.flag.length();ClearNumber=1;flag=1;privatevoidjButton11ActionPerformed(java.awt.event.ActionEventevt)if
26、(ClearNumber=0|flag=1)Stringa=textfield.getText().substring(0,textfield.getText().indexOf(".");textfield.setText("转换为二进制为:"+String.valueOf(Integer.toBinaryString(Integer.parseInt(a);elseif(textfield.getText().indexOf(".”)!=-1)Stringa=textfield.getText().substring(0,textfield
27、.getText().indexOf(".");textfield.setText("转换为二进制为:"+String.valueOf(Integer.toBinaryString(Integer.parseInt(a);else(textfield.setText("转换为二进制为:"+String.valueOf(Integer.toBinaryString(Integer.parseInt(textfield.getText();ClearNumber=0;privatevoidjButton12ActionPerformed(
28、java.awt.event.ActionEventevt)(if(ClearNumber=0)(Stringa=textfield.getText().substring(0,textfield.getText().indexOf(".");textfield.setText("转换为八进制为:"+String.valueOf(Integer.toOctalString(Integer.parseInt(a);else(if(textfield.getText().indexOf(".”)!=-1)Stringa=textfield.getT
29、ext().substring(0,textfield.getText().indexOf(".");textfield.setText("转换为八进制为:"+String.valueOf(Integer.toOctalString(Integer.parseInt(a);elsetextfield.setText("转换为八进制为:"+String.valueOf(Integer.toOctalString(Integer.parseInt(textfield.getText();ClearNumber=0;privatevoidjButton13ActionPerformed(java.awt.event.ActionEventevt)if(ClearNumber=0)Stringa=textfield.getText().substring(0,textfield.getText().length()-2);textfield.setText("转换为十六进制为:"+String.valueOf(Integer.toHexString(In
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开封市高级中学2026-2027学年高二上学期9月阶段检测语文试卷(含答案)
- 2025-2026年四川省护士资格考试专业实务模拟试题
- 2025-2026年食品安全知识冲刺练习
- 防腐绝缘层电火花检测记录
- 广东大湾区一模-2026届高三-2026年1月-地理-试题
- 【7道第一次月考】安徽省芜湖市无为市2025-2026学年七年级上学期10月月考道德与法治试题(含解析)
- 四川省广安市岳池中学2026-2027学年九年级上学期收心质量检测语文试题 (含答案)
- 医院疫苗处方培训考试试题及答案
- 湖南省长郡中学2026-2027年高二上开学考试英语试卷(含解析无听力音频含听力原文)
- 测量观察资源配置管理办法
- 网球场施工组织设计
- 2025年医院后勤管理人员招聘考试题库(含答案)
- 2026年秋新人教版部编本六年级上册语文教学工作计划
- 2026年新教材人教版九年级上册英语Unit 1 The Changing World 教案
- 信创数据库采购项目需求及评分标准需求说明
- GB/T 470-2026锌锭
- 管理经济学(第14版) 课件 第16章 政府对企业的监管
- 《传感器与检测技术》课件 第十一章 辐射与波式传感器
- 2026高考全国二指导卷语文(全国二卷02)(全解全析)
- 江苏省惠隆资产管理有限公司招聘笔试题库2026
- 农垦内控制度
评论
0/150
提交评论