java专业课程设计计算器的制作.doc
《java专业课程设计计算器的制作.doc》由会员分享,可在线阅读,更多相关《java专业课程设计计算器的制作.doc(16页珍藏版)》请在咨信网上搜索。
河北工程大学科信学院 JAVA课程设计说明书 ——————计算器设计 专业班级 班 课设题目 学生姓名 学生学号 指导老师 提交日期 2 一、内容摘要: 利用本学期所学知识设计一个能够完成简单四则运算计算器;以Myeclipse作为开发环境,结合之前所学Java基础知识共同完成。该计算器计算结果保留了两位小数;这里简单介绍设计思想:结构出一个界面,然后往面板上粘贴各个组件,包含按钮、标签、文本框等。 二、设计目标: 经过课程设计加深对Java程序设计了解,掌握Java程序开发基础方法,把课堂上所学到多个单元串到一起,提升处理问题和分析问题能力,具体表现在以下多个方面: 1、 了解Java开发通常应用程序方法和步骤; 2、 深入强化类定义,掌握类继承、接口; 3、 熟练掌握变量、数组应用; 4、 熟悉图形用户界面中常见组件使用,掌握事件处理机制; 5、 了解数据库连接技术JDBC、网络编程和多线程机制。 三、设计内容: 3.1 需求分析 3.1.1 计算器基础功效: 加法运算:用“+”按钮进行运算; 减法运算:用“-”按钮进行运算; 乘法运算:用 “*”按钮进行运算; 除法运算:用 “/”按钮进行运算; 清零键: 用”清空”按钮实现; 3.2 用户界面设计 该计算器程序设计:用户界面包含Swing组件,不过程序中大全部使用是AWT组件. import java.awt.*; 在AWT组件中: (1)、使用了面板和按钮: mianban 1,2,3; private JPanel mianBan1 = new JPanel(); //面板1存放,窗口、和清空按钮 chuangKou.add(mianBan1,BorderLayout.NORTH); //面板1,存放窗口北边private JPanel mianBan2 = new JPanel(); //存放其它按钮 mianBan2.add(s7); mianBan2.add(s8); mianBan2.add(s9); mianBan2.add(jia); mianBan2.add(s4); mianBan2.add(s5); mianBan2.add(s6); mianBan2.add(jian); mianBan2.add(s1); mianBan2.add(s2); mianBan2.add(s3); mianBan2.add(cheng); mianBan2.add(s0); mianBan2.add(dian); mianBan2.add(deng); mianBan2.add(chu); mianBan2.setLayout(new GridLayout(4,4)); //面板2布局模式 Button s0,s1,s2,s3,s4,s5,s6,s7,s8,s9; Button jia,jian,cheng,chu; Button 清空, = , . ; private JPanel mianBan3 = new JPanel(); //存放标签 JLabel biaoQian0 = new JLabel("----------------------- 屠式计算器------------------------"); //标签 mianBan3.add(biaoQian0); chuangKou.add(mianBan3,BorderLayout.SOUTH); //在窗口南边 (2)、界面属性: chuangKou.setVisible(true); //可见 chuangKou.pack(); //把容器包起来 chuangKou.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //直接退出 shuRuKuang.setHorizontalAlignment(JTextField.RIGHT ); //编辑框文字右对齐 //chuangKou.setResizable(false); //不能调大小 chuangKou.setLocation(500,300); //坐标 chuangKou.setSize(330,250); //大小 (3)、给按钮添加背景颜色: jia.setBackground(new Color(255,50,50)); jian.setBackground(new Color(255,50,50)); cheng.setBackground(new Color(255,50,50)); chu.setBackground(new Color(255,50,50)); dian.setBackground(new Color(60,200,50)); deng.setBackground(new Color(60,200,50)); s0.setBackground(new Color(60,200,50)); s1.setBackground(new Color(60,200,50)); s2.setBackground(new Color(60,200,50)); s3.setBackground(new Color(60,200,50)); s4.setBackground(new Color(60,200,50)); s5.setBackground(new Color(60,200,50)); s6.setBackground(new Color(60,200,50)); s7.setBackground(new Color(60,200,50)); s8.setBackground(new Color(60,200,50)); s9.setBackground(new Color(60,200,50)); qingKong.setBackground(new Color(200,250,100)); //清除按钮颜色 mianBan1.setBackground(new Color(200,200,255)); //mianBan1颜色 mianBan3.setBackground(new Color(200,200,255)); //mianBan2颜色 (4)、事件监听: dian.addMouseListener(new OperationMouseListener()); deng.addMouseListener(new OperationMouseListener()); a、注册四则运算监听 jia.addMouseListener(new YunSuanJianTing()); jian.addMouseListener(new YunSuanJianTing()); cheng.addMouseListener(new YunSuanJianTing()); chu.addMouseListener(new YunSuanJianTing()); b、注册数字监听事件 s0.addMouseListener(new ShuZiJianTing()); s1.addMouseListener(new ShuZiJianTing()); s2.addMouseListener(new ShuZiJianTing()); s3.addMouseListener(new ShuZiJianTing()); s4.addMouseListener(new ShuZiJianTing()); s5.addMouseListener(new ShuZiJianTing()); s6.addMouseListener(new ShuZiJianTing()); s7.addMouseListener(new ShuZiJianTing()); s8.addMouseListener(new ShuZiJianTing()); s9.addMouseListener(new ShuZiJianTing()); c、清空监听器: qingKong.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) shuRuKuang.setText(""); //清空编辑框 d、数字按钮监听器: private class ShuZiJianTing implements MouseListener public void mouseClicked(MouseEvent e) if(shuRuKuang.getText().trim().equals("0")) //假如文本框已经是0,结果还是0 shuRuKuang.setText(((JButton)e.getSource()).getText().trim()); shuRuKuang.setText(shuRuKuang.getText().concat(((JButton)e.getSource()).getText().trim())); public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) public void mousePressed(MouseEvent e) public void mouseReleased(MouseEvent e) e、运算按钮监听器: private class YunSuanJianTing implements MouseListener //假如输入是运算符号,保留第一个结果和运算符号 public void mouseClicked(MouseEvent e) num1 = shuRuKuang.getText().trim(); shuRuKuang.setText(""); operator = ((JButton)e.getSource()).getText().trim(); public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) public void mousePressed(MouseEvent e) public void mouseReleased(MouseEvent e) f、小数点、等号监听器: private class OperationMouseListener implements MouseListener public void mouseClicked(MouseEvent e) if(e.getSource() == dian) String text = shuRuKuang.getText().trim(); //假如按了小数点,假如文本框已经有小数点,不做任何操作,不然在结果后面加上小数点 if(text.indexOf(".") == -1){ shuRuKuang.setText(text.concat(".")); } else if(e.getSource() == deng){ //假如是等号 if(!operator.trim().equals("")){ if(!shuRuKuang.getText().trim().equals("")){ double result = 0D; if(operator.equals("+")){//实施加法运算 result = Double.parseDouble(num1) + Double.parseDouble(shuRuKuang.getText().trim()); }else if(operator.equals("-")){//减法运算 result = Double.parseDouble(num1) - Double.parseDouble(shuRuKuang.getText().trim()); }else if(operator.equals("*")){//乘法运算 result = Double.parseDouble(num1) * Double.parseDouble(shuRuKuang.getText().trim()); }else if(operator.equals("/")){//除法运算 result = Double.parseDouble(num1) / Double.parseDouble(shuRuKuang.getText().trim()); } //格式化最终止果,保留两位小数点 shuRuKuang.setText(new DecimalFormat("0.00").format(result)); 四、测试 4.1加法运算(实现49+57=106): 4.2减法运算(实现48-79= -31): 4.3乘法运算(684*211=144324): 4.4除法运算(251/51=4.92): 4.5清空:任何情况下鼠标点击清空按钮全部能够进行清空操作 4.6计算器整界面运行效果: 五、设计缺点: 5.1该计算器只能进行简单加、减、乘、除四则运算,不能进行科学计算比如:幂运算、对数运算、三角函数运算等。 5.2 在进行运算过程中,输入数值以后当按下加减乘除任意一个按钮时数值会自动清空,这带来不便之处于于有时候会忘记输入值。 5.3 在不用鼠标情况下不能对该计算器进行操作,把键盘上小键盘各个按键和界面各个按钮相对应起来操作会愈加方便。 六、总结体会: 做完这次程序设计,我学到了很多知识,我选是计算机程序,大家全部说计算机程序比较简单。可我认为即使简单,但也有很多不清楚地方。尤其是刚开始编写程序时候,好多地方全部犯错,做着总是比想象难。学习JAVA六个月了,没学习前只是听说过,现在对JAVA也有了部分更深入了解。比起C语言,JAVA语言确实优异了很多。 计算器设计,首先就是考虑图形界面怎么分布。在头脑里大约有了思绪。我想设计一个计算器除了能够进行基础加减乘除外还含有求平方、倒数和其它之类部分功效。可到最终我也只是弄出了加减乘除。 我们用了十天时间做程序设计,十天即使不长,但我收获挺大。把以前好多不清楚知识在老师指导下,我慢慢懂了很多。用了好七天时间勉强做了一个程序出来。 经过这次课程设计,我体会了JAVA广泛利用性。因为时间仓促还有很多有待完善地方,在以后学习中,我会加倍努力去做好。 附:程序全部代码 import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.text.DecimalFormat; public class JiSuanQi { public JFrame chuangKou = new JFrame("计算器"); private JPanel mianBan1 = new JPanel(); private JPanel mianBan2 = new JPanel(); private JPanel mianBan3 = new JPanel(); private JTextField shuRuKuang = new JTextField(20); private JButton qingKong = new JButton("清 空"); private JButton jia = new JButton("+"); private JButton jian = new JButton("-"); private JButton cheng = new JButton("*"); private JButton chu = new JButton("/"); private JButton dian = new JButton("."); private JButton deng = new JButton("="); private JButton s0 = new JButton("0"); private JButton s1 = new JButton("1"); private JButton s2 = new JButton("2"); private JButton s3 = new JButton("3"); private JButton s4 = new JButton("4"); private JButton s5 = new JButton("5"); private JButton s6 = new JButton("6"); private JButton s7 = new JButton("7"); private JButton s8 = new JButton("8"); private JButton s9 = new JButton("9"); private String num1 = ""; private String operator = ""; public static void main(String[] args) { new JiSuanQi(); } public JiSuanQi(){ mianBan1.add(shuRuKuang); mianBan1.add(qingKong); chuangKou.add(mianBan1,BorderLayout.NORTH); mianBan2.add(s7); mianBan2.add(s8); mianBan2.add(s9); mianBan2.add(jia); mianBan2.add(s4); mianBan2.add(s5); mianBan2.add(s6); mianBan2.add(jian); mianBan2.add(s1); mianBan2.add(s2); mianBan2.add(s3); mianBan2.add(cheng); mianBan2.add(s0); mianBan2.add(dian); mianBan2.add(deng); mianBan2.add(chu); mianBan2.setLayout(new GridLayout(4,4)); chuangKou.add(mianBan2,BorderLayout.CENTER); JLabel biaoQian0 = new JLabel("-----------屠式计算器----------"); mianBan3.add(biaoQian0); chuangKou.add(mianBan3,BorderLayout.SOUTH); chuangKou.setVisible(true); chuangKou.pack(); chuangKou.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); shuRuKuang.setHorizontalAlignment(JTextField.RIGHT ); chuangKou.setLocation(500,300); chuangKou.setSize(330,250); jia.setBackground(new Color(255,50,50)); jian.setBackground(new Color(255,50,50)); cheng.setBackground(new Color(255,50,50)); chu.setBackground(new Color(255,50,50)); dian.setBackground(new Color(60,200,50)); deng.setBackground(new Color(60,200,50)); s0.setBackground(new Color(60,200,50)); s1.setBackground(new Color(60,200,50)); s2.setBackground(new Color(60,200,50)); s3.setBackground(new Color(60,200,50)); s4.setBackground(new Color(60,200,50)); s5.setBackground(new Color(60,200,50)); s6.setBackground(new Color(60,200,50)); s7.setBackground(new Color(60,200,50)); s8.setBackground(new Color(60,200,50)); s9.setBackground(new Color(60,200,50)); qingKong.setBackground(new Color(200,250,100)); mianBan1.setBackground(new Color(200,200,255)); mianBan3.setBackground(new Color(200,200,255)); dian.addMouseListener(new OperationMouseListener()); deng.addMouseListener(new OperationMouseListener()); jia.addMouseListener(new YunSuanJianTing()); jian.addMouseListener(new YunSuanJianTing()); cheng.addMouseListener(new YunSuanJianTing()); chu.addMouseListener(new YunSuanJianTing()); s0.addMouseListener(new ShuZiJianTing()); s1.addMouseListener(new ShuZiJianTing()); s2.addMouseListener(new ShuZiJianTing()); s3.addMouseListener(new ShuZiJianTing()); s4.addMouseListener(new ShuZiJianTing()); s5.addMouseListener(new ShuZiJianTing()); s6.addMouseListener(new ShuZiJianTing()); s7.addMouseListener(new ShuZiJianTing()); s8.addMouseListener(new ShuZiJianTing()); s9.addMouseListener(new ShuZiJianTing()); qingKong.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { shuRuKuang.setText(""); }); } private class ShuZiJianTing implements MouseListener{ public void mouseClicked(MouseEvent e) { if(shuRuKuang.getText().trim().equals("0")){ shuRuKuang.setText(((JButton)e.getSource()).getText().trim()); }else{ shuRuKuang.setText(shuRuKuang.getText().concat(((JButton)e.getSource()).getText().trim())); } } public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} } private class YunSuanJianTing implements MouseListener{ public void mouseClicked(MouseEvent e) { num1 = shuRuKuang.getText().trim(); shuRuKuang.setText(""); operator = ((JButton)e.getSource()).getText().trim(); } public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} } private class OperationMouseListener implements MouseListener{ public void mouseClicked(MouseEvent e) { if(e.getSource() == dian){ String text = shuRuKuang.getText().trim(); if(text.indexOf(".") == -1){ shuRuKuang.setText(text.concat(".")); } }else if(e.getSource() == deng){ if(!operator.trim().equals("")){ if(!shuRuKuang.getText().trim().equals("")){ double result = 0D; if(operator.equals("+")){ result = Double.parseDouble(num1) + Double.parseDouble(shuRuKuang.getText().trim()); }else if(operator.equals("-")){ result = Double.parseDouble(num1) - Double.parseDouble(shuRuKuang.getText().trim()); }else if(operator.equals("*")){ result = Double.parseDouble(num1) * Double.parseDouble(shuRuKuang.getText().trim()); }else if(operator.equals("/")){ result = Double.parseDouble(num1) / Double.parseDouble(shuRuKuang.getText().trim()); } shuRuKuang.setText(new DecimalFormat("0.00").format(result)); } } } } public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} } }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 专业课程 设计 计算器 制作
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文