编写一个计算器程序课程设计报告范例Word文档格式.docx

上传人:b****6 文档编号:21834956 上传时间:2023-02-01 格式:DOCX 页数:19 大小:910.13KB
下载 相关 举报
编写一个计算器程序课程设计报告范例Word文档格式.docx_第1页
第1页 / 共19页
编写一个计算器程序课程设计报告范例Word文档格式.docx_第2页
第2页 / 共19页
编写一个计算器程序课程设计报告范例Word文档格式.docx_第3页
第3页 / 共19页
编写一个计算器程序课程设计报告范例Word文档格式.docx_第4页
第4页 / 共19页
编写一个计算器程序课程设计报告范例Word文档格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

编写一个计算器程序课程设计报告范例Word文档格式.docx

《编写一个计算器程序课程设计报告范例Word文档格式.docx》由会员分享,可在线阅读,更多相关《编写一个计算器程序课程设计报告范例Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。

编写一个计算器程序课程设计报告范例Word文档格式.docx

、退格和清零功能。

3.?

新要求:

能?

行正切、余弦,以及求平方根、指?

(包括?

e)、自然?

算。

形界面采用?

承windowadapter?

,采取?

用?

方法?

注?

听!

4.?

要求:

1)?

法、乘法、除法和取余?

且有小?

、正?

、求倒?

2)?

可?

用Eclipse、JBuilder、NetBeans等作?

平台以提高?

效率,通?

料查?

可能熟?

掌握其中一种集成?

境。

3)?

真按?

完成?

告,?

告?

容包括:

与要求、需求分析、?

思路、?

、?

行?

与分析?

体?

与小?

六?

部分。

2、原理与分析

的技?

及功能

本?

是要做一?

形界面的?

算器,其界面主要是由swing?

件中的控件构成。

程序?

了?

算器的基本功能有:

加、?

、乘、除基本算?

算)和sin、cos、tan等三角函?

求值?

算,同?

能?

行指?

算和自然?

算,?

有求倒?

思路

?

算器主要是?

考Windows操作系?

中自?

算器,由于?

者水平和?

的限制,不能?

到科?

型及其他更复?

型,在?

程中?

考了一些其他的优秀?

但本?

算器除了常用的加?

乘除(可以?

算)?

些基本?

算外,?

有求余、求倒、退格、清零,甚至?

行一些复?

科?

算,比如余弦(cos)、正切(tan)、指?

算(pow)、自然?

算(log)、求平方根(sqrt)以及?

e的指?

算(exp),并且?

体上?

,本?

,代?

很少,程序很小,但功能?

很?

大,?

是同?

算器所不具?

的。

效果?

先在?

界面中添加按?

等控件,后在按?

的actionPerformed事件中添加代?

完成其功能其中?

用了Java?

中的Math函?

以及各种字符串操作。

的界面如下:

一?

行界面

3、?

1.程序思路:

1)本?

用程序?

承自框架?

(JFrame),容器Containerc采用BorderLayout?

布局,?

行文本框加入到“North¡

¨

域,包含各种按?

的面板JPanelp加入到¡

Center¡

域。

包含各种按?

的面板JPanelp采用3行6列的网格布局,然后?

字按?

算符按?

以及控制按?

用一?

for循?

添加到面板中同?

按?

事件?

听器。

如:

Buttonb=newButton();

b.addActionListener(事件?

听器);

2)事件?

听器中的事件?

理方法voidactionPerformed(ActionEventevt)完成主要的按?

事件的?

理。

理分以下几种情?

事件(¡

,¡

¡

)、?

-¡

§

)、正?

+/-¡

)、小?

)、等?

=¡

)、求倒按?

求倒¡

)、退格按?

退格¡

)、清除按?

)、正切(tan)、余弦(cos),以及求平方根(sqrt)、指?

(pow)、?

(exp)、?

算(log)。

3)在事件?

理,触?

,先判?

是或是?

字是或是“-/+”是或是“.”,是的?

就?

“-”、?

字、小?

“.”分?

入文本框并存放在sum中,然后判?

是或是“退格”、“求倒”等,是的?

行相?

理,都不是的?

跳到doOperation()?

算同?

算符存放在preOperater中。

触?

,要?

一步分析,是重新?

始?

算?

的按?

是?

算中?

事件。

4)?

算器完成的是一?

表?

式,如:

3+2,所以可以采用一?

存?

字或字符,如3,+,2分?

在?

中,最后?

,可以一一取出?

5)利用按?

