java专业课程设计计算器的设计和实现.doc
《java专业课程设计计算器的设计和实现.doc》由会员分享,可在线阅读,更多相关《java专业课程设计计算器的设计和实现.doc(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.课程设计说明书 1、需求分析(用例图) 图1.用例图 课题:计算器设计和实现 功效分析:此计算器有连续运算功效,然而在大家使用计算器时轻易忘记之前是用8*2呢还是6*2,于是这个计算器多出历史检验功效,能够将以前式子显示在下方,一边检验正确是否。 2、概要设计 MultipleOperation类,用来实现连续运算类 MultipleOperation trans: String +operation (expr: String) Listl类,用来统计历史类 list Str: String Estr: String flag: String +toString () 3.具体设计 MultipleOperation trans: 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); } } } list Str:String Estr: String flag: 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<String> data=new Vector<String>(); // 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;i<B;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.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- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 专业课程 设计 计算器 实现
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文