版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 执法局休假计划书
- 高中语文第12课动物游戏之谜课件4新人教版必修
- 校企合作与实习基地建设计划
- 中建塔吊基础施工方案 范本
- 2023高考地理一轮复习-人口和城市含答案解析
- 提高营销团队执行力的计划
- 管理层财务沟通计划
- 生物知识分享展示计划
- 《卖炭翁》公开课教学设计
- 幼儿营养健康知识考核试题及答案
- 劳务派遣 投标方案(技术方案)
- 小学六年级数学100道题解分数方程
- 入团志愿书(2016版本)(可编辑打印标准A4) (1)
- 绝缘电阻测试记录表
- 证照保管使用责任书
- 与纳米硒第一发明人张劲松博士的对话
- 《 经济数学》课程教学大纲
- 沙盘游戏咨询师试题《高级》
- 蛔虫和环毛蚓比较解剖ppt课件
- 初中数学教师教学情况调查问卷
- 新材料界定与分类
评论
0/150
提交评论