java编写的计算器
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
实验7:综合实验二
一、试验目的
进一步掌握图形用户界面GUI,了解Swing组件的使用,以及系统提供的该工具的作用,进一步掌握JAVA事件响应机制的原理,更好的掌握面向对象编程的思路。
二、实验要求
创建一个界面来实现一个简单的计算器,要求:
1、实现最基本的计算器界面,包括:0~9的10个数字按钮,加、减、乘、除、等于5个运算符按钮,一个结果存放的文本区域。
2、实现最基本的加、减、乘、除运算,并能得到正确结果。
3、实现连续的运算,小数点的使用,并考虑各种可能导致异常的情况,将程序作完善;
4、可以通过关闭按钮实现关闭窗口。
三、实验步骤、结果
1、程序代码:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class ZhxCacu extends JFrame implements ActionListener {
JPanel jpResult = new JPanel();
JPanel jpButton = new JPanel();
JTextField jtfResult = new JTextField("0");
JButton zero = new JButton("0"); //数字键0
JButton one = new JButton("1"); //数字键1
JButton two = new JButton("2"); //数字键2
JButton three = new JButton("3"); //数字键3
JButton four = new JButton("4"); //数字键4
JButton five = new JButton("5"); //数字键5
JButton six = new JButton("6"); //数字键6
JButton seven = new JButton("7"); //数字键7
JButton eight = new JButton("8"); //数字键8
JButton nine = new JButton("9"); // 数字键9
JButton plus = new JButton("+");
JButton sub = new JButton("-");
JButton mul = new JButton("*");
JButton div = new JButton("/");
JButton equal = new JButton("=");
JButton ce = new JButton("ce"); // 置零键
JButton point = new JButton(".");
JButton tzero = new JButton("00");
//com代表敲击运算符,digit代表敲击数字键
boolean com = false;
boolean digit = false;
float total=0;
String sum="";
int symbol=0;
int b,c=0;
public ZhxCacu(){
// 添加结果输入框并设置对齐方式
jpResult.setLayout(new BorderLayout());
jpResult.add(jtfResult);
jtfResult.setEditable(false);
jtfResult.setHorizontalAlignment(SwingConstants.RIGHT);
//将组件添加到窗体上
this.add(jpResult,"North");
this.add(jpButton,"Center");
// 定义按钮区域布局管理器为网格布局
jpButton.setLayout(new GridLayout(6, 3, 10, 10));
// 添加各个按钮键
jpButton.add(seven);
jpButton.add(eight);
jpButton.add(nine);
jpButton.add(four);
jpButton.add(five);
jpButton.add(six);
jpButton.add(one);
jpButton.add(two);
jpButton.add(three);
jpButton.add(zero);
jpButton.add(tzero);
jpButton.add(plus);
jpButton.add(sub);
jpButton.add(mul);
jpButton.add(div);
jpButton.add(point);
jpButton.add(equal);
jpButton.add(ce);
one.addActionListener(this);//对1按钮添加监听事件
two.addActionListener(this);//对2按钮添加监听事件
three.addActionListener(this);//对3按钮添加监听事件
four.addActionListener(this);//对4按钮添加监听事件
five.addActionListener(this);//对5按钮添加监听事件
six.addActionListener(this);//对6按钮添加监听事件
seven.addActionListener(this);//对7按钮添加监听事件
eight.addActionListener(this);//对8按钮添加监听事件
nine.addActionListener(this);//对9按钮添加监听事件
zero.addActionListener(this);//对0按钮添加监听事件
ce.addActionListener(this);//对置零按钮添加监听事件
plus.addActionListener(this);//对+按钮添加监听事件
equal.addActionListener(this);//对=按钮添加监听事件
sub.addActionListener(this);//对-按钮添加监听事件
mul.addActionListener(this);//对*按钮添加监听事件
div.addActionListener(this);//对/按钮添加监听事件
tzero.addActionListener(this);//对00按钮添加监听事件
point.addActionListener(this);//对.按钮添加监听事件
pack();//初始化窗体大小最合适大小
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
this.setSize(300,300);
this.setVisible(true);
}
public static void main(String[] args) {
// TODO 自动生成方法存根
new ZhxCacu();
}
public void actionPerformed(ActionEvent e) {
// TODO 自动生成方法存根
//数字
if(e.getSource()==one){
if(com||digit==false){//第一次敲击数字按钮
jtfResult.setText("1");
com = false;
digit = true;
}else{
sum = jtfResult.getText()+"1";
jtfResult.setText(sum);
}
}
else if(e.getSource()==two){
if(com||digit==false){//第一次敲击数字按钮
jtfResult.setText("2");
com = false;
digit = true;
}else{
sum = jtfResult.getText()+"2";
jtfResult.setText(sum);
}
}
else if(e.getSource()==two){
if(com||digit==false){//第一次敲击数字按钮
jtfResult.setText("2");
com = false;
digit = true;
}else{
sum = jtfResult.getText()+"2";
jtfResult.setText(sum);
}
}
else if(e.getSource()==two){
if(com||digit==false){//第一次敲击数字按钮
jtfResult.setText("2");
com = false;
digit = true;
}else{
sum = jtfResult.getText()+"2";
jtfResult.setText(sum);
}
}
else if(e.getSource()==two){
if(com||digit==false){//第一次敲击数字按钮
jtfResult.setText("2");
com = false;
digit = true;
}else{
sum = jtfResult.getText()+"2";
jtfResult.setText(sum);
}
}
else if(e.getSource()==three){
if(com||digit==false){//第一次敲击数字按钮
jtfResult.setText("3");
com = false;
digit = true;
}else{
sum = jtfResult.getText()+"3";
jtfResult.setText(sum);
}
}
else if(e.getSource()==four){
if(com||digit==false){//第一次敲击数字按钮
jtfResult.setText("4");
com = false;
digit = true;
}else{
sum = jtfResult.getText()+"4";
jtfResult.setText(sum);
}
}
else if(e.getSource()==five){
if(com||digit==false){//第一次敲击数字按钮
jtfResult.setText("5");
com = false;
digit = true;
}else{
sum = jtfResult.getText()+"5";
jtfResult.setText(sum);
}
}
else if(e.getSource()==six){
if(com||digit==false){//第一次敲击数字按钮
jtfResult.setText("6");
com = false;
digit = true;
}else{
sum = jtfResult.getText()+"6";
jtfResult.setText(sum);
}
}
else if(e.getSource()==seven){
if(com||digit==false){//第一次敲击数字按钮
jtfResult.setText("7");
com = false;
digit = true;
}else{
sum = jtfResult.getText()+"7";
jtfResult.setText(sum);
}
}
else if(e.getSource()==eight){
if(com||digit==false){//第一次敲击数字按钮
jtfResult.setText("8");
com = false;
digit = true;
}else{
sum = jtfResult.getText()+"8";
jtfResult.setText(sum);
}
}
else if(e.getSource()==nine){
if(com||digit==false){//第一次敲击数字按钮
jtfResult.setText("9");
com = false;
digit = true;
}else{
sum = jtfResult.getText()+"9";
jtfResult.setText(sum);
}
}
else if(e.getSource()==zero){
if(com||digit==false){//第一次敲击数字按
jtfResult.setText("0");
com = false;
digit = true;
}else{
sum = jtfResult.getText()+"0";
jtfResult.setText(sum);
if(Float.parseFloat(sum)!=0){
}
else{
if(b==1)
{sum = jtfResult.getText()+"0";
jtfResult.setText(sum);}
else
jtfResult.setText("0");
}
}
}
else if(e.getSource()==tzero){
if(com||digit==false){//第一次敲击数字按
jtfResult.setText("00");
com = false;
digit = true;
}else{
sum = jtfResult.getText()+"00";
jtfResult.setText(sum);
}
}
else if(e.getSource()==point){
if(com||digit==false){//第一次敲击数字按钮
b=1;
com = true;
digit = false;
}else if(c==1); else
{
b=1;
sum = jtfResult.getText()+".";
jtfResult.setText(sum);c=1;
}
}
//运算
else if(e.getSource()==plus){
symbol = 1;c=0;
total = Float.parseFloat(jtfResult.getText());
com = true;
digit = false;
}
else if(e.getSource()==sub){
symbol = 2;c=0;
total = Float.parseFloat(jtfResult.getText());
com = true;
digit = false;
}
else if(e.getSource()==mul){
symbol = 3;c=0;
total = Float.parseFloat(jtfResult.getText());
com = true;
digit = false;
}
else if(e.getSource()==div){
symbol = 4;c=0;
total = Float.parseFloat(jtfResult.getText());
com = true;
digit = false;
}
else if(e.getSource()==ce){
com = true;
digit = false;
total=0;
sum ="0" ;
jtfResult.setText(sum);
}
//=
else if(e.getSource()==equal){
com = true;
digit = false;
switch(symbol){
case 1:jtfResult.setText(new Float(total+Float.parseFloat(jtfResult.getText())).toString());b=0;c=0;break;
case 2:jtfResult.setText(new
Float(total-Float.parseFloat(jtfResult.getText())).toString());b=0;c=0;break;
case 3:jtfResult.setText(new
Float(total*Float.parseFloat(jtfResult.getText())).toString());b=0;c=0;break;
case 4:if( Float.parseFloat(jtfResult.getText())==0 )
{try{throw new Exception();}
catch(Exception a){
jtfResult.setText("错误~被除数不能为0,请重新输入:");
}
}
else
jtfResult.setText(new
Float(total/Float.parseFloat(jtfResult.getText())).toString());b=0;c=0;break;
}
digit=false;
total = 0;
}
}
}
2、界面:
四、实验中的问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
以及解决
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
:
1、问题: 被除数为0
解决:抛出异常
2、问题: 阻止0、小数点在同一数字中重复出现
解决: 设置标志,
五、总结:
1、进一步了解了项目开发的步骤,思路,以及程序的布局和框架结构,尤其是对JAVA的模块化设计有了更为深入的了解。
2、进一步掌握图形用户界面GUI,了解Swing组件的使用,以及系统提供的该工具的作用,进一步掌握JAVA事件响应机制的原理,更好的掌握面向对象编程的思路。