




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、淮海 工学院 计算机工程学院课程设计报告设计名称: 面向对象课程设计选题名称:计算器的设计与实现姓 名:Jg 学 号:2015123226专业班级:网络151系(院): 计算机工程学院设计时间: 2016.11.282016.12.10设计地点:软件实验室、教室成绩:指导教师评语:签名:1 .课程设计目的: 9-B n W 9-B FT HI «- FT n h* FT " h* Fr hB n! h* hB '! 一 wr H n 一 H h «U FT n W «-« n '! 面向对象程序设计是一门实践性很强的计算机专业基
2、础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力。同时复习本学期所学的知识以及运用于实践中去,将基本知识点进行稳定,使之更加熟悉知识点。通过本次学习了解以下的容:1)、类、包、接口的定义与使用2)、Java常用的标准 GUI组件及事件处理2 .课程设计任务与要求:设计一个能实现计算器功能的Java程序,可以进行加、减、乘、除(另外可适当加 上阶乘、正弦、余弦和指数)运算。中间可以加入一些自己的想法,比如界面如何
3、设计出一些特色,算法的实现是否可 以加入自己的想法,以上种种各样的想法以及构思。Java中提供了大量的类有一些问题的解决方法根本不用自己去从新定义,前人已经栽好了树我们只需要直接拿过来用就好 了,所以对于一些你想解决但觉得自己又解决不了的问题,可以上网上查查有没有类似 的已经有现成的函数拿过来用用。3.课程设计说明书、需求分析计算器大家都不陌生,使用量也是非常的大,所以一款操作方便结构丰富的计算器是非常有必要的,所以我们在这里设计出一款适合大众的计算器。MulDivAddSubJiechengCosSinMath.FunjiechengMath.Math.Math.sub()muladd()M
4、ath. div()Math. cos()Math. pow()Display。方法显示、概要设计Calculator类用来实现所要应用的各种功能:Calculator extends JFramepnll: JPanelpnl2: JPaneltextfild: JTextFieldgrd: GridLayoutb0: JButton<<Interface>>ActionListenerb1 :JButton b2: JButtonb3: JButton b4: JButton b5 :JButton b6: JButton b7: JButton b8: JButt
5、on b9: JButton bp: JButton bd: JButton badd:JButton bsub:JButton bmul: :JButton bdiv:JButton bcos: :JButton bsin:JButton bjiecheng:JButton bpow:JButton beql:JButton bclear:JButton num1:double num2:double end:boolean add: boolean sub: boolean mul: boolean div: boolean cos: boolean sin: boolean jieche
6、ng : boolean pow: booleanCalculator。Funjiecheng()actionPerformend(ActionEvent e)Display(int i)加上代码:public class Calculator extends JFrame implements ActionListenerJMenuBar mb;JMenu menu;JMenuItem t,t1,t2;JPanel pnl1,pnl2;JTextField textfild;GridLayout grd;JButton b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,bp,bd;
7、JButton badd,bsub,bmul,bdiv,bcos,bsin,bjiecheng,bpow,beql,bclear;String str;boolean end,add,sub,mul,div,cos,sin,jiecheng,pow;double num1,num2;Calculator。public void actionPerformed(ActionEvent e)else if(e.getSource()=bsub)else if(e.getSource()=bmul)else if (e.getSource()=bdiv) else if(e.getSource()=
8、bcos)end=true;解俞入结束else if(e.getSource()=bsin) else if(e.getSource()=bjiecheng) else if(e.getSource()=bpow) else if(e.getSource()=bclear)bd.setEnabled(true);textfild.setText("0");else if(e.getSource()=bd)str=textfild.getText();str+="."texfild.setText(str);bd.setEnabled(false);els
9、e if(e.getSource()=beql)bd.setEnabled(true);num2=Double.parseDouble(texfild.getText();/数字类型转化 if(add)num1=num1+num2;else if(sub)num1=num1-num2;else if(mul)num1=num1*num2;else if(div)if(num2=0) textfild.setText("输入非法!"); return;num1=num1/num2;else if(cos)num1=Math.cos(num1);else if(sin)num1
10、=Math.sin(num1);else if(jiecheng)num1=funjiecheng(num1);else if(pow)num1=Math.pow(num1,num2);/调用库函数中的 pow 方法texfild.setText(String.valueOf(num1);把所得结果显示在文本框 end=true;public double funjiecheng(double i)double num=1;if(i=0|i=1)num=1;elsenum=num*funjiecheng(i-1);return num;public void Display(int i)Str
11、ing s=null;s=String.valueOf(i);if(end)/如果数字输入结束,则将文本框置零,重新输入texfild.setText("0");end=false;if(texfild.getText().equals("0")/如果文本框的容为零,则覆盖文本框的容textfild.setText(s);elsestr=textfild.getText()+s;textfild.setText(str);Text类是对Calculator类的详细实现及其测试:Textmain(String a口)public class Textpub
12、lic static void main(String a)new Calculator。;三、详细设计加上代码:import java.awt*;import java.awt.event.*;import javax.swing.*;public class Calculator extends JFrame implements ActionListenerJMenuBar mb;JMenu menu;JMenuItem t,t1,t2;JPanel pnl1,pnl2;JTextField textfild;GridLayout grd;JButton b0,b1,b2,b3,b4,b
13、5,b6,b7,b8,b9,bp,bd;JButton badd,bsub,bmul,bdiv,bcos,bsin,bjiecheng,bpow,beql,bclear;String str;boolean end,add,sub,mul,div,cos,sin,jiecheng,pow;double num1,num2;Calculator。super("简单的计算器”);grd=new GridLayout(6,4,6,6);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);pnl1=new JPanel(grd);pnl2=
14、new JPanel(grd);Container cp=this.getContentPane();姓意 getContentPanecp.add(pnl1,"North");cp.add(pnl2,"Center");pnl1.setBackground(Color.orange);pnl2.setBackground(Color.green);this.setBounds(400,500,450,240);textfild=new JTextField("0",33);textfild.setHorizontalAlignmen
15、t(JTextField.CENTER);mb=new JMenuBar();menu=new JMenu('说明书");t=new JMenuItem("此计算器使用方便,可以实现连续不同优先级的运算。当进 行一次运算后,");t1=new JMenuItem("再点击数字按钮则开始新一轮的运算,如果在是运算后直接 点运算符号(加减等)");t2=new JMenuItem("则会直接继续上次的结果进行运算。");menu.add(t);menu.add(t1);menu.add(t2);mb.add(menu);
16、b0=new JButton("0");b1=new JButton("1");b2=new JButton("2");b3=new JButton("3");b4=new JButton("4");b5=new JButton("5");b6=new JButton("6");b7=new JButton("7");b8=new JButton("8");b9=new JButton("9");
17、bd=new JButton(".");bdiv=new JButton(" +");bdiv.setForeground(Color.red);bmul=new JButton(" x");bmul.setForeground(Color.red);badd=new JButton("+");badd.setForeground(Color.red);bsub=new JButton("-");bsub.setForeground(Color.red);bcos=new JButton(&qu
18、ot;Cos");bcos.setForeground(Color.blue);bsin=new JButton("Sin");bsin.setForeground(Color.blue);bjiecheng=new JButton("n!");bjiecheng.setForeground(Color.blue);bclear=new JButton("C");bpow=new JButton("xAy");bpow.setForeground(Color.blue);beql=new JButton(
19、"=");pnll.add(mb);pnll.add(textfild);pnl2.add(b9);b9.addActionListener(this);pnl2.add(b8);b8.addActionListener(this);pnl2.add(b7);b7.addActionListener(this);pnl2.add(bdiv);bdiv.addActionListener(this);pnl2.add(b6);b6.addActionListener(this);pnl2.add(b5);b5.addActionListener(this);pnl2.add(
20、b4);b4.addActionListener(this);pnl2.add(bmul);bmul.addActionListener(this);pnl2.add(b3);b3.addActionListener(this);pnl2.add(b2);b2.addActionListener(this);pnl2.add(b1);bl.addActionListener(this);pnl2.add(badd);badd.addActionListener(this);pnl2.add(bsub);bsub.addActionListener(this);pnl2.add(b0);bO.a
21、ddActionListener(this);pnl2.add(bd);bd.addActionListener(this);pnl2.add(bjiecheng);bjiecheng.addActionListener(this);pnl2.add(badd);badd.addActionListener(this);pnl2.add(bsin);bsin.addActionListener(this);pnl2.add(bcos);bcos.addActionListener(this);pnl2.add(bpow);bpow.addActionListener(this);pnl2.ad
22、d(bclear);bclear.addActionListener(this);pnl2.add(beql);this.setVisible(true);public void actionPerformed(ActionEvent e)if(e.getSource()=b0)Display(0);else if(e.getSource()=b1)Display(1);else if(e.getSource()=b2)Display(2);else if(e.getSource()=b3)Display(3);else if(e.getSource()=b4)Display(4);else
23、if(e.getSource()=b5)Display(5);else if(e.getSource()=b6)Display(6);else if(e.getSource()=b7)Display(7);else if(e.getSource()=b8)Display(8);else if(e.getSource()=b9)Display(9);else if(e.getSource()=badd)add=true;sub=false;个字符并转化成个字符并转化成div=false;cos=false;sin=false;jiecheng=false;pow=false;bd.setEnab
24、led(true);num1=Double.parseDouble(texfild.getText();接收第 double 型end=true;解俞入结束else if(e.getSource()=bsub)add=false;sub=true;mul=false;div=false;cos=false;sin=false;jiecheng=false;pow=false;bd.setEnabled(true);num1=Double.parseDouble(texfild.getText();接收第 double 型end=true;解俞入结束else if(e.getSource()=b
25、mul)add=false;sub=false;mul=true;div=false;double 型cos=false;sin=false;jiecheng=false;pow=false;bd.setEnabled(true);num1=Double.parseDouble(texfild.getText();接收第一个字符并转化成end=true;解俞入结束else if (e.getSource()=bdiv)add=false;sub=false;mul=false;div=true;cos=false;sin=false;jiecheng=false;pow=false;num1=
26、Double.parseDouble(texfild.getText();接收第一个字符并转化成double 型end=true;解俞入结束else if(e.getSource()=bcos)add=false;sub=false;mul=false;div=false;cos=true;sin=false;jiecheng=false;pow=false;bd.setEnabled(true);num1=Double.parseDouble(texfild.getText();接收第一个字符并转化成double 型end=true;解俞入结束else if(e.getSource()=bs
27、in)add=false;sub=false;mul=false;div=false;cos=false;sin=true;jiecheng=false;pow=false;bd.setEnabled(true);num1=Double.parseDouble(texfild.getText();接收第一个字符并转化成double 型end=true;解俞入结束else if(e.getSource()=bjiecheng)add=false;sub=false;mul=false;div=false;cos=false;sin=false;jiecheng=true;pow=false;bd
28、.setEnabled(true);num1=Double.parseDouble(texfild.getText();接收第一个字符并转化成 double 型end=true;解俞入结束else if(e.getSource()=bpow)add=false;sub=false;mul=false;div=false;cos=false;sin=false;jiecheng=false;pow=true;bd.setEnabled(true);num1=Double.parseDouble(texfild.getText();接收第一个字符并转化成 doubleend=true;解俞入结束e
29、lse if(e.getSource()=bclear)bd.setEnabled(true);textfild.setText("0");else if(e.getSource()=bd)str=textfild.getText();str+="."textfild.setText(str);bd.setEnabled(false);else if(e.getSource()=beql)bd.setEnabled(true);num2=Double.parseDouble(texfild.getText();/数字类型转化 if(add)num1=num1+num2;else if(sub)num1=num1-num2;else if(mul)num1=num1*num2;else if(div)if(num2=0) textfild.setText("输入非法!"); return;num1=num1/num2;else if(cos)num1=Math.cos(num1);else if(sin)num1=Math.sin(num1);else if(jie
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 14687:2025 EN Hydrogen fuel quality - Product specification
- 2025年度大型企业运营总监职位聘用合同书
- 2025年度旅游项目开发贷款合同范本
- 2025年度体育产业运动员雇佣合同范本
- 2025年度养猪场附属设施建筑承包服务协议
- 2025高考作文预测:“让”与“不让”
- 秋季学习资源整合计划
- 生物网络教学资源建设计划
- 制定餐饮行业安保措施计划
- 幼儿园创新课程的开发与实践计划
- 中国地方政府融资平台行业市场深度分析及投资前景展望报告
- 2025年广东中考物理学科模拟试卷(广东专属)
- 光伏安全施工方案范本
- 2025年大庆职业学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 2025上半年江苏省南通如东事业单位招聘7人易考易错模拟试题(共500题)试卷后附参考答案
- 山东省济南市2024-2024学年高三上学期1月期末考试 地理 含答案
- 2025年湘教版二年级美术下册计划与教案
- 【课件】液体的压强(课件)-2024-2025学年人教版物理八年级下册
- 发酵馒头课件教学课件
- 2024-2025学年初中信息技术(信息科技)七年级下册苏科版(2023)教学设计合集
- 《心系国防 强国有我》 课件-2024-2025学年高一上学期开学第一课国防教育主题班会
评论
0/150
提交评论