JAVA程序课程设计计算器编辑Word格式.docx
《JAVA程序课程设计计算器编辑Word格式.docx》由会员分享,可在线阅读,更多相关《JAVA程序课程设计计算器编辑Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
三、系统总体设计或详细设计(简单写出即可)
用JAVA编译计算器,系统面板包括了一组button控件,控件采用5X4的布局方式,再将界面大小控制在600x480大小,其中包括0—9数字、还有+、—、*、/、乘方、取模、开方等功能。
(如图)
一、计算加法12+13
二、计算减法36—26
三、计算乘法5*12
四、计算除法36/12
五、计算乘方8的2次方
六、计算开方49的开方
七、计算取模,10除4
八、解决近似计算,7.6+7.8
四、程序代码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.text.DecimalFormat;
importjava.lang.Math;
publicclassCalculatorextendsJFrameimplementsActionListener{
DecimalFormatdf=(DecimalFormat)DecimalFormat.getInstance();
privateJPaneljPanel1,jPanel2;
privateJTextFieldresultField;
privateJButtons1,s2,s3,s4,s5,s6,s7,s8,s9,s0,b1,b2,b3,b4,b5,b6,b7,f1,f2,f3;
privatebooleanend,add,sub,mul,div,pow,sqr,mod;
privateStringstr;
privatedoublenum1,num2;
publicCalculator(){
super("
Calculate"
);
setSize(600,480);
Containercon=getContentPane();
con.setLayout(newBorderLayout());
jPanel1=newJPanel();
jPanel1.setLayout(newGridLayout(1,1));
jPanel2=newJPanel();
jPanel2.setLayout(newGridLayout(4,5));
resultField=newJTextField("
0"
jPanel1.add(resultField);
con.add(jPanel1,BorderLayout.NORTH);
s1=newJButton("
1"
s1.addActionListener(this);
s2=newJButton("
2"
s2.addActionListener(this);
s3=newJButton("
3"
s3.addActionListener(this);
s4=newJButton("
4"
s4.addActionListener(this);
s5=newJButton("
5"
s5.addActionListener(this);
s6=newJButton("
6"
s6.addActionListener(this);
s7=newJButton("
7"
s7.addActionListener(this);
s8=newJButton("
8"
s8.addActionListener(this);
s9=newJButton("
9"
s9.addActionListener(this);
s0=newJButton("
0"
s0.addActionListener(this);
b1=newJButton("
+"
b1.addActionListener(this);
b2=newJButton("
-"
b2.addActionListener(this);
b3=newJButton("
*"
b3.addActionListener(this);
b4=newJButton("
/"
b4.addActionListener(this);
b5=newJButton("
^"
b5.addActionListener(this);
b6=newJButton("
sqr"
b6.addActionListener(this);
b7=newJButton("
%"
b7.addActionListener(this);
f1=newJButton("
."
f1.addActionListener(this);
f2=newJButton("
="
f2.addActionListener(this);
f3=newJButton("
OFF"
f3.addActionListener(this);
jPanel2.add(s1);
jPanel2.add(s2);
jPanel2.add(s3);
jPanel2.add(b1);
jPanel2.add(b5);
jPanel2.add(s4);
jPanel2.add(s5);
jPanel2.add(s6);
jPanel2.add(b2);
jPanel2.add(b6);
jPanel2.add(s7);
jPanel2.add(s8);
jPanel2.add(s9);
jPanel2.add(b3);
jPanel2.add(b7);
jPanel2.add(f1);
jPanel2.add(s0);
jPanel2.add(f2);
jPanel2.add(b4);
jPanel2.add(f3);
con.add(jPanel2,BorderLayout.CENTER);
}
publicvoidnum(inti){
Strings=null;
s=String.valueOf(i);
if(end){
resultField.setText("
end=false;
if((resultField.getText()).equals("
)){
resultField.setText(s);
else{
str=resultField.getText()+s;
resultField.setText(str);
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==s1)
num
(1);
elseif(e.getSource()==s2)
num
(2);
elseif(e.getSource()==s3)
num(3);
elseif(e.getSource()==s4)
num(4);
elseif(e.getSource()==s5)
num(5);
elseif(e.getSource()==s6)
num(6);
elseif(e.getSource()==s7)
num(7);
elseif(e.getSource()==s8)
num(8);
elseif(e.getSource()==s9)
num(9);
elseif(e.getSource()==s0)
num(0);
elseif(e.getSource()==b1)
sign
(1);
elseif(e.getSource()==b2)
sign
(2);
elseif(e.getSource()==b3)
sign(3);
elseif(e.getSource()==b4)
sign(4);
elseif(e.getSource()==b5)
sign(5);
elseif(e.getSource()==b6)
sign(6);
elseif(e.getSource()==b7)
sign(7);
elseif(e.getSource()==f1){
str=resultField.getText();
if(str.indexOf("
."
)<
=1){
str+="
;
elseif(e.getSource()==f2){
num2=Double.parseDouble(resultField.getText());
if(add){
num1=num1+num2;
}
elseif(sub){
num1=num1-num2;
elseif(mul){
num1=num1*num2;
elseif(div){
num1=num1/num2;
elseif(pow){
num1=Math.pow(num1,num2);
elseif(sqr){
num1=Math.sqrt(num1);
elseif(mod){
num1=num1%num2;
df.setMaximumFractionDigits
(2);
Stringx=df.format(num1);
resultField.setText(x);
end=true;
}
if(e.getSource()==f3)
System.exit(0);
publicvoidsign(ints){
if(s==1){
add=true;
sub=false;
mul=false;
div=false;
pow=false;
sqr=false;
mod=false;
elseif(s==2){
add=false;
sub=true;
elseif(s==3){
mul=true;
elseif(s==4){
div=true;
elseif(s==5){
pow=true;
elseif(s==6){
sqr=true;
elseif(s==7){
mod=true;
num1=Double.parseDouble(resultField.getText());
publicstaticvoidmain(String[]args){
Calculatorth1=newCalculator();
th1.show();
五、收获体会
通过这次课程设计实践,我深深地体会到java程序设计的内涵,我不但进一步理解到老师上课所传授的知识,而且在自我程序设计上也有了一个完美的突破。
通过老师的指导和自己查阅资料,最终把计算器给编译出来了。
这次设计的计算器,刚开始觉得很难,但是后来觉得很有趣,通过自己慢慢的摸索和请教老师,我一步一个脚印,将老师所给的代码,进一步解读,慢慢的自己也就会了,其实大体上都是差不多的,只要按照老师所给的加法和减法程序,那么乘法和除法以及乘方、取模等计算功能都可以将其模仿出来。
经过了一天的自习研究,该计算器最终被我做出来了,最终实现计算器的加、减、乘、除、开方、取模、乘方等功能,除此之外,还将解决该计算器的近似计算问题。
课程设计的计算器虽然功能不是很全面,但是也实现了一些简单的计算功能。
所以这次课程设计虽然比较困难,但是只要态度认真,最终就可以将计算器攻克,将理论与实践相结合,那么就会收获到你想要的结果。