算器的各?

算符和操作符,通?

的事件?

理?

算功能。

6)利用文本框?

示操作?

果。

2.功能?

1)加?

乘除求余以及指?

voiddoOperation(){

doublem=Double.parseDouble(x.getText());

if(preOperater.equals("

"

))sum=m;

//?

前一操作,?

果?

入?

果与文本框中的?

据按照前一?

算符?

+"

))sum=sum+m;

//加法?

-"

))sum=sum-m;

法?

*"

))sum=sum*m;

//乘法?

/"

))sum=sum/m;

//除法?

%"

))sum=sum%m;

//求余

pow"

))sum=Math.pow(sum,m);

//求?

,指?

}

2)其他?

Ⅰ、求平方根

Voidsqrt(){

doublem=Double.parseDouble(x.getText());

if(m<

0)

x.setText("

不能?

根?

);

else

+Math.sqrt(m));

}

Ⅱ、?

Voidlog(){

行自然?

算"

+Math.log(m));

Ⅲ、余弦?

Voidcos(){

doublem=Double.parseDouble(x.getText());

x.setText("

+Math.cos(m));

Ⅳ、正切?

Voidtan(){

+Math.tan(m));

Ⅴ、e的指?

Voidexp(){

+Math.exp(m));

Ⅵ、倒?

Voiddaoshu(){

if(Double.parseDouble(x.getText())==0)

x.setText("

除?

零"

else{

+1/(Double.parseDouble(x.getText())));

preOperater="

;

}

3)主要方法?

publiccos(doublex)//求x的余弦函?

publictan(doublex)//求x的正切函?

publicsqrt(doublex)//求x的平方根

publiclog(doublex)//求x的自然?

publicexp(doublex)//求e的x次?

publicpow(doublea,doubleb)//求a的b次?

publicdaoshu(doublex)//求x的倒?

4)程序流程?

3.算法思路:

是一?

算器,里面所涉及到的功能就是加、?

、乘、除、?

方?

算、等基本功能。

定?

量?

保存?

算操作的前一?

前在?

算器上?

示的?

字即可,而?

于?

算的操作要求更加?

,只需要一?

量就可以了。

然?

据?

行判?

是必不可少的。

据之后Character.isDigit(Command.charAt(0))判?

入的?

据是否符合要求。

不符合要求?

出提示,符合要求以后?

判?

算符,?

的操作。

算操作要?

一步判?

是否符合要求,如果是就?

入下步?

算,如果不是就?

出相?

的提示:

“?

"

用try….catch

捕?

异常,如果有异常?

中止活?

方(sqrt)?

,如果?

出"

,中止?

(log)如果?

算”。

行三角函?

(cos、tan)不必考?

字是否符合?

范,?

于任意?

函?

本身有一?

程,都能把?

化?

合适的范?

而得到正确的?

于加?

乘除等?

算操作,每?

功能都由每一?

模?

按下加按?

的加法操作,?

一?

相?

的操作?

有要求;

法操作,由jTextField.getText()得到?

的值?

示在相?

的文本框中;

乘法操作在?

操作?

然后?

乘?

再?

另一?

得出相?

示在文本框中;

在作除法?

被除?

零?

用catch?

行异常?

理,?

出“Infinity”。

据分析:

在事件?

四、?

果与分析

1)?

行加?

的浮?

加法?

算(例:

-1.2+4=2.8)

依次按“+/-”(也可以最后按),“1.2”,“+”,“4”?

按下“+”?

按下“4”?

按下“=”?

分析:

出的?

果如?

所示,?

算器可以直接?

入“-”,?

算比?

便,?

加法做起?

有?

2)求倒

先?

入1.25,再按下“求倒”?

所示,倒?

功能?

,不?

果,?

据同?

可以先?

倒?

功能后再?

有影?

3)退格

字1265

按下“退格”?

所示,本?

算器退格?

有一?

特?

是,就算是是?

算后得出的?

果也能?

退格,缺?

是不能很好的?

理小?

,因?

小?

也是字符串的一部分。

4)清零

按下“c”?

所示,按清零?

后?

据全部消除。

5)求余弦、求正切、?

e求?

、求平方根、求自然?

(例:

cos30)先按下“30”?

再按下“cos”?

6)?

2*3*4=24.0)

依次按下“3”、“*”、“4”、“/”、“6”、“=”?

7)异常?

理(例:

求倒?

0)

先按“0”?

再按“求倒”?

5、?

作?

一名?

算机科?

