java实现一个数除另一个数_Java程序编写一个计算器类,要求实现加、减、乘、除运算,注意在进行除法运算时,如果除数为0,...

import java.awt.BorderLayout;import java.awt.Color;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;public class Jisuanqi extends JFrame implements ActionListener {private static final long serialVersionUID=1L;Result result=new Result();定义text的面板Number_Key number_key=new Number_Key();定义按钮面板当点击按钮+、-、*、/时,com = truebooleancom = false;当i=0时说明是我们第一次输入,字符串text不会累加int i=0;存放text的内容String text=";存放点击按钮+、-、*、/之前的数值double defbutton=0;的代号分别为1,2,3,4int symbol=0;构造函数Jisuanqi(){super("计算器");设定标题setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);设定关闭窗体时退出程序JPanel pane=new JPanel();定义主面板pane.setLayout(new BorderLayout());setBounds(380,220,30,80);前两个参数是在屏幕上显示的坐标,后两个是大小替换图标ImageIcon icon=new ImageIcon("F:1.GIF");Jisuanqi.class.getResource("APPLE.GIF")setIconImage(icon.getImage());pane.add(result,BorderLayout.NORTH);pane.add(number_key,BorderLayout.CENTER);pane.add(number_key.equal,BorderLayout.SOUTH);number_key.one.addActionListener(this);对1按钮添加监听事件number_key.two.addActionListener(this);对2按钮添加监听事件number_key.three.addActionListener(this);对3按钮添加监听事件number_key.four.addActionListener(this);对4按钮添加监听事件number_key.five.addActionListener(this);对5按钮添加监听事件number_key.six.addActionListener(this);对6按钮添加监听事件number_key.seven.addActionListener(this);对7按钮添加监听事件number_key.eight.addActionListener(this);对8按钮添加监听事件number_key.nine.addActionListener(this);对9按钮添加监听事件number_key.zero.addActionListener(this);对0按钮添加监听事件number_key.ce.addActionListener(this);对置零按钮添加监听事件number_key.plus.addActionListener(this);对+按钮添加监听事件number_key.equal.addActionListener(this);对=按钮添加监听事件number_key.sub.addActionListener(this);对-按钮添加监听事件number_key.mul.addActionListener(this);对*按钮添加监听事件number_key.div.addActionListener(this);对/按钮添加监听事件number_key.point.addActionListener(this);对.按钮添加监听事件setContentPane(pane);pack();初始化窗体大小为正好盛放所有按钮}各个按钮触发的事件public void actionPerformed(ActionEvent e){如果是点击数字按钮那么先要判断是否在此之前点击了+、-、*、/、=,如果是那么com=true如果没有com=false;或者是否点击数字键,如果是i=1,如果没有 i=0;if(e.getSource()=number_key.one){if(com |i=0){result.text.setText("1");com = false;i=1;} else {text=result.text.getText();result.text.setText(text+"1");}} else if(e.getSource()=number_key.two){if(com |i=0){result.text.setText("2");com = false;i=1;} else {text=result.text.getText();result.text.setText(text+"2");}} else if(e.getSource()=number_key.three){if(com |i=0){result.text.setText("3");com = false;i=1;} else {text=result.text.getText();result.text.setText(text+"3");}} else if(e.getSource()=number_key.four){if(com |i=0){result.text.setText("4");com = false;i=1;} else {text=result.text.getText();result.text.setText(text+"4");}} else if(e.getSource()=number_key.five){if(com |i=0){result.text.setText("5");com = false;i=1;} else {text=result.text.getText();result.text.setText(text+"5");}} else if(e.getSource()=number_key.six){if(com |i=0){result.text.setText("6");com = false;i=1;} else {text=result.text.getText();result.text.setText(text+"6");}} else if(e.getSource()=number_key.seven){if(com |i=0){result.text.setText("7");com = false;i=1;} else {text=result.text.getText();result.text.setText(text+"7");}} else if(e.getSource()=number_key.eight){if(com |i=0){result.text.setText("8");com = false;i=1;} else {text=result.text.getText();result.text.setText(text+"8");}} else if(e.getSource()=number_key.nine){if(com |i=0){result.text.setText("9");com = false;i=1;} else {text=result.text.getText();result.text.setText(text+"9");}}对于0这个按钮有一定的说法,在程序里不会出现如00000这样的情况,加了判断条件就是如果text中的数值=0就要判断在这个数值中是否有.存在?如果有那么就在原来数值基础之上添 加0;否则保持原来的数值不变else if(e.getSource()=number_key.zero){/result.text.getText()是得到text里内容的意思if(com |i=0){result.text.setText("0");com = false;i=1;} else {text=result.text.getText();if(Float.parseFloat(text)>0|Float.parseFloat(text)){/Float.parseFloat(text)就是类型转换了,下面都是一样result.text.setText(text+"0");} else {if(text.trim().indexOf(".")=-1){result.text.setText(text);} else {result.text.setText(text+"0");}}}} else if(e.getSource()=number_key.ce){result.text.setText("0");i=0;com = true;text=";defbutton=0;}本程序不会让一个数值中出现2个以上的小数点.具体做法是:判断是否已经存在.存在就不添加,不存在就添加.else if(e.getSource()=number_key.point){if(com |i=0){result.text.setText("0.");com = false;i=1;} else {text=result.text.getText();if(text.trim().indexOf(".")=-1){result.text.setText(text+".");} else {result.text.setText(text);}}}/获得点击+之前的数值else if(e.getSource()=number_key.plus){com = true;i=0;defbutton=Double.parseDouble(result.text.getText());symbol=1;}/获得点击-之前的数值else if(e.getSource()=number_key.sub){com = true;i=0;defbutton=Double.parseDouble(result.text.getText());symbol=2;}/获得点击*之前的数值else if(e.getSource()=number_key.mul){com = true;i=0;defbutton=Double.parseDouble(result.text.getText());System.out.println(defbutton);symbol=3;}/获得点击/之前的数值else if(e.getSource()=number_key.div){com = true;i=0;defbutton=Double.parseDouble(result.text.getText());symbol=4;} else if(e.getSource()=number_key.equal){switch(symbol){case 1:{/计算加法double ad=defbuttonDouble.parseDouble(result.text.getText());result.text.setText(ad+"");i=0;text=";break;}case 2:{/计算减法double ad=defbuttonDouble.parseDouble(result.text.getText());result.text.setText(String.valueOf(ad));i=0;text=";break;}case 3:{/计算乘法double ad=defbuttonDouble.parseDouble(result.text.getText());result.text.setText(ad+"");i=0;text=";break;}case 4:{/计算除法double ad=defbuttonDouble.parseDouble(result.text.getText());result.text.setText(ad+"");i=0;text=";break;}}System.out.println(com);}System.out.println(result.text.getText());}SuppressWarnings("deprecation")public static void main(String[]args){Jisuanqi loveyou=new Jisuanqi();loveyou.show();}}计算器数字按钮定义面板class Number_Key extends JPanel {private static final long serialVersionUID=1L;JButton zero=new JButton("0");数字键0JButton one=new JButton("1");数字键1JButton two=new JButton("2");数字键2JButton three=new JButton("3");数字键3JButton four=new JButton("4");数字键4JButton five=new JButton("5");数字键5JButton six=new JButton("6");数字键6JButton seven=new JButton("7");数字键7JButton eight=new JButton("8");数字键8JButton nine=new JButton("9");数字键9JButton plus=new JButton("+");JButton sub=new JButton("-");JButton mul=new JButton("*");JButton div=new JButton("/");JButton equal=new JButton("=");JButton ce=new JButton("清零");置零键JButton point=new JButton(".");Number_Key(){setLayout(new GridLayout(4,4,1,1));定义布局管理器为网格布局setBackground(Color.blue);设置背景颜色添加按钮add(one);add(two);add(three);add(four);add(five);add(six);add(seven);add(eight);add(nine);add(zero);add(plus);add(sub);add(mul);add(div);add(point);add(equal);add(ce);}}计算器显示结果的窗体class Result extends JPanel {private static final long serialVersionUID=1L;text先是输入和结果JTextField text=new JTextField("0");SuppressWarnings("deprecation")Result(){/讲输入的数字或得到的结果在text的右边显示text.setHorizontalAlignment(SwingConstants.RIGHT);text.enable(false);文本框不能编辑setLayout(new BorderLayout()..www.mh456.com防采集。

import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Caculator extends JFrame implements KeyListener{ //构造Caculator类private Container content;//构造容器private JButton bCancel; //清除按钮private JButton[] b=new JButton[16]; //构造按钮数组private char LastOp; //操作符号private boolean Countable; //用于判断是否可计算private String KeyLabel[]={"7","8","9","/","4","5","6","*","1","2","3","-","0",".","=","+"};private StringBuffer str;private JPanel KeyPanel,TextPanel; //按键面板,结果面板private JTextArea tResult; //用于显示结果的文本域private double x=0,y=0; //操作数 public Caculator(){ setTitle("袖珍计算器"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); content =getContentPane(); //初始化一个容器 content.setLayout(new BorderLayout()); //设置容器的布局方式 KeyPanel=new JPanel(); TextPanel=new JPanel(); TextPanel.setLayout(new FlowLayout()); //设置TextPanel面板的布局方式 KeyPanel.setLayout(new GridLayout(4,4)); //设置KeyPanel面板的布局方式 tResult=new JTextArea(1,15); //实例化一个JTextArea类 tResult.setEditable(false); //将tResult设置为不可编辑 tResult.setText("0"); //文本域显示为0 tResult.addKeyListener(this); //添加键盘监听器 str=new StringBuffer(); //实例化一个字符串缓冲区 ButtonListener btnListener = new ButtonListener(); //实例化一个ButtonListener类的监听器 for(int i=0;i<16;i++){ b[i] = new JButton(KeyLabel[i]); b[i].addActionListener(btnListener); //添加ButtonListener类监听器 b[i].addKeyListener(this); //添加键盘监听器 KeyPanel.add(b[i]); } bCancel=new JButton("C"); bCancel.addActionListener(btnListener); //添加ButtonListener类监听器 bCancel.addKeyListener(this); //添加键盘监听器 bCancel.setBackground(Color.RED); LastOp='!e69da5e887aa62616964757a686964616f31333332613665'; //若LastOp的值不为'+' '-' '*' '/'中的一个,则约定它的值是 '!' Countable=false; TextPanel.add(tResult); TextPanel.add(bCancel); content.add("North",TextPanel); content.add("Center",KeyPanel); pack(); setResizable(false); setVisible(true); } class ButtonListener implements ActionListener //构造监听器 { public void actionPerformed(ActionEvent e) { String s = ((JButton)e.getSource()).getText().trim(); //得到用户按下的按钮上的文本 char c = s.charAt(0); //得到s中索引为0的字符 if(c == 'C') //选择按钮C { tResult.setText("0"); str.setLength(0); LastOp = '!'; Countable = false; x = 0; y = 0; return; } if(c == '.') //选择输入小数点 { if( tResult.getText().trim().indexOf(".") != -1) return; else { str.insert(str.length(),"."); tResult.append("."); return; } } if(c == '+'||c == '-'||c == '*'||c == '/'||c == '=') //按加减乘除或等号键 { Caculate(c); return; } //剩下的数字键 tResult.setText(str.append(s).toString()); Countable=true; } } //实现KeyListener监听器 public void keyTyped(KeyEvent ek) { char c = ek.getKeyChar(); //获取键盘上按的数字键 if(c=='1'||c=='2'||c=='3'||c=='4'||c=='5'||c=='6'||c=='7'||c=='8'||c=='9'||c=='0') { tResult.setText(str.append(c).toString()); Countable=true; return; } if(c =='.') //按小数点 { if( tResult.getText().trim().indexOf(".") != -1) return; else { str.insert(str.length(),"."); tResult.append("."); return; } } if((int)c == KeyEvent.VK_DELETE ) //按delete键 { tResult.setText("0"); str.setLength(0); LastOp = '!'; Countable = false; x = 0; y = 0; return; } if(c == '+'||c == '-'||c == '*'||c == '/'||c == '=') //按加减乘除或等号键 { Caculate(c); return; } } public void keyPressed(KeyEvent ek) {} public void keyReleased(KeyEvent ek) {} public void Caculate(char c) { if(c == '+') //按加号键 { Add(); return; } if( c == '-') //按减号键 { Minus(); return; } if(c == '*') //按乘号键 { Mul(); return; } if(c == '/') //按除号键 { Div(); return; } if(c == '=') //按等号键 { Equal(); return; } } public void Add(){ //加方法 if(Countable==true && LastOp != '!') //判断是否进行运算 { y = Double.parseDouble(tResult.getText().trim()); switch(LastOp) { case '+' : x = x+y; break; case '-' : x = x-y; break; case '*' : x = x*y; break; case '/' :if(y != 0) x = x/y; else { tResult.setText("除数不能为0");return; } } tResult.setText(""+x); Countable = false; } else x = Double.parseDouble(tResult.getText().trim()); str.setLength(0); y = 0; LastOp = '+'; return ; } public void Minus(){ //减方法 if(Countable==true && LastOp != '!') //判断是否进行运算 { y = Double.parseDouble(tResult.getText().trim()); switch(LastOp) { case '+' : x = x+y; break; case '-' : x = x-y; break; case '*' : x = x*y; break; case '/' :if(y != 0) x = x/y; else { tResult.setText("除数不能为0");return; } } tResult.setText(""+x); Countable = false; } else x = Double.parseDouble(tResult.getText().trim()); str.setLength(0); y = 0; LastOp = '-'; return ; } public void Mul(){ //乘方法 if(Countable==true && LastOp != '!') //判断是否进行运算 { y = Double.parseDouble(tResult.getText().trim()); switch(LastOp) { case '+' : x = x+y; break; case '-' : x = x-y; break; case '*' : x = x*y; break; case '/' :if(y != 0) x = x/y; else { tResult.setText("除数不能为0");return; } } tResult.setText(""+x); Countable = false; } else x = Double.parseDouble(tResult.getText().trim()); str.setLength(0); y = 0; LastOp = '*'; return ; } public void Div() //除方法 { if(Countable==true && LastOp != '!') //判断是否进行运算 { y = Double.parseDouble(tResult.getText().trim()); switch(LastOp) { case '+' : x = x+y; break; case '-' : x = x-y; break; case '*' : x = x*y; break; case '/' :if(y != 0) x = x/y; else { tResult.setText("除数不能为0");return; } } tResult.setText(""+x); Countable = false; } else x = Double.parseDouble(tResult.getText().trim()); str.setLength(0); y = 0; LastOp = '/'; return ; } public void Equal() //求结果的方法 { y = Double.parseDouble(tResult.getText().trim()); switch(LastOp) { case '+' : x = x+y; break; case '-' : x = x-y; break; case '*' : x = x*y; break; case '/' :if(y != 0) x = x/y; else { tResult.setText("除数不能为0");return; } } tResult.setText(""+x); Countable=false; return; } public static void main(String args[]) { Caculator cal=new Caculator(); }}追问能否给一个简单的计算机程序呢追答public class Hello{ public static void main(String[] args){ java.util.Scanner sc = new java.util.Scanner(System.in); try{ System.out.println("请输入要运算的第一个数.."); float f1 = sc.nextFloat(); System.out.println("输入运算符+ - * /(默认不输入为+)."); char fu = '+'; //String fuhao = next(); try{ char[] zhuan = sc.next().toCharArray(); fu = zhuan[0]; }catch(Exception e){System.out.println("运算符输入错误");} System.out.println("请输入要运算的第二个数.."); float f2 = sc.nextFloat(); switch(fu){ case '+': System.out.println("加法:" + (f1 + f2)); break; case '-': System.out.println("减法:" + (f1 - f2)); break; case '/': if(f2 == 0){ System.out.println("被除数不能为0"); }else{ System.out.println("除法:" + (f1 / f2)); } break; case '*': System.out.println("乘法:" + (f1 * f2)); break; default : System.out.println("不存在的符号"); } }catch(Exception e){System.out.println("请输入数字或小数");} }}

设置显示面板,用一个文本框来作为计算器的显示部分。private void setupDisplayPanel(){ JPanel panel=new JPanel();panel.setLayout(new BorderLayout());panel.setBorder(border);setupTextbox();panel

80e6a2a9f673eafd68fa261c6c1fa549.png

用Java定义一个类,实现加减乘除计算功能,把结果输出?

import java.awt.*;import java.awt.event.*;import java.lang.*;import javax.swing.*;public class Counter extends Frame { 声明三个面板的布局 GridLayout gl1,gl2,gl3;Panel p0,p1,p2,p3;

0762e992d19614430b0d2262e7b1ae78.png

给你一个参考,希望不要被百度吞了当晚餐import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.text.DecimalFormat;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;public class Calculator {计算器面板private JFrame f=new JFrame("Calculator");输入面扳private JPanel inputPanel=new JPanel();加减乘除面板private JPanel operationPanel=new JPanel();数字面板private JPanel buttonsPanel=new JPanel();输入数据文本框private JTextField input=new JTextField(20);退格键private JButton backspace=new JButton("BackSpace");private JButton CE=new JButton("CE");private JButton C=new JButton("C");四则运算符号键private JButton add=new JButton("+");private JButton sub=new JButton("-");private JButton mul=new JButton("*");private JButton div=new JButton("/");小数点private JButton decimal=new JButton(".");等号private JButton equal=new JButton("=");数字键private JButton zero=new JButton("0");private JButton one=new JButton("1");private JButton two=new JButton("2");private JButton three=new JButton("3");private JButton four=new JButton("4");private JButton five=new JButton("5");private JButton six=new JButton("6");private JButton seven=new JButton("7");private JButton eight=new JButton("8");private JButton nine=new JButton("9");private String num1=";保存第一个运算数字private String operator=";保存运算符号public static void main(String[]args){new Calculator();new计算器实例}public Calculator(){添加组件,布局inputPanel.add(input);f.add(inputPanel,BorderLayout.NORTH);operationPanel.add(backspace);operationPanel.add(CE);operationPanel.add(C);f.add(operationPanel,BorderLayout.CENTER);buttonsPanel.add(add);buttonsPanel.add(sub);buttonsPanel.add(mul);buttonsPanel.add(div);buttonsPanel.add(one);buttonsPanel.add(two);buttonsPanel.add(three);buttonsPanel.add(zero);buttonsPanel.add(four);buttonsPanel.add(five);buttonsPanel.add(six);buttonsPanel.add(decimal);buttonsPanel.add(seven);buttonsPanel.add(eight);buttonsPanel.add(nine);buttonsPanel.add(equal);buttonsPanel.setLayout(new GridLayout(4,4));f.add(buttonsPanel,BorderLayout.SOUTH);注册各个组件监听事件backspace.addMouseListener(new OperationMouseListener());CE.addMouseListener(new OperationMouseListener());C.addMouseListener(new OperationMouseListener());decimal.addMouseListener(new OperationMouseListener());equal.addMouseListener(new OperationMouseListener());注册四则运算监听add.addMouseListener(new CalcMouseListener());sub.addMouseListener(new CalcMouseListener());mul.addMouseListener(new CalcMouseListener());div.addMouseListener(new CalcMouseListener());注册数字监听事件zero.addMouseListener(new NumberMouseListener());one.addMouseListener(new NumberMouseListener());two.addMouseListener(new NumberMouseListener());three.addMouseListener(new NumberMouseListener());four.addMouseListener(new NumberMouseListener());five.addMouseListener(new NumberMouseListener());six.addMouseListener(new NumberMouseListener());seven.addMouseListener(new NumberMouseListener());eight.addMouseListener(new NumberMouseListener());nine.addMouseListener(new NumberMouseListener());f.setVisible(true);f.pack();f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}private class NumberMouseListener implements MouseListener{public void mouseClicked(MouseEvent e){if(input.getText().trim().equals("0")){/如果文本框已经是0,结果还是0input.setText(((JButton)e.getSource()).getText().trim());}else{/否则的话,把0添加到后面,譬如文本框是1,结果就为10input.setText(input.getText().concat(((JButton)e.getSource()).getText().trim()));}}public void mouseEntered(MouseEvent e){}public void mouseExited(MouseEvent e){}public void mousePressed(MouseEvent e){}public void mouseReleased(MouseEvent e){}}private class CalcMouseListener implements MouseListener{如果输入的是运算符号,保存第一个结果和运算符号public void mouseClicked(MouseEvent e){num1=input.getText().trim();input.setText("");operator=((JButton)e.getSource()).getText().trim();}public void mouseEntered(MouseEvent e){}public void mouseExited(MouseEvent e){}public void mousePressed(MouseEvent e){}public void mouseReleased(MouseEvent e){}}private class OperationMouseListener implements MouseListener{public void mouseClicked(MouseEvent e){if(e.getSource()=backspace){/退格键,删除一个直到没有字符删除String inputText=input.getText();if(inputText.length()>0){input.setText(inputText.substring(0,inputText.length()-1));}}else if(e.getSource()=C){input.setText("0");C,清空所有运算数字和符号num1=";}else if(e.getSource()=CE){input.setText("0");CE->将文本框置为0}else if(e.getSource()=decimal){String text=input.getText().trim();如果按了小数点,如果文本框已经有小数点,不做任何操作,否则在结果后面加上小数点if(text.indexOf(".")=-1){input.setText(text.concat("."));}}else if(e.getSource()=equal){如果是等号if!operator.trim().equals("")){if!input.getText().trim().equals("")){double result=0D;if(operator.equals("+")){/执行加法运算result=Double.parseDouble(num1)+Double.parseDouble(input.getText().trim());}else if(operator.equals("-")){/减法运算result=Double.parseDouble(num1)-Double.parseDouble(input.getText().trim());}else if(operator.equals("*")){/乘法运算result=Double.parseDouble(num1)*Double.parseDouble(input.getText().trim());}else if(operator.equals("/")){/除法运算result=Double.parseDouble(num1)/Double.parseDouble(input.getText().trim());}格式化最终结果,保留两位小数点input.setText(new DecimalFormat("0.00").format(result));}}}}public void mouseEntered(MouseEvent e){}public void mouseExited(MouseEvent e){}public void mousePressed(MouseEvent e){}public void mouseReleased(MouseEvent e){}}}内容来自www.mh456.com请勿采集。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值