版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、- 淮 海 工 学 院 计算机工程学院课程设计报告设计名称: 面向对象课程设计 选题名称:计算器的设计与实现姓 名:学 号:专业班级:系 院: 计算机工程学院设计时间:设计地点: 软件实验室、教室 成绩:指导教师评语: 签名: 年 月 日. z-1课程设计目的?面向对象程序设计?是一门实践性很强的计算机专业根底课程,课程设计是学习完该课程后进展的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和根底知识的理解,掌握使用Java语言进展面向对象设计的根本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力。2课程设计任务与要求:课程设计可选用NetBeans、
2、Eclipse、uilder等作为开发平台以提高开发效率,尽可能熟练掌握其中一种集成开发环境。建议采用UML建模技术进展系统的分析设计,在Visio中画出系统用例图和类图,并将UML图复制到设计报告中。通过这次设计,要求掌握以下容:1) 面向对象技术中的继承与多态重载和覆盖机制、各种修饰符的使用2) 类、包、接口的定义与使用3) 常用工具类与算法的实现数组、向量、字符串、链表4) Java常用标准GUI组件及其事件处理5) Java的异常处理机制6) Java的数据库连接技术7) Java的多线程技术与动画制作8) Java的网络编程 3课程设计说明书1、需求分析用例图图1.用例图 课题:计算
3、器的设计与实现 功能分析:此计算器有连续运算的功能,然而在很多人使用计算器时容易忘掉之前是用8*2呢还是6*2,于是这个计算器多出历史检验的功能,可以将以前的式子显示在下方,一边检验正确与否。 2、概要设计MultipleOperation类,用来实现连续运算的类MultipleOperation trans: String+operation (e*pr: String)Listl类,用来记录历史的类listStr: StringEstr: Stringflag: String+toString ()3详细设计MultipleOperationtrans: String+operation
4、(e*pr: String)public class MultipleOperation String trans; public void operation(String e*pr) ScriptEngineManager manager=new ScriptEngineManager(); ScriptEngine engine =manager.getEngineByName("js"); try trans= String.valueOf( engine.eval(e*pr); catch(E*ception e) trans="错误语法" S
5、ystem.out.println(e); listStr:StringEstr: Stringflag: String+toString ()public class list String Str; String Estr; String flag; public list() Str=" Estr=" flag=" Override public String toString () /return A+F+B+D+C; return Str+"="+Estr; 4编程实现package Calculator;import java.aw
6、t.event.*;import java*.swing.*;import java.util.*;public class NewJFrame e*tends java*.swing.JFrame int ClearNumber=1;/判定点击“=后 点击数字按钮重置文本框 int I=0;/用来参加列表第一行的提示 int flag=0;/点击列表后 提取结果的判定源 judge ju; private boolean number = true; private String equalOp = "=" / private CalculatorOp op = new
7、CalculatorOp(); MultipleOperation CalcuOperation; list history; Vector<String> data=new Vector<String>(); / ActionListener numberListener = new NumberListener(); /* class NumberListener implements ActionListener * public void actionPerformed(ActionEvent event) * String digit = event.getA
8、ctionmand(); * if (number) * te*tfield.setTe*t(digit); * number = false; * else * te*tfield.setTe*t(te*tfield.getTe*t() + digit); * * * * * ActionListener operatorListener = new OperatorListener(); * private void action() * number = true; * te*tfield.setTe*t("); * equalOp = "=" * op.s
9、etTotal("0"); * * * class OperatorListener implements ActionListener * public void actionPerformed(ActionEvent e) * if (number) * action(); * te*tfield.setTe*t("0"); * else * number = true; * String displayTe*t = te*tfield.getTe*t(); * if (equalOp.equals("=") * op.A();
10、* op.setTotal(displayTe*t); * history.D="=" * * * else if (equalOp.equals("+") * op.add(displayTe*t); * op.B(); * history.F="+" * else if (equalOp.equals("-") * op.subtract(displayTe*t); * op.B(); * history.F="-" * else if (equalOp.equals("×
11、;") * op.multiply(displayTe*t); * op.B(); * history.F="×" * else if (equalOp.equals("÷") * op.divide(displayTe*t); * op.B(); * history.F="÷" * else if (equalOp.equals("N") * op.B(); * history.F="" * int A; * int B; * int trans=1;
12、* String C; * A=Integer.parseInt(history.A); * B=Integer.parseInt(history.B); * op.B(); * for(int i=0;i<B;i+) * trans *=A; * * op.power(String.valueOf(trans); * * te*tfield.setTe*t(" + op.getTotalString(); * equalOp = e.getActionmand(); * * * */public class judge public void pan() if(ClearNu
13、mber=0) te*tfield.setTe*t("); /*public class CalculatorOp * * private double total; * public CalculatorOp() * total = 0; * * public String getTotalString() * return "+total; * * public void setTotal(String n) * total = convertToNumber(n); * * public void add(String n) * total += convertToN
14、umber(n); * * public void subtract(String n) * total -= convertToNumber(n); * * public void multiply(String n) * total *= convertToNumber(n); * * * public void divide(String n) * total /= convertToNumber(n); * * * public void power (String n) * total = convertToNumber(n); * * * * public void A() * h
15、istory.A=te*tfield.getTe*t(); * * public void B() * history.B=te*tfield.getTe*t(); * * * private double convertToNumber(String n) * return Double.parseDouble(n); * * */ /* * Creates new form NewJFrame */ public NewJFrame() initponents(); history=new list(); te*tfield.setTe*t(null); CalcuOperation=ne
16、w MultipleOperation(); ju=new judge(); this.setLocationRelativeTo(null); this.setResizable(false); private void btnPointActionPerformed(java.awt.event.ActionEvent evt) te*tfield.setTe*t(te*tfield.getTe*t()+"."); private void btnClearActionPerformed(java.awt.event.ActionEvent evt) te*tfield
17、.setTe*t(te*tfield.getTe*t().substring(0, te*tfield.getTe*t().length()-1); private void btnEqual1ActionPerformed(java.awt.event.ActionEvent evt) te*tfield.setTe*t("); private void utton1ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t(
18、)+"1"); private void utton2ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"2"); private void utton3ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"
19、3"); private void utton4ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"4"); private void utton5ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"5")
20、; private void utton6ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"6"); private void utton7ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"7"); privat
21、e void utton8ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"8"); private void utton9ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"9"); private void u
22、tton10ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"0"); private void btnAddActionPerformed(java.awt.event.ActionEvent evt) te*tfield.setTe*t(te*tfield.getTe*t()+"+"); ClearNumber=1; private void btnSubtractActionP
23、erformed(java.awt.event.ActionEvent evt) te*tfield.setTe*t(te*tfield.getTe*t()+"-"); ClearNumber=1; private void btnMultiplyActionPerformed(java.awt.event.ActionEvent evt) ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"*"); private void btnDivideActionPerformed(java.awt.ev
24、ent.ActionEvent evt) te*tfield.setTe*t(te*tfield.getTe*t()+"/"); ClearNumber=1; private void btnEqualActionPerformed(java.awt.event.ActionEvent evt) / CalcuOperation; String strans=" history.Str=te*tfield.getTe*t(); CalcuOperation.operation(te*tfield.getTe*t(); te*tfield.setTe*t(Calcu
25、Operation.trans); history.Estr=CalcuOperation.trans; strans=history.Str+"="+history.Estr; if(I=0&&te*tfield.getTe*t()!=null) data.addElement("历史记录如下:"); I=1; if(CalcuOperation.trans="错误语法") ClearNumber=0; else data.addElement(strans); jlist.setListData(data); te
26、*tfield.setTe*t(CalcuOperation.trans); ClearNumber=0; private void btnBrackets1ActionPerformed(java.awt.event.ActionEvent evt) te*tfield.setTe*t(te*tfield.getTe*t()+"("); private void btnBrackets2ActionPerformed(java.awt.event.ActionEvent evt) te*tfield.setTe*t(te*tfield.getTe*t()+")&
27、quot;); private void jlistValueChanged(java*.swing.event.ListSelectionEvent evt) history.flag=String.valueOf(jlist.getSelectedValue(); te*tfield.setTe*t( history.flag.substring(history.flag.inde*Of("=")+1,history.flag.length(); ClearNumber=1; flag=1; private void utton11ActionPerformed(jav
28、a.awt.event.ActionEvent evt) if(ClearNumber=0|flag=1) String a=te*tfield.getTe*t().substring(0, te*tfield.getTe*t().inde*Of("."); te*tfield.setTe*t("转换为二进制为: "+String.valueOf(Integer.toBinaryString(Integer.parseInt(a); else if(te*tfield.getTe*t().inde*Of(".")!=-1) Strin
29、g a=te*tfield.getTe*t().substring(0, te*tfield.getTe*t().inde*Of("."); te*tfield.setTe*t("转换为二进制为: "+String.valueOf(Integer.toBinaryString(Integer.parseInt(a); else te*tfield.setTe*t("转换为二进制为:"+String.valueOf(Integer.toBinaryString(Integer.parseInt(te*tfield.getTe*t();
30、ClearNumber=0; private void utton12ActionPerformed(java.awt.event.ActionEvent evt) if(ClearNumber=0) String a=te*tfield.getTe*t().substring(0, te*tfield.getTe*t().inde*Of("."); te*tfield.setTe*t("转换为八进制为: "+String.valueOf(Integer.toOctalString(Integer.parseInt(a); else if(te*tfie
31、ld.getTe*t().inde*Of(".")!=-1) String a =te*tfield.getTe*t().substring(0, te*tfield.getTe*t().inde*Of("."); te*tfield.setTe*t("转换为八进制为: "+String.valueOf(Integer.toOctalString(Integer.parseInt(a); else te*tfield.setTe*t("转换为八进制为: "+String.valueOf(Integer.toOctalString(Integer.parseInt(te*tfield.getTe*t(); ClearNumber=0; private void utton13ActionPerformed(java.awt.event.ActionEvent evt) if(ClearNumber=0) String a=te*tfield.getTe*t().substring(0, te*tfield.getTe*t().length()-2); te*tfield.setTe*t(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广西2027职教高考三套英语模拟卷难度梯度、区分度对标2026版英语考试大纲完整分析
- 泵站课程设计郑州大学
- 丙酮与水的课程设计
- 基于机器学习的垃圾邮件分类器博客课程设计
- 插床机构课程设计数据
- 基于UWB的室内定位仿真案例课程设计
- 贝叶斯网络医疗数据挖掘设计课程设计
- 茶叶直播与制作课程设计
- 图像压缩DCT算法比较课程设计
- 编译原理课程设计王雷
- 2026年秋季学期泰山版(新教材)五年级信息科技上册教学计划
- 2026年秋季开学高中家庭会议家长会课件
- 2026秋人教PEP版(新教材)小学英语六年级上册(全册)教学设计(附目录p111)
- 4.6.1人体对外界环境的感知 课件(共31张)人教版(2024)八年级上册
- 2026山东发展集团招聘138人笔试参考题库及答案详解
- 《人工智能依赖的数据》教学设计-2026-2027学年苏科版(新教材)初中信息技术九年级全一册
- 部编版五年级上册语文全套预习单(8单元)
- 中国网安2026届校园招聘笔试历年典型考点题库附带答案详解
- 2026年人教版(2024)小学美术三年级上册【全册】教学设计(附目录)
- 安全生产法讲义
- (2026年)医疗废物规范化管理知识培训课件
评论
0/150
提交评论