java计算器编程Word文档下载推荐.docx
- 文档编号:18882994
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:16
- 大小:116.11KB
java计算器编程Word文档下载推荐.docx
《java计算器编程Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《java计算器编程Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
1.界面设计
界面设计要求用GUI,界面设计中有用到swing组件的TextField和Button,用到awt中的BorderLayout和GridLayout布局管理方式,其图形界面如下:
2.功能介绍
这是计算器中的一种:
简单计算器,本项目用到了Java中的GUI界面和swing组件以及awt布局,所以简单易用,它能完成如下的几个小功能:
点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除四则运算和取余运算以及求倒数运算;
如果输入有误时可以按“退格”重新输入数据。
三详细设计主题任务
程序流程图如下:
四程序的调试与运行结果说明
事件1:
加法:
45+89预计结果134。
事件2:
减法89-45预计结果44。
事件3:
乘法45*4预计结果是180。
事件4:
除法48/4预计结果是12。
事件5:
取余6/45预计结果6。
事件6:
求倒数6的倒数预计结果。
五设计源代码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassJisuanqiimplementsActionListener{
doubleop1=0,op2=0;
//操作数
intpreOp,currentOp=0;
//标准位
StringBufferstr=newStringBuffer();
JTextFieldjg=newJTextField("
"
30);
booleanisDouble=false;
//是否为实数;
publicJisuanqi(){
JButtonyi=newJButton("
1"
);
yi.setForeground(Color.blue);
yi.addActionListener(this);
JButtoner=newJButton("
2"
er.setForeground(Color.blue);
er.addActionListener(this);
JButtonsan=newJButton("
3"
san.setForeground(Color.blue);
san.addActionListener(this);
JButtonsi=newJButton("
4"
si.setForeground(Color.blue);
si.addActionListener(this);
JButtonwu=newJButton("
5"
wu.setForeground(Color.blue);
wu.addActionListener(this);
JButtonliu=newJButton("
6"
liu.setForeground(Color.blue);
liu.addActionListener(this);
JButtonqi=newJButton("
7"
qi.setForeground(Color.blue);
qi.addActionListener(this);
JButtonba=newJButton("
8"
ba.setForeground(Color.blue);
ba.addActionListener(this);
JButtonjiu=newJButton("
9"
jiu.setForeground(Color.blue);
jiu.addActionListener(this);
JButtonling=newJButton("
0"
ling.setForeground(Color.blue);
ling.addActionListener(this);
JButtonjia=newJButton("
+"
jia.setForeground(Color.red);
jia.addActionListener(this);
JButtonjian=newJButton("
-"
jian.setForeground(Color.red);
jian.addActionListener(this);
JButtoncheng=newJButton("
*"
cheng.setForeground(Color.red);
cheng.addActionListener(this);
JButtonchu=newJButton("
/"
chu.setForeground(Color.red);
chu.addActionListener(this);
JButtonqy=newJButton("
%"
qy.setForeground(Color.red);
qy.addActionListener(this);
JButtonxy=newJButton("
1/x"
xy.setForeground(Color.red);
xy.addActionListener(this);
JButtonfg=newJButton("
sqrt"
fg.setForeground(Color.red);
fg.addActionListener(this);
JButtonbs=newJButton("
退格"
bs.setForeground(Color.red);
bs.addActionListener(this);
JButtondeng=newJButton("
="
deng.setForeground(Color.red);
deng.addActionListener(this);
JButtondian=newJButton("
."
dian.setForeground(Color.red);
dian.addActionListener(this);
JPanelpanel=newJPanel();
JPanelpanel2=newJPanel();
JPanelpanel3=newJPanel();
panel2.setLayout(newFlowLayout());
panel2.setSize(50,300);
panel2.add(jg);
panel3.setLayout(newGridLayout(4,5,8,8));
panel3.add(qi);
panel3.add(ba);
panel3.add(jiu);
panel3.add(chu);
panel3.add(fg);
panel3.add(si);
panel3.add(wu);
panel3.add(liu);
panel3.add(cheng);
panel3.add(qy);
panel3.add(yi);
panel3.add(er);
panel3.add(san);
panel3.add(jian);
panel3.add(xy);
panel3.add(ling);
panel3.add(bs);
panel3.add(dian);
panel3.add(jia);
panel3.add(deng);
panel.setLayout(newBorderLayout());
panel.add(panel2,BorderLayout.NORTH);
panel.add(panel3,BorderLayout.CENTER);
JFrameframe=newJFrame();
frame.add(panel);
frame.setTitle("
Java课程设计--计算器"
frame.setSize(350,250);
frame.setVisible(true);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
}
publicvoidactionPerformed(ActionEvente)
{
Strings=e.getActionCommand();
if(s.equals("
))
if(!
jg.getText().trim().equals("
//如果文本框中有内容
if(str.length()!
=1&
&
str.length()!
=0)
jg.setText(str.delete(str.length()-1,str.length()).toString());
else
jg.setText("
"
str.setLength(0);
//op2=Double.parseDouble(jg.getText().trim());
elseif(s.equals("
//如果按键为1/x则将文本框中的数据为它的倒数
Stringtemp=jg.getText().trim();
doubledtemp=Double.parseDouble(temp);
jg.setText(dtemp+"
的倒数是"
+1/dtemp);
//如果按键为sqrt则将文本框中的内容求平方根
jg.setText(temp+"
的开放根为"
+Math.sqrt(dtemp));
if(currentOp==0)
preOp=currentOp=1;
op2=0;
+op1);
currentOp=preOp;
preOp=1;
switch(currentOp){
case1:
op1+=op2;
break;
case2:
op1-=op2;
case3:
op1*=op2;
case4:
op1/=op2;
case5:
op1=op1%op2;
)){
if(currentOp==0)
{
preOp=currentOp=2;
//op1=op2;
op2=0;
}
else
currentOp=preOp;
preOp=2;
switch(currentOp){
case1:
op1=op1+op2;
jg.setText("
break;
case2:
op1=op1-op2;
case3:
op1=op1*op2;
case4:
op1=op1/op2;
case5:
op1=op1%op2;
))//*
preOp=currentOp=3;
op2=1;
preOp=3;
))///
preOp=currentOp=4;
//op2=1;
preOp=4;
)){
str.setLength(0);
preOp=currentOp=5;
preOp=5;
))//=
+op2);
currentOp=0;
op2=0;
))
isDouble=true;
if(jg.getText().trim().indexOf('
.'
)!
=-1);
else{
if(jg.getText().trim().equals("
)){
jg.setText((str.append("
+s)).toString());
//elseif(tResult.getText().trim().equals("
)){}//如果初时显示为空则不做任何操作
jg.setText((str.append(s)).toString());
))//如果选择的是"
这个数字键
0."
)){}
else{
jg.setText(str.append(s).toString());
op2=Double.parseDouble(jg.getText().trim());
op1=op2;
publicstaticvoidmain(String[]args){
newJisuanqi();
六课程设计总结
在做本项目是时候,会遇到很多小问题,比如说:
如何保存输入的数字和下一个数进行加、减、乘、除运算。
还有如何判断它是第几个输入的数字。
后来进行多次研究和查询才知道可以通过设运算符标志位来判断是输入的第几个数值。
此次课程设计让我更了解熟悉了Java中的图形用户界面和它的编程方式。
在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,收获很大。
最大的收获就是对大学学习的总结和培养了解决困难的信心和能力,使我对所学知识能够融会贯通,又不断丰富了新知识。
Java计算器设计使得我们对所学的专业课有了更为深刻的认识,使得知识得到了巩固和提高。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 计算器 编程