JAVA实训报告简易计算器Word文档下载推荐.docx
- 文档编号:19442990
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:13
- 大小:56.37KB
JAVA实训报告简易计算器Word文档下载推荐.docx
《JAVA实训报告简易计算器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《JAVA实训报告简易计算器Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
开发环境
jdk1.6.0_10
项
目
特
点
使用组件构建的C/S使用程序
各项功能的组织合理搭配使用
图标控制功能实现
技
术
重
构建基于C/S架构的使用程序
Swing组件使用
事件监听的使用
方法的编写
难
Swing组件的使用
事件监听器的使用
异常处理
方法简便的选择
一、项目需求
本程序的主要功能:
(1)单击“简单计算器”上的数字按钮(0~9)可以设置参和计算的运算数。
(2)单击“简单计算器”上的运算符按钮(+、-、*、/、1/x、sqrt、%)可以选择运算符号。
(3)单击“简单计算器”上的“=”按钮显示计算结果。
(4)单击“简单计算器”上的“C”按钮清空计算结果。
(5)单击“简单计算器”上的“Backspace”按钮删除输入的最后一个数字。
二、项目设计
在设计计算器时,编写1个Java源文件:
SimpleCalculator.java,计算器除了上述Java源文件所给出的类外,还需要Java系统提供的一些重要类,如JButton,JTextField等。
下面是Java源文件的总体设计。
SimpleCalculator(主类)
SimpleCalculator类负责创建计算器的主窗口,该类含有main方法,计算器从该类开始执行。
SimpleCalculator类有3种类型的对象,分别是:
JPanel、JButton、JTextField。
还有booleancanClick;
是否单击
doublememd;
intmemi;
doubletempResult,result;
显示的结果
shortop=0;
1、SimpleCalculator类(主类)
(1)数据和方法
SimpleCalculator类是javax.swing包中JFrame的一个子类,并实现了ActionListener接口。
类中有关数据和方法的详细说明。
1)成员变量
btnNumber是数组,该数组长度为10。
btnNumber数组中的“数字按钮”含有的数字依次为0~9。
每个“数字按钮”都注册有ActionEvent事件监听器。
2)方法
main(Stringargs[])方法是计算器程序运行的入口方法。
SimpleCalculator()是构造方法,负责完成窗口的初始化。
(2)代码:
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassSimpleCalculatorextendsJFrameimplementsActionListener{
JPanelp,p1,p2;
JTextFieldtResult;
JButtonbtnBK,btnC;
JButton[]btnNumber=newJButton[10];
JButtonbtnAdd,btnSub,btnMul,btnDiv,btnEqual,btnDot,btnSign;
JButtonbtnSqrt,btnMod,btnReciprocal;
booleancanClick;
intmemi;
publicSimpleCalculator(){
canClick=true;
result=0;
tResult=newJTextField(15);
tResult.setEditable(false);
tResult.setBackground(Color.WHITE);
btnBK=newJButton("
Backspace"
);
btnC=newJButton("
C"
for(inti=0;
i<
10;
i++)
btnNumber[i]=newJButton(Integer.toString(i));
btnAdd=newJButton("
+"
btnSub=newJButton("
-"
btnMul=newJButton("
*"
btnDiv=newJButton("
/"
btnMod=newJButton("
%"
btnSqrt=newJButton("
Sqrt"
btnReciprocal=newJButton("
1/x"
btnEqual=newJButton("
="
btnDot=newJButton("
."
btnSign=newJButton("
+/-"
Containerc=this.getContentPane();
p1=newJPanel(newFlowLayout(FlowLayout.RIGHT));
p2=newJPanel(newGridLayout(4,5,3,3));
c.add(tResult,BorderLayout.NORTH);
c.add(p1,BorderLayout.CENTER);
c.add(p2,BorderLayout.SOUTH);
p1.setBackground(newColor(44,00,180));
p2.setBackground(newColor(44,00,180));
p1.add(btnBK);
p1.add(btnC);
p2.add(btnNumber[7]);
p2.add(btnNumber[8]);
p2.add(btnNumber[9]);
p2.add(btnDiv);
p2.add(btnSqrt);
p2.add(btnNumber[4]);
p2.add(btnNumber[5]);
p2.add(btnNumber[6]);
p2.add(btnMul);
p2.add(btnMod);
p2.add(btnNumber[1]);
p2.add(btnNumber[2]);
p2.add(btnNumber[3]);
p2.add(btnSub);
p2.add(btnReciprocal);
p2.add(btnNumber[0]);
p2.add(btnSign);
p2.add(btnDot);
p2.add(btnAdd);
p2.add(btnEqual);
btnNumber[i].addActionListener(this);
btnBK.addActionListener(this);
btnC.addActionListener(this);
btnAdd.addActionListener(this);
btnSub.addActionListener(this);
btnMul.addActionListener(this);
btnDiv.addActionListener(this);
btnMod.addActionListener(this);
btnSqrt.addActionListener(this);
btnReciprocal.addActionListener(this);
btnEqual.addActionListener(this);
btnDot.addActionListener(this);
btnSign.addActionListener(this);
this.setTitle("
简单计算器"
this.setLocation(200,200);
this.pack();
this.setVisible(true);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
publicvoidactionPerformed(ActionEventae){
ObjecteSrc=ae.getSource();
i++){
if(eSrc==btnNumber[i]&
&
canClick==true)
tResult.setText(tResult.getText()+Integer.toString(i));
}
if(eSrc==btnDot&
canClick==true){
booleanhasDot=false;
Strings=tResult.getText();
if(s.length()==0)
hasDot=true;
for(inti=0;
s.length();
if(s.charAt(i)=='
.'
){
hasDot=true;
break;
}
if(hasDot==false)
tResult.setText(s+"
if((eSrc==btnAdd||eSrc==btnSub||eSrc==btnMul||eSrc==btnDiv)
&
if(eSrc==btnAdd){
tempResult=Double.parseDouble(tResult.getText());
tResult.setText("
"
op=1;
}
if(eSrc==btnSub){
op=2;
if(eSrc==btnMul){
op=3;
if(eSrc==btnDiv){
if(Double.parseDouble(tResult.getText())==0){
tResult.setText("
注意:
除数不可为0"
canClick=false;
}else
tempResult=Double.parseDouble(tResult.getText());
op=4;
if(eSrc==btnEqual&
if(op==1){
result=tempResult+Double.parseDouble(tResult.getText());
tResult.setText(Double.toString(result));
if(op==2){
result=tempResult-Double.parseDouble(tResult.getText());
tResult.setText(Double.toString(result));
}
if(op==3){
result=tempResult*Double.parseDouble(tResult.getText());
if(op==4){
if(Double.parseDouble(tResult.getText())==0){
tResult.setText("
除数不能为零"
canClick=false;
}else{
result=tempResult/Double.parseDouble(tResult.getText());
tResult.setText(Double.toString(result));
tempResult=0;
if(eSrc==btnMod&
Strings=tResult.getText();
booleanhasDot=false;
for(inti=0;
if(s.charAt(i)=='
hasDot=true;
break;
if(hasDot==true){
doubletemp=Double.parseDouble(s);
temp=temp/100.0;
tResult.setText(Double.toString(temp));
}else{
if(Integer.parseInt(s)%100==0){
intitemp=Integer.parseInt(s);
itemp=itemp/100;
tResult.setText(Integer.toString(itemp));
doubledtemp=Double.parseDouble(s);
dtemp=dtemp/100.0;
tResult.setText(Double.toString(dtemp));
if(eSrc==btnSqrt&
if(s.charAt(0)=='
-'
负数不可开根号"
tResult.setText(Double.toString(Math
.sqrt(Double.parseDouble(s))));
if(eSrc==btnReciprocal&
0'
s.length()==1){
0不能求倒数"
booleanhasDot=false;
for(inti=0;
if(s.charAt(i)=='
hasDot=true;
break;
}
if(hasDot==true){
dtemp=1.0/dtemp;
doubledtemp=1.0/(double)itemp;
if(eSrc==btnSign&
booleanisNum=true;
if(!
(s.charAt(i)>
='
s.charAt(i)<
9'
||s.charAt(i)=='
||s.charAt(i)=='
)){
isNum=false;
if(isNum==true){
if(s.charAt(0)=='
for(inti=1;
charch=s.charAt(i);
tResult.setText(tResult.getText()+ch);
}else
tResult.setText("
+s);
if(eSrc==btnBK&
Strings=tResult.getText();
s.length()-1;
charch=s.charAt(i);
tResult.setText(tResult.getText()+ch);
if(eSrc==btnC){
tempResult=0;
result=0;
canClick=true;
publicstaticvoidmain(String[]args){
newSimpleCalculator();
效果图
SimpleCalculator创建的窗口效果如图1所示。
计算78-20得结果:
除数不能为零:
零不能求倒数:
负数不可开根号:
三、项目总结
本程序为JAVA中简单的计算器,主要实现简单的数学计算,删除,复位等功能。
运用JAVA中的类,数组,成员变量等知识,有简单的界面,按钮等。
本程序还存在一定的缺陷,功能简单,界面还需美化等。
四、心得体会
编写一个程序,无论会实现什么功能,都必须掌握这门语言的要领、基本知识及工具的运用,同时别的辅助工具也要有一定的了解。
因此要更好的运用Java语言编程还需更深入的学习,这样才能把一个程序的功能实现的淋漓尽致,界面才会更加美观。
同时编写这个程序让我更好的理解了数组、类的运用及事件的监听和获取等功能。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 报告 简易 计算器
![提示](https://static.bdocx.com/images/bang_tan.gif)