计算器java课程设计简单计算器Word文档下载推荐.docx

上传人:b****1 文档编号:3633639 上传时间:2023-05-02 格式:DOCX 页数:12 大小:113.02KB
下载 相关 举报
计算器java课程设计简单计算器Word文档下载推荐.docx_第1页
第1页 / 共12页
计算器java课程设计简单计算器Word文档下载推荐.docx_第2页
第2页 / 共12页
计算器java课程设计简单计算器Word文档下载推荐.docx_第3页
第3页 / 共12页
计算器java课程设计简单计算器Word文档下载推荐.docx_第4页
第4页 / 共12页
计算器java课程设计简单计算器Word文档下载推荐.docx_第5页
第5页 / 共12页
计算器java课程设计简单计算器Word文档下载推荐.docx_第6页
第6页 / 共12页
计算器java课程设计简单计算器Word文档下载推荐.docx_第7页
第7页 / 共12页
计算器java课程设计简单计算器Word文档下载推荐.docx_第8页
第8页 / 共12页
计算器java课程设计简单计算器Word文档下载推荐.docx_第9页
第9页 / 共12页
计算器java课程设计简单计算器Word文档下载推荐.docx_第10页
第10页 / 共12页
计算器java课程设计简单计算器Word文档下载推荐.docx_第11页
第11页 / 共12页
计算器java课程设计简单计算器Word文档下载推荐.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

计算器java课程设计简单计算器Word文档下载推荐.docx

《计算器java课程设计简单计算器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算器java课程设计简单计算器Word文档下载推荐.docx(12页珍藏版)》请在冰点文库上搜索。

计算器java课程设计简单计算器Word文档下载推荐.docx

2、显示部分

(1)第一个面板:

txtpanel

位置以及排列方式BorderLayout.NORTH

txtpanel.add(txtinput):

添加文本框到txtpanel面板中

(2)第二个面板:

btnpanel

排列方式:

setLayout(gl)

3、基本按钮

btnpanel.add(b9);

btnpanel.add(b5);

btnpanel.add(bl);

btnpanel.add(b7)btnpanel.add(b8)

btnpanel.add(multiply)btnpanel.add(b4)

btnpanel.add(b6)btnpanel.add(divide)

btnpaneLadd(add);

btnpanel.add(b2)btnpaneLa(kl(b3)

btnpaneLadd(bO).add(bdes)btnpaneLadd(equal);

btnpaneLadd(subtract)

以上是在第二个面板btnpanelH中添加的0到9和+,-,*/,=的按钮。

4、附加功能

(1)“清零”:

用于清空文本框和下一次的运算

(2)“异常处理”

除数为零:

当除数为零时,弹出“除数不能为零”窗体错误输入:

当只单击运算符时,弹出“错误输入”窗体

三、详细设计和编码

1、总体功能图

结果输出“

1、类的定义及关系

Jsq类继承JFrame类创建主界面,在主界面上由文本框JTextField和JButton组件构成,JTextField和JButton组件分别放置在两个不同的面板JPanel上,同时利用按钮注册监听器,获取事件源。

添加实现0-9和加、减、乘、除按钮并实现四则运算并获得运算结果以及“清零”和“异常处理机制”。

2、运行效果图

0W零

3.源代码

importJavax.swing.*;

ImportJava.awt.*;

importJava.awt.event.*;

publicclassCalculatorextendsJFrameimplementsActionListener

{

JPaneltxtpanel.btnpanel;

JTextFieldtxtinput;

JButtonbl,b2,b3,b4,b5,b6,b7,b&

b9,b0,bdes,multiply,divide,add,subtract9cleai;

equal;

GrldLayoutgl;

doubledl,c!

2;

Strings;

publicCalculator()

supei•(”计算器”);

txtpanel=newJPanel();

btnpanel=newJPanel();

txtinput=newJTextFiel(l(25);

txtinput.setEditable(false);

txtinpiit.setHorizontalAlignment(JTextField.RIGHT);

txtinpiiLsetText(tft<

);

bl=newJButton(,ir,);

b2=newJButton(fl2M);

b3=newJButton(tl3t,);

b4=newJButton「4"

b5=newJButto^^S11);

b6=newJButton(,,6,1);

b7=new

b8=newJEuttonC1^11);

b9=newJButtonC1^11);

bO=newJButton(H0,1);

bdes=newJButton(t,.,t);

add=newJButton(f,+H);

subtract=newmultiply=newJButton(tf*tf);

divide=newJButton(f7u);

clear=newJButton(tf清零"

);

equal=newJButton(t,=H);

clear.addActionLlstener(newActlonLlstener()

{publicvoidactionPerformed(ActionEventargh)

{btnCancelActionPerformed();

}

});

bl.addActionListener(this);

b2.addActionListener(this);

b3.addActionListener(this);

b4.addActionListener(this);

b5.addActionListener(this);

b6.addActionListener(this);

b7.addActionListener(this);

b&

addActionListener(this);

b9.addActionListener(this);

bO.addActionListener(this);

bdes.addActionListener(this);

multiply.addActionListener(this);

