




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
科信学院 计算机科学与技术专业 java课设报告书河北工程大学科信学院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 MouseListenerpublic void mouseClicked(MouseEvent e) if(shuRuKuang.getText().trim().equals(0)/如果文本框已经是0,结果还是0shuRuKuang.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 MouseListenerpublic 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 MouseListenerpublic void mouseClicked(MouseEvent e) if(shuRuKuang.getText().trim().equals(0)shuRuKuang.setText(JButton)e.getSource().getText().trim();elseshuRuKuang.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 MouseListenerpublic void mouseClicked(MouseEvent e) num1 = shuRuKuang.getText().trim();shuRuKuang.setText();operator = (JButton)e.getSource().getText().trim();public void mouseEntered(MouseEvent e) public void
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度房地产税收保密协议书范本
- 2025版教育产业集团校长聘用与教育产业链整合合同
- 二零二五年度房地产物业管理人员劳动合同标准版
- 二零二五年度国际农产品国际贸易代理合同
- 二零二五版知识产权授权许可与合同管理协议
- 2025版房地产买卖居间合同模板(含交易保障金条款)下载
- 2025福建福州建功施工图审查有限公司招聘考试备考试题及答案解析
- 二零二五年新型科技设备典当借款服务协议
- 2025湖南湘潭市湘乡市教育系统城区学校选调教师270人考试备考试题及答案解析
- 2025年河北衡水市沁香路小学招聘教师若干名考试备考试题及答案解析
- 中国移动室分问题排查优化指导手册
- 顺丰同城管理制度
- 妊娠期阴道炎的健康宣教
- 京东代运营合同模板正规范本(通用版)
- 深圳富源文武学校语文新初一分班试卷
- 口腔修复学可摘局部义齿
- “四电”工程施工工艺标准
- GB/T 35051-2018选煤厂洗水闭路循环等级
- 急诊与灾难医学:昏迷课件
- 实验报告-探究杠杆的平衡条件
- 第3章access2010查询操作-上传
评论
0/150
提交评论