java课程设计计算器的制作Word文件下载.docx
《java课程设计计算器的制作Word文件下载.docx》由会员分享,可在线阅读,更多相关《java课程设计计算器的制作Word文件下载.docx(5页珍藏版)》请在冰豆网上搜索。
减法运算:
用-按钮进行运算;
乘法运算:
用*按钮进行运算;
除法运算:
用/按钮进行运算;
清零键:
用清空按钮实现;
3.2用户界面设计该计算器程序的设计:
用户界面包括Swing组件,不过程序中大都使用的是AWT组件.importjava.awt.*;
在AWT组件中:
(1)、使用了面板和按钮:
mianban1,2,3;
privateJPanelmianBan1=newJPanel();
//面板1存放,窗口、和清空按钮chuangKou.add(mianBan1,BorderLayout.NORTH);
//面板1,存放窗口的北边privateJPanelmianBan2=newJPanel();
//存放其他按钮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(newGridLayout(4,4));
//面板2的布局模式Buttons0,s1,s2,s3,s4,s5,s6,s7,s8,s9;
Buttonjia,jian,cheng,chu;
Button清空,=,.;
privateJPanelmianBan3=newJPanel();
//存放标签JLabelbiaoQian0=newJLabel(-----------------------屠式计算器------------------------);
//标签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(newColor(255,50,50));
jian.setBackground(newColor(255,50,50));
cheng.setBackground(newColor(255,50,50));
chu.setBackground(newColor(255,50,50));
dian.setBackground(newColor(60,200,50));
deng.setBackground(newColor(60,200,50));
s0.setBackground(newColor(60,200,50));
s1.setBackground(newColor(60,200,50));
s2.setBackground(newColor(60,200,50));
s3.setBackground(newColor(60,200,50));
s4.setBackground(newColor(60,200,50));
s5.setBackground(newColor(60,200,50));
s6.setBackground(newColor(60,200,50));
s7.setBackground(newColor(60,200,50));
s8.setBackground(newColor(60,200,50));
s9.setBackground(newColor(60,200,50));
qingKong.setBackground(newColor(200,250,100));
//清除按钮颜色mianBan1.setBackground(newColor(200,200,255));
//mianBan1颜色mianBan3.setBackground(newColor(200,200,255));
//mianBan2颜色(4)、事件监听:
dian.addMouseListener(newOperationMouseListener());
deng.addMouseListener(newOperationMouseListener());
a、注册四则运算监听jia.addMouseListener(newYunSuanJianTing());
jian.addMouseListener(newYunSuanJianTing());
cheng.addMouseListener(newYunSuanJianTing());
chu.addMouseListener(newYunSuanJianTing());
b、注册数字监听事件s0.addMouseListener(newShuZiJianTing());
s1.addMouseListener(newShuZiJianTing());
s2.addMouseListener(newShuZiJianTing());
s3.addMouseListener(newShuZiJianTing());
s4.addMouseListener(newShuZiJianTing());
s5.addMouseListener(newShuZiJianTing());
s6.addMouseListener(newShuZiJianTing());
s7.addMouseListener(newShuZiJianTing());
s8.addMouseListener(newShuZiJianTing());
s9.addMouseListener(newShuZiJianTing());
c、清空监听器:
qingKong.addActionListener(newActionListener()publicvoidactionPerformed(ActionEvente)shuRuKuang.setText();
//清空编辑框d、数字按钮监听器:
privateclassShuZiJianTingimplementsMouseListenerpublicvoidmouseClicked(MouseEvente)if(shuRuKuang.getText().trim().equals(0))//如果文本框已经是0,结果还是0shuRuKuang.setText(((JButton)e.getSource()).getText().trim());
shuRuKuang.setText(shuRuKuang.getText().concat(((JButton)e.getSource()).getText().trim()));
publicvoidmouseEntered(MouseEvente)publicvoidmouseExited(MouseEvente)publicvoidmousePressed(MouseEvente)publicvoidmouseReleased(MouseEvente)e、运算按钮监听器:
privateclassYunSuanJianTingimplementsMouseListener//如果输入的是运算符号,保存第一个结果和运算符号publicvoidmouseClicked(MouseEvente)num1=shuRuKuang.getText().trim();
shuRuKuang.setText();
operator=((JButton)e.getSource()).getText().trim();
publicvoidmouseEntered(MouseEvente)publicvoidmouseExited(MouseEvente)publicvoidmousePressed(MouseEvente)publicvoidmouseReleased(MouseEvente)f、小数点、等号监听器:
privateclassOperationMouseListenerimplementsMouseListenerpublicvoidmouseClicked(MouseEvente)if(e.getSource()==dian)Stringtext=shuRuKuang.getText().trim();
//如果按了小数点,如果文本框已经有小数点,不做任何操作,否则在结果后面加上小数点if(text.indexOf(.)==-1){shuRuKuang.setText(text.concat(.));
}elseif(e.getSource()==deng){//如果是等号if(!
operator.trim().equals()){if(!
shuRuKuang.getText().trim().equals()){doubleresult=0D;
if(operator.equals(+)){//执行加法运算result=Double.parseDouble(num1)+Double.parseDouble(shuRuKuang.getText().trim());
}elseif(operator.equals(-)){//减法运算result=Double.parseDouble(num1)-Double.parseDouble(shuRuKuang.getText().trim());
}elseif(operator.equals(*)){//乘法运算result=Double.parseDouble(num1)*Double.parseDouble(shuRuKuang.getText().trim());
}elseif(operator.equals(/)){//除法运算result=Double.parseDouble(num1)/Double.parseDouble(shuRuKuang.getText().trim());
}//格式化最终结果,保留两位小数点shuRuKuang.setText(newDecimalFormat(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广泛的运用性。
由于时间仓促还有很多有待完善的地方,在今后的学习中,我会加倍努力去做好。
附:
程序全部代码importjava.awt.*;
importjavax.swing.*;
importjava.awt.event.*;
importjava.text.DecimalFormat;
publicclassJiSuanQi{publicJFramechuangKou=newJFrame(计算器);
privateJPanelmianBan2=newJPanel();
privateJTextFieldshuRuKuang=newJTextField(20);
privateJButtonqingKong=newJButton(清空);
privateJButtonjia=newJButton(+);
privateJButtonjian=newJButton(-);
privateJButtoncheng=newJButton(*);
privateJButtonchu=newJButton(/);
privateJButtondian=newJButton(.);
privateJButtondeng=newJButton(=);
privateJButtons0=newJButton(0);
privateJButtons1=newJButton
(1);
privateJButtons2=newJButton
(2);
privateJButtons3=newJButton(3);
privateJButtons4=newJButton(4);
privateJButtons5=newJButton(5);
privateJButtons6=newJButton(6);
privateJButtons7=newJButton(7);
privateJButtons8=newJButton(8);
privateJButtons9=newJButton(9);
privateStringnum1=;
privateStringoperator=;
publicstaticvoidmain(String[]args){newJiSuanQi();
}publicJiSuanQi(){mianBan1.add(shuRuKuang);
mianBan1.add(qingKong);
chuangKou.add(mianBan1,BorderLayout.NORTH);
mianBan2.add(s7);
chuangKou.add(mianBan2,BorderLayout.CENTER);
JLabelbiaoQian0=newJLabel(-----------屠式计算器----------);
mianBan3.add(biaoQian0);
chuangKou.pack();
chuangKou.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
shuRuKuang.setHorizontalAlignment(JTextField.RIGHT);
chuangKou.setLocation(500,300);
chuangKou.setSize(330,250);
mianBan1.setBackground(newColor(200,200,255));
mianBan3.setBackground(newColor(200,200,255));
jia.addMouseListener(newYunSuanJianTing());
s0.addMouseListener(newShuZiJianTing());
s1.addMo