dlvide.addActionListener(th⑸;

adcLaddActionListener(th⑸;

subtract.addActionListener(th⑸;

equaLaddActionListener(this);

getContentPane().add(txtpanel5BorderLayout.NORTH);

txtpanel.add(txtinput);

txtpaneLadd(clear);

gl=newGridLayout(4,4,5,5);

btnpanel.setLayout(gl);

getContentPane().a(ld(btnpanel);

btnpaneLadd(b7);

btnpanel.add(b8);

btnpaneLadd(multiply);

btnpaneLadd(b4);

btnpaneLadd(b5);

btnpaneLadd(bd);

btnpaneLadd(divide);

btiipanel.add(bl);

btnpaneLadd(b2);

btnpanel.add(b3);

btnpanel.add(add);

btnpaneLadd(bO);

btnpanel.add(bdes);

btnpanel.add(equal);

btnpanel.add(subtract);

setSize(250^220);

setVisible(true);

setLocation(300^200);

setDefaultCloseOperatlon(VVindowConstants.EXIT_ON_CLOSE);

publicvoidbtnCancelActlonPerformed()

{txtinput.setText(H,f);

}publicvoidactionPerformed(ActionEvente)

{try{

ObjectobJ=e.getSource();

if(obj==bl)

txtinput.setText(txtinpiit.getText()+

elseif(obj==b2)

txtinput.setText(txtinputgetText()+ft2M);

elseif(obj==b3)

txtinput.setText(txtlnpiit.getText()+n3n);

elseif(obj==b4)

txtinput.setText(txtinpiit.getText()+tt4tt);

elseif(obj==b5)

txtinpuLsetText(txtinput.getText()+H5M);

elseif(obj==b6)

txtinput.setText(txttnput.getText()+f,6ft);

elseif(obj==b7)

txtinput.setText(txtinput.getText()+ft7ft);

elseif(obj==b8)

txtinput.setText(txtinpiit.getText()+H8ft);

elseif(obj==b9)

txtinput.setText(txtlnput.getText()+,t9tt);

elseif(obj==bO)

txtinput.setText(txtinputgetText()+MOft);

elseif(obj==bdes)

txtinput.setText(txtinpiit.getText()+ft.t,);

elseif(obj==add)

{dl=Double.parseDouble(txtinput.getText());

s="

+n;

txtinput.setText(ftn);

elseif(obj==subtract)

txtinput.setText(ttft);

elseif(obj==divide)

{dl=Doiible>

parseDouble(txtinput.getText());

s='

7n;

txtinput.setText(ntt);

elseif(obj==multiply)

txtinputsetText(n,t);

elseif(obj==equal)

{if(s==,,+n)

{d2=dl+Double.parseDouble(txtinput.getText());

txtinput.setText(Double.toStrlng(d2));

>

elseif(s==M-f,)

{d2=dl-Double.parseDouble(txtlnpuLgetText());

txtinput.setText(Doiible.toString(d2));

elseif(txtinputequals(txtinputgetText())&

&

obj==subtract)

{d2=dl-Double.parseDouble(txtinpiit.getText());

}

elseif(s==,7M)

{if(Double.parseDouble(txtinput.getText())==0)JOptionPane.showMessageDialog(this,n除数不能为On);

d2=dl/Double.parseDouble(txtinpuLgetText());

elseif(s==,l*H)

{d2=dl*Double.parseDoiible(txtinput.getText());

txtlnput.setText(Doiible.toString(d2));

catch(Exceptlonouch)

{JOptionPane.showMessageDialog(null/9错误输入,\,,errort\JOptionPane.ERROR_MESSAGE);

publicstaticvoidmain(Stringargs[])

{try{

UIManager.setLookAndFeel

(lfcom.siinjava.swing.plaf.windows.VVindowsLookAndFee1“);

catch(Exceptlone){}

newCalculatorQ;

四、测试结果

本次课程设计的计算器能够满足加、减、乘、除四则基本运算,而且通过自己的努力为此计算器添加了两个附加的功能:

“清零”和“异常处理机制”,并能很好的实现其功能。

但是此计算器的功能还是很单薄,不能进行开方、取余、三角函数等其他计算器的常用功能。

一是因为这些功能相对复杂一些,二是自己有点懒惰。

所以造成此计算器功能不是很完善。

五、小结

在此次的课程设计实践中,我学到了教科书上没有的东西。

这次课程设计,我按照课程设计的要求,分块实现程序的功能。

在实践中我遇到许多的问题,通过同学的帮助和翻阅资料以及网上査询,最后都克服,最终我成功的完成了这次课程设计。

从中我充分理解了Java面对对象的特性,通过编写这个相对复杂的程序,让我认识解决实际问题前应现建立模型,再通过建立的模型使问题简单化,从而解决问题。

这次编写的程序大部分是通过调用各包中的方法来实现的,这也让我充分理解了包和类调用的关系。

并为其增加了两个功能“清零”和“异常处理机制”。

由于这次编写的程序相对比较复杂,所以不能一次性编写、调试,也由此让我学会把程序分块,逐个编写、调试。

在实践的同时,我又从中成长了许多,特别是在对程序的编译和调试中掌握了许多的技巧和方法,为今后的其他计算机语言的学习奠定了一定的基础。

六、参考文献

[1]张思民.Java语言程序设计[M]・清华大学出版社.2007.2[2]耿祥义.Java2使用教程(第三版)[M]・清华大学出版社.2006.8

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2