与技?

生,我?

得能做?

似的?

是十分有意?

,而且是十分必要的。

一段?

的努力,?

束了,?

然很忙碌、很疲?

,但是收?

很大。

些天我几乎每天的?

注和辛?

回了我?

Java?

言的重新的?

言也有了深刻的理解。

然在本次?

程中,我碰到了很多?

,比如求倒?

,最先我是把按?

新建成“1/x”,但是出?

,怎么找都?

找出?

,其后重新整理思?

才?

成“1/x”,因?

“1/x”中第一?

字符是?

字,而Character.isDigit(Command.charAt(0))?

“1/x”?

做?

字?

入文本框。

有就是?

退格功能?

不知道怎?

理,最后上网XX了一下才找到了方法,?

也?

我深刻体?

到了网?

的作用。

遇到了其他的困?

些花?

了我很多?

,使我失?

了很多次,但是通?

我?

不解的努力?

是一一克服了?

些?

,最?

是成功了。

然在?

次?

中也暴露自己一些?

了自己的很多不足,自己知?

的很多漏洞,基?

知?

的不牢固,看到了自己的?

是比?

缺乏,理?

的能力?

急需提高。

,除了全面系?

的理解了JAVA面向?

象?

程原理的一般原理和基本?

方法,?

把死板的?

本知?

得生?

有趣,激?

极性。

把?

程原理的知?

化,把?

堂上?

的知?

通?

自己?

的程序表示出?

加深了?

的理解。

中程序比?

复?

,在?

仔?

,在程序?

,注意?

力?

找程序中存在的不足之?

而使功能更加完善。

然在做?

要有很大的耐心,做的?

程就是不?

—修改—?

程,只有?

下心?

才能把?

解?

6、?

考文?

[1]於?

等《Java程序?

与?

》(第二版)清?

大?

出版社2009.5

[2]BruceEckel《Java?

程思想》机械工?

出版社2007.6

[3]?

林等《Java?

言最新?

用案例教程》(第2版)清?

出版社2010.7

7、源程序

importjava.util.*;

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

publicclassCalculaterextendsJFrameimplementsActionListener{

JTextFieldx;

//文本框

StringpreOperater="

//上一次的?

算符

doublesum=0;

publicCalculater(Stringtitle){

super(title);

Containerc=getContentPane();

//容器

c.setLayout(newBorderLayout());

//容器采用?

布局

x=newJTextField(50);

c.add("

North"

x);

Stringbuttoned[]={"

0"

"

1"

2"

3"

+/-"

."

C"

退格"

求倒"

4"

5"

6"

7"

8"

9"

="

sqrt"

log"

cos"

tan"

exp"

};

JPanelp=newJPanel();

//面板

p.setLayout(newGridLayout(3,9,10,10));

//面板采用行列?

3,6的网格布局

for(intk=0;

k<

buttoned.length;

k++){//用一?

添加?

面板并注?

听器

JButtonb=newJButton(buttoned[k]);

p.add(b);

b.addActionListener(this);

Center"

p);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//?

事件,根据?

操作

publicvoidactionPerformed(ActionEvente){

StringCommand=e.getActionCommand();

try{

if(Character.isDigit(Command.charAt(0))){//如果按?

x.setText(x.getText()+Command);

//添加?

elseif(Command.equals("

)){//如果按?

xiaoshu();

)){//如果按?

fuhao();

elseif(Command.equals("

backspace();

dengyu();

sqrt();

log();

cos();

tan();

exp();

qiudao();

clear();

else{doOperation();

算符和?

preOperater=Command;

}catch(Exceptionex){sum=0;

x.setText("

voidxiaoshu(){//添加小?

Strings=x.getText();

if(s.indexOf("

)==-1)

x.setText(s+"

voidfuhao(){//添加?

x.setText("

+x.getText());

voidbackspace(){//退格

if(s.length()>

x.setText(s.substring(0,s.length()-1));

除最后一?

字符

voiddengyu(){//等?

示?

doOperation();

+sum);

preOperater="

voidsqrt(){//求?

的平方根

if(m<

else

voidlog(){//求?

的自然?

doublem=Double.parseDouble(x.getText());

voidcos(){//求?

的余弦

voidtan(){//求?

的正切

voidexp(){//求e的?

voidqiudao(){//求倒

if(Double.parseDouble(x.getText())==0)

else{

preOperater="

}

voidclear(){//清零

sum=0;

//根据?

前面?

果sum与文本框中的?

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

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1