




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告设计名称: 面向对象课程设计 选题名称: 计算器的设计与实现 姓 名: 学 号: 专业班级: 系 (院): 计算机工程学院 设计时间: 设计地点: 软件实验室、教室 成绩:指导教师评语: 签名: 年 月 日面向对象课程设计报告 第 16 页,共 16 页1课程设计目的面向对象程序设计是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力。2课程设计任务与要求:课程设计可选用NetBeans、Eclipse、JBuilder等作为开发平台以提高开发效率,尽可能熟练掌握其中一种集成开发环境。建议采用UML建模技术进行系统的分析设计,在Visio中画出系统用例图和类图,并将UML图复制到设计报告中。通过这次设计,要求掌握以下内容:1) 面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用2) 类、包、接口的定义与使用3) 常用工具类与算法的实现(数组、向量、字符串、链表)4) Java常用标准GUI组件及其事件处理5) Java的异常处理机制6) Java的数据库连接技术7) Java的多线程技术与动画制作8) Java的网络编程 3课程设计说明书1、需求分析(用例图)图1.用例图 课题:计算器的设计与实现 功能分析:此计算器有连续运算的功能,然而在很多人使用计算器时容易忘掉之前是用8*2呢还是6*2,于是这个计算器多出历史检验的功能,可以将以前的式子显示在下方,一边检验正确与否。 2、概要设计MultipleOperation类,用来实现连续运算的类MultipleOperation trans: String+operation (expr: String)Listl类,用来记录历史的类listStr: StringEstr: Stringflag: String+toString ()3详细设计MultipleOperationtrans: String+operation (expr: String)public class MultipleOperation String trans; public void operation(String expr) ScriptEngineManager manager=new ScriptEngineManager(); ScriptEngine engine =manager.getEngineByName(js); try trans= String.valueOf( engine.eval(expr); catch(Exception e) trans=错误语法; System.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.awt.event.*;import javax.swing.*;import java.util.*;public class NewJFrame extends javax.swing.JFrame int ClearNumber=1;/判定点击“=”后 点击数字按钮重置文本框 int I=0;/用来加入列表第一行的提示 int flag=0;/点击列表后 提取结果的判定源 judge ju; private boolean number = true; private String equalOp = =; / private CalculatorOp op = new CalculatorOp(); MultipleOperation CalcuOperation; list history; Vector data=new Vector(); / ActionListener numberListener = new NumberListener(); /* class NumberListener implements ActionListener * public void actionPerformed(ActionEvent event) * String digit = event.getActionCommand(); * if (number) * textfield.setText(digit); * number = false; * else * textfield.setText(textfield.getText() + digit); * * * * * ActionListener operatorListener = new OperatorListener(); * private void action() * number = true; * textfield.setText(); * equalOp = =; * op.setTotal(0); * * * class OperatorListener implements ActionListener * public void actionPerformed(ActionEvent e) * if (number) * action(); * textfield.setText(0); * else * number = true; * String displayText = textfield.getText(); * if (equalOp.equals(=) * op.A(); * op.setTotal(displayText); * history.D=; * * * else if (equalOp.equals(+) * op.add(displayText); * op.B(); * history.F=+; * else if (equalOp.equals(-) * op.subtract(displayText); * op.B(); * history.F=-; * else if (equalOp.equals() * op.multiply(displayText); * op.B(); * history.F=; * else if (equalOp.equals() * op.divide(displayText); * op.B(); * history.F=; * else if (equalOp.equals(N) * op.B(); * history.F=; * int A; * int B; * int trans=1; * String C; * A=Integer.parseInt(history.A); * B=Integer.parseInt(history.B); * op.B(); * for(int i=0;iB;i+) * trans *=A; * * op.power(String.valueOf(trans); * * textfield.setText( + op.getTotalString(); * equalOp = e.getActionCommand(); * * * */ public class judge public void pan() if(ClearNumber=0) textfield.setText(); /*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 += convertToNumber(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() * history.A=textfield.getText(); * * public void B() * history.B=textfield.getText(); * * * private double convertToNumber(String n) * return Double.parseDouble(n); * * */ /* * Creates new form NewJFrame */ public NewJFrame() initComponents(); history=new list(); textfield.setText(null); CalcuOperation=new MultipleOperation(); ju=new judge(); this.setLocationRelativeTo(null); this.setResizable(false); private void btnPointActionPerformed(java.awt.event.ActionEvent evt) textfield.setText(textfield.getText()+.); private void btnClearActionPerformed(java.awt.event.ActionEvent evt) textfield.setText(textfield.getText().substring(0, textfield.getText().length()-1); private void btnEqual1ActionPerformed(java.awt.event.ActionEvent evt) textfield.setText(); private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; textfield.setText(textfield.getText()+1); private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; textfield.setText(textfield.getText()+2); private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; textfield.setText(textfield.getText()+3); private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; textfield.setText(textfield.getText()+4); private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; textfield.setText(textfield.getText()+5); private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; textfield.setText(textfield.getText()+6); private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; textfield.setText(textfield.getText()+7); private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; textfield.setText(textfield.getText()+8); private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; textfield.setText(textfield.getText()+9); private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; textfield.setText(textfield.getText()+0); private void btnAddActionPerformed(java.awt.event.ActionEvent evt) textfield.setText(textfield.getText()+); ClearNumber=1; private void btnSubtractActionPerformed(java.awt.event.ActionEvent evt) textfield.setText(textfield.getText()+-); ClearNumber=1; private void btnMultiplyActionPerformed(java.awt.event.ActionEvent evt) ClearNumber=1; textfield.setText(textfield.getText()+*); private void btnDivideActionPerformed(java.awt.event.ActionEvent evt) textfield.setText(textfield.getText()+/); ClearNumber=1; private void btnEqualActionPerformed(java.awt.event.ActionEvent evt) / CalcuOperation; String strans=; history.Str=textfield.getText(); CalcuOperation.operation(textfield.getText(); textfield.setText(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; else data.addElement(strans); jlist.setListData(data); textfield.setText(CalcuOperation.trans); ClearNumber=0; private void btnBrackets1ActionPerformed(java.awt.event.ActionEvent evt) textfield.setText(textfield.getText()+(); private void btnBrackets2ActionPerformed(java.awt.event.ActionEvent evt) textfield.setText(textfield.getText()+); private void jlistValueChanged(javax.swing.event.ListSelectionEvent evt) history.flag=String.valueOf(jlist.getSelectedValue(); textfield.setText( history.flag.substring(history.flag.indexOf(=)+1,history.flag.length(); ClearNumber=1; flag=1; private void jButton11ActionPerformed(java.awt.event.ActionEvent evt) if(ClearNumber=0|flag=1) String a=textfield.getText().substring(0, textfield.getText().indexOf(.); textfield.setText(转换为二进制为: +String.valueOf(Integer.toBinaryString(Integer.parseInt(a); else if(textfield.getText().indexOf(.)!=-1) String a=textfield.getText().substring(0, textfield.getText().indexOf(.); textfield.setText(转换为二进制为: +String.valueOf(Integer.toBinaryString(Integer.parseInt(a); else textfield.setText(转换为二进制为:+String.valueOf(Integer.toBinaryString(Integer.parseInt(textfield.getText(); ClearNumber=0; private void jButton12ActionPerformed(java.awt.event.ActionEvent evt) if(ClearNumber=0) String a=textfield.getText().substring(0, textfield.getText().indexOf(.); textfield.setText(转换为八进制为: +String.valueOf(Integer.toOctalString(Integer.parseInt(a); else if(textfield.getText().indexOf(.)!=-1) String a =textfield.getText().substring(0, textfield.getText().indexOf(.); textfield.setText(转换为八进制为: +String.valueOf(Integer.toOctalString(Integer.parseInt(a); else textfield.setText(转换为八进制为: +String.valueOf(Integer.toOctalString(Integer.parseInt(textfield.getText(); ClearNumber=0; private void jButton13ActionPerformed(java.awt.event.ActionEvent evt) if(ClearNumber=0) String a=textfield.getText().substring(0, textfield.getText().length()-2); textfield.se
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 强化训练自考专业(小学教育)试题含答案(模拟题)
- 火电电力职业鉴定考前冲刺练习试题带答案详解(预热题)
- 2026届云南省巍山县化学九年级第一学期期末综合测试模拟试题含解析
- 星兴蓝天安全培训课件
- 2026届上海市文来中学化学九上期末监测试题含解析
- 口腔健康主题活动讲解
- 2026届四川省达州市开江县化学九年级第一学期期中经典模拟试题含解析
- 2026届抚顺市重点中学化学九上期中学业水平测试模拟试题含解析
- 高效煤粉锅炉安装指南
- 2026届莆田市重点中学九年级化学第一学期期中达标检测试题含解析
- 公司VI、SI设计内容选项
- YY/T 0698.2-2022最终灭菌医疗器械包装材料第2部分:灭菌包裹材料要求和试验方法
- 沪教牛津版小学英语五年级上册全册集体备课含教学计划及进度表
- 全国统一建筑安装工程工期定额
- 5.《秋天的怀念》课件+教学设计+视频朗读
- 上海破产管理人扩容考试参考题库(含答案)
- 涉河建设项目审查管理体会及探讨课件-涉河建设项目管理及建设方案审查技术标准课件
- DB44∕T 1168-2013 轮扣式钢管脚手架构件
- NMR有机氟谱课件
- 急诊科标本采集错误应急预案脚本
- 老港镇中心小学三年发展规划中期评估自评报告
评论
0/150
提交评论