欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    java课程设计报告范例计算器.doc

    • 资源ID:2387095       资源大小:292.50KB        全文页数:22页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    java课程设计报告范例计算器.doc

    2011-2012学年第二学期Java程序设计课程设计报告选题: 计算器 学号: 姓名: 班级: 指导教师: 年 月 日目 录目 录I1需求分析11.1计算器的基本功能:11.1.1加法运算:用数字按钮和“+”按钮进行运算;11.1.2减法运算:用数字按钮和“-”按钮进行运算;11.1.3乘法运算:用数字按钮和“*”按钮进行运算;11.1.4除法运算:用数字按钮和“/”按钮进行运算;11.2退格键和清零键: 用”Backspace”和”C”按钮实现;11.3计算器的科学计算方法:11.3.1开方:用数字按钮和“Sqrt”按钮进行运算;11.3.2百分比:用数字按钮和“%”按钮进行运算;11.3.3求倒数:用数字按钮和“1/x”按钮进行运算;12设计22.1用户界面设计22.1.1该计算器程序的设计:用户界面包括Swing组件,不过程序中大都使用的是AWT组件. import java.awt.*;22.1.2在AWT组件,22.1.3这个界面设计中包含了两个接口,单击事件监听器接ActionListener口和键盘事件监听器接口(KeyListener).32.1.4程序设计中,使用了布局管理:42.2概要设计42.2.1Calculator类中的类名是Calculator.它的功能是使用图形用户来实现计算器的界面设计和运算功能以及一些科学运算方法.42.2.2main主类.中调用了cal.display来实现计算器的功能 .43实现44测试164.1实现加法运算:4+12=16164.2实现减法运算:22-11=11174.3实现乘法运算:3*9=27174.4实现除法运算:64/32=2184.5用”C实现清零功能:184.6用”Backspace”实现退格功能:194.7求倒数:1/4=0.25195总结和体会201 需求分析 (该部分主要阐述所要实现的程序具体具有什么样的功能,要细化,可以用图表作为辅助描述手段)该计算器程序除了具备加减乘除基本功能外,还有清零键C和退格键Backspace,和一些部分的科学计算方法,包括开方、求倒、百分比,程序里面也写了键盘事件监听器接口,不过由于时间仓促,还没能设计出来,所以该计算器不能实现此功能。 BackspaceCECMC789 /SqrtMR 45 6*%MS123-1/xM+0+/-.+ = 1.1 计算器的基本功能:1.1.1 加法运算:用数字按钮和“+”按钮进行运算;1.1.2 减法运算:用数字按钮和“-”按钮进行运算;1.1.3 乘法运算:用数字按钮和“*”按钮进行运算;1.1.4 除法运算:用数字按钮和“/”按钮进行运算;1.2 退格键和清零键: 用”Backspace”和”C”按钮实现;1.3 计算器的科学计算方法:1.3.1 开方:用数字按钮和“Sqrt”按钮进行运算;1.3.2 百分比:用数字按钮和“%”按钮进行运算;1.3.3 求倒数:用数字按钮和“1/x”按钮进行运算; 2 设计(该部分主要要说明,在使用Java实现该程序前考虑的内容,主要包括下面两部分:用户界面设计和概要设计(这部分可简单看作是类设计)。2.1 用户界面设计(用图或文字阐述你的界面如何设计,如:包括哪些部分,使用什么样的布局管理器等)2.1.1 该计算器程序的设计:用户界面包括Swing组件,不过程序中大都使用的是AWT组件. import java.awt.*;import java.awt.event.*;import javax.swing.*;2.1.2 在AWT组件,(1) 使用了面板和按钮: Panel p1,p2,p3,p4,p5,p6;Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0; Button bDiv,bSqrt,bMulti,bMinus,bPercent,bPlus,bReciprocal,bEqual,bDot,bNegative; Button bBackspace,bCE,bC,bMR,bMS,bMC,bM;(2) 界面设计也包括了AWT的委托事件模型,该程序设计在java.awt.event包中定义了窗口事件类public void windowClosing(WindowEvent e) System.exit(0); 单击事件类.public void actionPerformed(ActionEvent e) /key 0 to 9 if(this.keyAvailable && e.getActionCommand().length()=1 && e.getActionCommand().compareTo("0")>=0 && e.getActionCommand().compareTo("9")<=0) if(this.isTempNowInput) this.dNowInput=0; this.isTempNowInput=false; this.nBitsNum+; if(this.alreadyHaveDot=false) this.dNowInput=this.dNowInput*10+Double.parseDouble(e.getActionCommand(); else double temp=Double.parseDouble(e.getActionCommand(); for(int i=this.n;i<0;i+) temp*=0.1; this.dNowInput+=temp; this.n-; this.tf1.setText(Double.toString(this.dNowInput); 在程序中也注册了事件监听器,里面包含了事件处理方法./*add(b1); add(b2); add(b3); add(b4); add(b5); add(b6); add(b7); add(b8); add(b9); add(b0);*/ b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); b7.addActionListener(this); b8.addActionListener(this); b9.addActionListener(this); b0.addActionListener(this);2.1.3 这个界面设计中包含了两个接口,单击事件监听器接ActionListener口和键盘事件监听器接口(KeyListener). public class Calculator extends WindowAdapter implements ActionListener, KeyListener 2.1.4 程序设计中,使用了布局管理:(1) 用流布局管理器(FlowLayout)设置面板p4=new Panel(new FlowLayout(); p5=new Panel(new FlowLayout(); p6=new Panel(new FlowLayout();(2) 用边布局管理器(BorderLayout)设置计算器容器北西组件的大小: f.setLayout(new BorderLayout(4,4); f.add(p5,BorderLayout.NORTH); f.add(p4,BorderLayout.CENTER); f.add(p3,BorderLayout.WEST);(3) 用网格布局管理器(GridLayout)设置面板p1=new Panel(new GridLayout(1,3,5,5); p2=new Panel(new GridLayout(4,5,5,5); p3=new Panel(new GridLayout(5,1,5,5);2.2 概要设计该部分主要阐述整个程序包括哪些类,各个类的类名、功能,以及各类中具有什么样的public成员方法(方法访问修饰符、返回值类型、名字、参数列表、方法的功能),以及这些类的对象之间有什么样的关系(或类和类之间有什么关系,即,函数调用关系)。计算器的整个程序包括:Calculator类和一个main主类.2.2.1 Calculator类中的类名是Calculator.它的功能是使用图形用户来实现计算器的界面设计和运算功能以及一些科学运算方法.(1) 在Calculator类中具有设置计算器界面布局和颜色的成员方法,使用了两个接口单击事件监听器接ActionListener口和键盘事件监听器接口(KeyListener).(2) 返回值类型是布尔类型.2.2.2 main主类.中调用了cal.display来实现计算器的功能 . 3 实现(程序的实现代码)import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator extends WindowAdapter implements ActionListener, KeyListener double dResult=0; double dNowInput=0; double dMemory; int n=0; int nOperation=1; int nBitsNum=0; char ch; boolean alreadyHaveDot=false; boolean keyAvailable=true; boolean alreadyClickedEqueal=false; boolean isTempNowInput=false; JFrame f; Panel p1,p2,p3,p4,p5,p6; TextField tf1,tf2; Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0; Button bDiv,bSqrt,bMulti,bMinus,bPercent,bPlus,bReciprocal,bEqual,bDot,bNegative; Button bBackspace,bCE,bC,bMR,bMS,bMC,bM; public void display() f=new JFrame("Calculator"); f.setForeground(Color.BLUE); f.setSize(290,223); f.setLocation(220,220); f.setBackground(Color.PINK); f.setResizable(false); f.setLayout(new BorderLayout(4,4); p1=new Panel(new GridLayout(1,3,5,5); p2=new Panel(new GridLayout(4,5,5,5); p3=new Panel(new GridLayout(5,1,5,5); p4=new Panel(new FlowLayout(); p5=new Panel(new FlowLayout(); p6=new Panel(new FlowLayout(); p4.add(p1); p4.add(p2); tf1=new TextField(35); tf1.setText("0."); tf1.setEditable(false); p5.add(tf1); f.add(p5,BorderLayout.NORTH); f.add(p4,BorderLayout.CENTER); f.add(p3,BorderLayout.WEST); tf1.addKeyListener(this); b1=new Button("1"); b2=new Button("2"); b3=new Button("3"); b4=new Button("4"); b5=new Button("5"); b6=new Button("6"); b7=new Button("7"); b8=new Button("8"); b9=new Button("9"); b0=new Button("0"); b1.setForeground(Color.BLUE); b2.setForeground(Color.BLUE); b3.setForeground(Color.BLUE); b4.setForeground(Color.BLUE); b5.setForeground(Color.BLUE); b6.setForeground(Color.BLUE); b7.setForeground(Color.BLUE); b8.setForeground(Color.BLUE); b9.setForeground(Color.BLUE); b0.setForeground(Color.BLUE); /*add(b1); add(b2); add(b3); add(b4); add(b5); add(b6); add(b7); add(b8); add(b9); add(b0);*/ b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); b7.addActionListener(this); b8.addActionListener(this); b9.addActionListener(this); b0.addActionListener(this); b1.addKeyListener(this); b2.addKeyListener(this); b3.addKeyListener(this); b4.addKeyListener(this); b5.addKeyListener(this); b6.addKeyListener(this); b7.addKeyListener(this); b8.addKeyListener(this); b9.addKeyListener(this); b0.addKeyListener(this); bDiv=new Button("/"); bSqrt=new Button("sqrt"); bMulti=new Button("*"); bMinus=new Button("-"); bPercent=new Button("%"); bPlus=new Button("+"); bReciprocal=new Button("1/x"); bEqual=new Button("="); bDot=new Button("."); bNegative=new Button("+/-"); bDiv.setForeground(Color.RED); bSqrt.setForeground(Color.RED); bMulti.setForeground(Color.RED); bMinus.setForeground(Color.RED); bPercent.setForeground(Color.RED); bPlus.setForeground(Color.RED); bReciprocal.setForeground(Color.RED); bEqual.setForeground(Color.RED); bDot.setForeground(Color.RED); bNegative.setForeground(Color.RED); /*add(bDiv); add(bSqrt); add(bMulti); add(bMinus); add(bPercent); add(bPlus); add(bReciprocal); add(bEqual); add(bDot); add(bNegative);*/ bDiv.addActionListener(this); bSqrt.addActionListener(this); bMulti.addActionListener(this); bMinus.addActionListener(this); bPercent.addActionListener(this); bPlus.addActionListener(this); bReciprocal.addActionListener(this); bEqual.addActionListener(this); bDot.addActionListener(this); bNegative.addActionListener(this); bDiv.addKeyListener(this); bSqrt.addKeyListener(this); bMulti.addKeyListener(this); bMinus.addKeyListener(this); bPercent.addKeyListener(this); bPlus.addActionListener(this); bReciprocal.addKeyListener(this); bEqual.addKeyListener(this); bDot.addKeyListener(this); bNegative.addKeyListener(this); p2.add(b7); p2.add(b8); p2.add(b9); p2.add(bDiv); p2.add(bSqrt); p2.add(b4); p2.add(b5); p2.add(b6); p2.add(bMulti); p2.add(bPercent); p2.add(b1); p2.add(b2); p2.add(b3); p2.add(bMinus); p2.add(bReciprocal); p2.add(b0); p2.add(bNegative); p2.add(bDot); p2.add(bPlus); p2.add(bEqual); bBackspace=new Button("Backspace"); bCE=new Button("CE"); bC=new Button("C"); bBackspace.setForeground(Color.GREEN); bCE.setForeground(Color.BLACK); bC.setForeground(Color.BLACK); /*add(bBackspace); add(bCE); add(bC);*/ bBackspace.addActionListener(this); bCE.addActionListener(this); bC.addActionListener(this); bBackspace.addKeyListener(this); bCE.addKeyListener(this); bC.addKeyListener(this); p1.add(bBackspace); p1.add(bCE); p1.add(bC); tf2=new TextField(2); tf2.setEnabled(false); tf2.setBackground(Color.PINK); bMC=new Button("MC"); bMR=new Button("MR"); bMS=new Button("MS"); bM=new Button("M+"); bMC.setForeground(Color.BLUE); bMR.setForeground(Color.BLUE); bMS.setForeground(Color.BLUE); bM.setForeground(Color.BLUE); tf2.addKeyListener(this); /*add(MC); add(MR); add(MS); add(M);*/ bMC.addActionListener(this); bMR.addActionListener(this); bMS.addActionListener(this); bM.addActionListener(this); bMC.addKeyListener(this); bMR.addKeyListener(this); bMS.addKeyListener(this); bM.addKeyListener(this); p6.add(tf2); p3.add(p6); p3.add(bMC); p3.add(bMR); p3.add(bMS); p3.add(bM); f.setVisible(true); f.addWindowListener(this); public void actionPerformed(ActionEvent e) /key 0 to 9 if(this.keyAvailable && e.getActionCommand().length()=1 && e.getActionCommand().compareTo("0")>=0 && e.getActionCommand().compareTo("9")<=0) if(this.isTempNowInput) this.dNowInput=0; this.isTempNowInput=false; this.nBitsNum+; if(this.alreadyHaveDot=false) this.dNowInput=this.dNowInput*10+Double.parseDouble(e.getActionCommand(); else double temp=Double.parseDouble(e.getActionCommand(); for(int i=this.n;i<0;i+) temp*=0.1; this.dNowInput+=temp; this.n-; this.tf1.setText(Double.toString(this.dNowInput); / key dot if(this.keyAvailable && e.getActionCommand()=".") if(this.alreadyHaveDot=false) this.nBitsNum+; this.alreadyHaveDot=true; this.n=-1; /key "+","-","*","/" if(this.keyAvailable && e.getActionCommand()="+" | e.getActionCommand()="-" | e.getActionCommand()="*" | e.getActionCommand()="/") if(this.alreadyClickedEqueal) this.dNowInput=this.dResult; this.isTempNowInput=true; else switch(this.nOperation) case 1: this.dResult+=this.dNowInput; break; case 2: this.dResult-=this.dNowInput; break; case 3: this.dResult*=this.dNowInput; break; case 4: if(this.dNowInput=0) tf1.setText("除数不能为零"); this.keyAvailable=false; else this.dResult=this.dResult/this.dNowInput; if(this.keyAvailable)tf1.setText(Double.toString(this.dResult); this.dNowInput=0; if(e.getActionCommand()="+") this.nOperation=1; if(e.getActionCommand()="-") this.nOperation=2; if(e.getActionCommand()="*") this.nOperation=3; if(e.getActionCommand()="/") this.nOperation=4; this.nBitsNum=0; this.alreadyClickedEqueal=false; / key "+/-"

    注意事项

    本文(java课程设计报告范例计算器.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开