收藏 分销(赏)

java专业课程设计计算器的设计和实现.doc

上传人:w****g 文档编号:2864474 上传时间:2024-06-07 格式:DOC 页数:15 大小:347.54KB
下载 相关 举报
java专业课程设计计算器的设计和实现.doc_第1页
第1页 / 共15页
java专业课程设计计算器的设计和实现.doc_第2页
第2页 / 共15页
java专业课程设计计算器的设计和实现.doc_第3页
第3页 / 共15页
java专业课程设计计算器的设计和实现.doc_第4页
第4页 / 共15页
java专业课程设计计算器的设计和实现.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、 淮 海 工 学 院 计算机工程学院课程设计汇报设计名称: 面向对象课程设计 选题名称: 计算器设计和实现 姓 名: 学 号: 专业班级: 系 (院): 计算机工程学院 设计时间: 设计地点: 软件试验室、教室 成绩:指导老师评语: 署名: 年 月 日1课程设计目标面向对象程序设计是一门实践性很强计算机专业基础课程,课程设计是学习完该课程后进行一次较全方面综合练习。其目标在于经过实践加深学生对面向对象程序设计理论、方法和基础知识了解,掌握使用Java语言进行面向对象设计基础方法,提升利用面向对象知识分析实际问题、处理实际问题能力。2课程设计任务和要求:课程设计可选择NetBeans、Eclip

2、se、JBuilder等作为开发平台以提升开发效率,尽可能熟练掌握其中一个集成开发环境。提议采取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 (expr: String)Listl类,用来统计历史类listStr: StringEstr: Stringflag: String+toString ()3具体设计MultipleOperationtrans: String+operation (expr: Strin

4、g)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:Strin

5、gEstr: 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

6、 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 dat

7、a=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

8、(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

9、 (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(-)

10、* 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; * S

11、tring 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) t

12、extfield.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

13、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.ge

14、tText(); * * 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 MultipleOperatio

15、n(); 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().s

16、ubstring(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 jButton2ActionP

17、erformed(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.Acti

18、onEvent 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(); Clear

19、Number=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(

20、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); pri

21、vate 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.ev

22、ent.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 s

23、trans=; 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=错误语法) ClearNu

24、mber=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.ActionEven

25、t 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 voi

26、d 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=te

27、xtfield.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 jButton12Actio

28、nPerformed(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().subst

29、ring(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.even

30、t.ActionEvent evt) if(ClearNumber=0) String a=textfield.getText().substring(0, textfield.getText().length()-2); textfield.setText(转换为十六进制为: +String.valueOf(Integer.toHexString(Integer.parseInt(a); else if(textfield.getText().indexOf(.)!=-1) String a =textfield.getText().substring(0, textfield.getText().indexOf(.); textfield.setText(转换为十六进制为: +String.va

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服