java简单计算器源代码Word版

合集下载

Java编写简单计算器(附源代码)

Java编写简单计算器(附源代码)

西安交通大学《Java技术与应用》大作业简单计算器的编写一、选题理由这个学期我选择《Java技术与应用》这门课(其实我的选修课已经修完了),完全是对java语言的兴趣和老师的个人魅力使然。

这门课让我学到了许多知识,了解到了java语言的基本语法、结构和特点。

由于个人觉得水平有限,并且没有队友,所以选择了较为容易的简易计算器作为我的大作业。

二、系统目标实现对代数表达式的输入、计算、输出。

三、系统分析与设计(1)计算类cal设计编写\public class cal {public static boolean check(String str)If Jigloo is being used* commercially (ie, by a corporation, company or business for any purpose* whatever) then you should purchase a license for each developer using Jigloo.* Please visit for details. Use of Jigloo implies* acceptance of these licensing terms. A COMMERCIAL LICENSE HAS NOTBEEN* PURCHASED FOR THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED LEGALLY FOR* ANY CORPORATE OR COMMERCIAL PURPOSE.*/public class NewJFrame extends {》private JTextField jTextField1;private JButton jButton1;private JButton jButton15;private JButton jButton16;private JButton jButton21;private JButton jButton20;private JButton jButton19;private JButton jButton18;private JButton jButton17;private JButton jButton14;?private JButton jButton13;private JButton jButton12;private JButton jButton11;private JButton jButton10;private JButton jButton9;private JButton jButton8;private JButton jButton7;private JButton jButton5;private JButton jButton4;private JButton jButton3;&private JButton jButton2;/*** Auto-generated main method to display this JFrame*/public static void main(String[] args) {(new Runnable() {public void run() {NewJFrame inst = new NewJFrame();(null);\(true);}});}public NewJFrame() {super();initGUI();`}private void initGUI() {try {setDefaultCloseOperation;getContentPane().setLayout(null);("Mycalculation");{jTextField1 = new JTextField();getContentPane().add(jTextField1, "North");)(new 72));(0, 0, 460, 72);(new "Microsoft YaHei UI", 1,16));}{jButton1 = new JButton();getContentPane().add(jButton1);("1");'(25, 87, 82, 48);(new "Microsoft YaHei UI", 0, 18));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton2);("2");(120, 87, 82, 48);(new "Microsoft YaHei UI", 0, 18));)(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="dd(jButton3);("3");(214, 87, 82, 48);(new "Microsoft YaHei UI", 0, 18));(new ActionListener() {|public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton4);("4");(25, 142, 82, 48);(new "Microsoft YaHei UI", 0, 18));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="`+ evt);dd(jButton5);("5");(122, 142, 82, 48);(new "Microsoft YaHei UI", 0, 18));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton7);!("6");(215, 142, 82, 48);(new "Microsoft YaHei UI", 0, 18));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton8);("7");(26, 201, 82, 50);¥(new "Microsoft YaHei UI", 0, 18));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="dd(jButton9);("8");(122, 201, 82, 50);(new "Microsoft YaHei UI", 0, 18));(new ActionListener() {|public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton10);("9");(215, 201, 82, 50);jButton10.setFont(new "Microsoft YaHei UI", 0, 18));(new ActionListener() {public void actionPerformed(ActionEvent evt) { @", event="+ evt);dd(jButton11);("0");(26, 269, 82, 48);jButton11.setFont(new "Microsoft YaHei UI", 0, 18));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="~+ evt);dd(jButton12);("+");(309, 147, 64, 45);jButton12.setFont(new "Microsoft YaHei UI", 0, 28));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);—dd(jButton13);("-");(384, 148, 64, 44);jButton13.setFont(new "Microsoft YaHei UI", 0, 28));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton14);…("*");(309, 208, 64, 44);jButton14.setFont(new "Microsoft YaHei UI", 0, 28));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton15);("/");!(384, 208, 64, 44);jButton15.setFont(new "Microsoft YaHei UI", 0, 28));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton16);("=");(386, 271, 64, 44);/jButton16.setFont(new "Microsoft YaHei UI", 0, 28));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton17);("^");(311, 271, 64, 44);jButton17\.setFont(new "Microsoft YaHei UI", 0, 28));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton18);("C");(215, 271, 82, 48);jButton18.setFont(new "Microsoft YaHei UI", 0, 18));…(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton19);(")");(384, 93, 64, 44);jButton19.setFont(new "Microsoft YaHei UI", 0, 28));(new ActionListener() {~public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton20);("(");(308, 93, 64, 44);jButton20.setFont(new "Microsoft YaHei UI", 0, 28));(new ActionListener() {public void actionPerformed(ActionEvent evt) { !", event="+ evt);dd(jButton21);(".");(122, 270, 82, 48);jButton21.setFont(new "Microsoft YaHei UI", 0, 28));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="》+ evt);||(i)>=48&&(i)<=57))continue;else{(null, "输入错误!");return bool;}}||(i)!=')')&&(i+1)=='(')||(i)==')'&&(i+1)!='('||(i+1)=='.'))){}.else{(null, "输入错误!");return bool;}}elsebreak;i++;}if(num1==num2){bool=true;}:else (null, "输入错误!");return bool;}||(i)=='0'||(i)=='1'||(i)=='2'||(i)=='3'||(i)=='4'||(i)=='5'||(i)=='6'||(i)=='7'||(i)=='8'||(i)=='9'){str2=str2+(i);continue;}else{·if(str2!=""){//如果str2不为空,既之前有扫描到数字,则进行压栈(str2));//str2还原str2="";}//比较当前元素(其实为一操作符)与操作符栈中的栈顶元素的优先级for(;;){//如果当前元素的优先级低于或等于栈顶元素的优先级if(compare(i),())){*float temp;//做如下操作switch()){//栈顶元素为+,弹出数字栈的前两个元素,进行运算case '+':temp=()+();(temp);//弹出操作符栈中用过的元素();break;.//栈顶元素为-,弹出数字栈的前两个元素,进行运算case '-':temp=()+();(temp);//弹出操作符栈中用过的元素();break;//栈顶元素为*,弹出数字栈的前两个元素,进行运算case '*':temp=()*();;(temp);//弹出操作符栈中用过的元素();break;//栈顶元素为/,弹出数字栈的前两个元素,进行运算case '/':temp=1/()*();(temp);//弹出操作符栈中用过的元素();|break;//栈顶元素为^,弹出数字栈的前两个元素,进行运算case '^':float n=();float e=();temp=(float) (e,n);// (temp);//弹出操作符栈中用过的元素();break;~//栈顶元素为(,不进行任何运算case '('://只有当当前元素为“)”时,才弹出“(”,否则,将当前元素压栈,//并进行下一次循环,即扫描字符串的下一个元素if(i)==')'){//弹出操作符栈中用过的元素();continue loop;}else{¥(i));continue loop;}}}else{// “)” 不入栈if(i)!=')')(i));break;}}}}//返回栈顶元素,即算式结果return ();}//比较优先级,判断b的优先级是否大于等于a的优先级public static boolean compare(char a,char b){boolean bool=false;if(a=='#')bool=true;elseif(a=='$'&&b!='#')bool=true;elseif(a==')'&&b!='#'&&b!='$')bool=true;elseif((a=='+'||a=='-')&&(b=='+'||b=='-'||b=='*'||b=='/'||b=='^'||b=='('))bool=true;elseif((a=='*'||a=='/')&&(b=='*'||b=='/'||b=='^'||b=='('))bool=true;elseif((a=='^')&&(b=='^'||b=='('))bool=true;elseif(a=='('&&b=='(')bool=true;return bool;} }?。

java 简单实用计算器代码

java 简单实用计算器代码

//JSQ.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class JSQ{public static void main(String args[]){new MyJSQ("My计算器");}}class MyJSQ extends Frame implements ActionListener{JButton bOption,bNumber;TextField Tresult;int flag=0,perflag;//perflag表示单击了那一个运算符,1表示"+",2表示"-",3表示"*",4表示"/"double op1=0.0,op2=0.0;//操作数StringBuffer str=new StringBuffer();//显示屏所显示的字符串MyJSQ(String s){setTitle(s);Panel conPanel=new Panel();conPanel.setLayout(new BorderLayout());//设置显示屏Panel ptop=new Panel();Tresult=new TextField("0",20);Tresult.setEditable(false);//不可编辑性ptop.add(Tresult);conPanel.add(ptop,BorderLayout.NORTH);//总按键面板Panel pButton=new Panel();Cursor cs=Cursor.getPredefinedCursor(Cursor.HAND_CURSOR);setCursor(cs);pButton.setLayout(new BorderLayout());//操作面板1Panel pUp=new Panel();pUp.setLayout(new GridLayout(2,5,1,1));//(行数,列数,水平间距,垂直间距)bOption=new JButton("x^3");bOption.setForeground(Color.gray);bOption.setMargin(new Insets(3,1,3,5));//setMargin()设置按钮边框和标签之间的空白。

《java简易计算器》Word文档

《java简易计算器》Word文档

//只可以做简易的加减乘除运算//每次运算结束之后必须按一下清除才可以进行第二次运算import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.Event;public class Calculator {Button[] bt = new Button[10];//数字键Button bp,bj,bc,bu,bq,be;//分别对应的是加,减,乘,除,清除,等于public String numCache="";//缓存拿到的值,这个地方如果不赋初值的话会报错,就是必须在第一次使用前按下清除键public int num1,num2;//参加运算的值public String showNum="";//文本框显示的值public String operator="";//显示的运算符TextField tf;//文本框public int result;public static void main(String[] args) {new Calculator().setFrame();}/*frame*/public void setFrame() {Frame mFrame = new Frame("java简易计算器");//窗口Panel p1 = new Panel();//文本框的容器tf = new TextField(30);//文本框p1.add(tf);//添加文本框进入容器mFrame.add(p1,BorderLayout.NORTH);//将p1放到mFrame的北区域Panel p2 = new Panel();//存放button的容器p2.setLayout(new GridLayout(4,4));//放置button的p2容器,默认添加到center区//添加按钮bt[0] = new Button("0");bt[1] = new Button("1");bt[2] = new Button("2");bt[3] = new Button("3");bt[4] = new Button("4");bt[5] = new Button("5");bt[6] = new Button("6");bt[7] = new Button("7");bt[8] = new Button("8");bt[9] = new Button("9");bp = new Button("+");bj = new Button("-");bc= new Button("*");bu= new Button("/");bq= new Button("清除");be= new Button("=");//将button添加进panelfor(int i=0;i<10;i++) {p2.add(bt[i]);}p2.add(bp);p2.add(bj);p2.add(bc);p2.add(bu);p2.add(bq);p2.add(be);bp.addActionListener(new Monitor());bj.addActionListener(new Monitor());bc.addActionListener(new Monitor());bu.addActionListener(new Monitor());bq.addActionListener(new Monitor());be.addActionListener(new Monitor());mFrame.add(p2);mFrame.pack();//注册监听器类for(int i=0;i<10;i++) {bt[i].addActionListener(new Monitor());}mFrame.setBackground(Color.GRAY);//窗口的背景颜色mFrame.setVisible(true);//显示窗口mFrame.addWindowListener(new WindowAdapter(){//窗口的关闭事件public void windowClosing(WindowEvent e) {System.exit(-1);}});}//frame构造方法结束,第9行开始//事件监听class Monitor implements ActionListener {public void actionPerformed(ActionEvent e) {Button b = (Button)e.getSource();String str = b.getActionCommand();//如果按下的是运算符if(str.equals("+")||str.equals("-")||str.equals("*")||str.equals("/")) {//按下的是运算符if((numCache)!="") {num1 = Integer.parseInt(numCache);}operator = str;tf.setText(operator);numCache = "";showNum = "";//如果按下的是清除键}else if(str.equals("清除")) {showNum = "";numCache="";tf.setText("0.");//如果按下的是等号}else if(str.equals("=")) {num2 = Integer.parseInt(numCache);if(operator.equals("+")) {result = num1+num2;}else if(operator.equals("-")) {result = num1-num2;}else if(operator.equals("*")) {result = num1*num2;}else{if(num2==0) {tf.setText("被除数不能为零");return;}result = num1/num2;}tf.setText(result+"");num1 = 0;num2 = 0;result = 0;}else {//如果按下的是数字showNum = showNum+b.getActionCommand();numCache = numCache+b.getActionCommand();tf.setText(showNum);}}}}//bug报告:(注:素材和资料部分来自网络,供参考。

JAVA简易计算器程序源代码

JAVA简易计算器程序源代码

JAVA简易计算器程序源代码package myText;import java.awt.*;import javax.swing.*;import java.awt.event.*;import javax.swing.border.*;public class Calculator extends JFrame implements ActionListener{ private JPanel Panel1=new JPanel();private JPanel Panel2=new JPanel();private JTextField tfResult=new JTextField(25);private JLabel label=new JLabel("计算结果:");private String recentOperation=null;private String recentNum=null;private boolean isNew=true;public void addButton(Container c,String s){JButton b=new JButton(s);b.setFont(new java.awt.Font("SansSerif",0,12));b.setForeground(Color.red);b.setBorder(BorderFactory.createRaisedBevelBorder());c.add(b);b.addActionListener(this);}//end public void addButton(Container c,String s)public void actionPerformed(ActionEvent e){String s=e.getActionCommand();if(s.charAt(0)>='0'&&s.charAt(0)<='9'){if(!isNew){tfResult.setText(tfResult.getText()+s);}//end if(!isNew)else{tfResult.setText(s);}//end elseisNew=false;}//end if(s.charAt(0)>='0'&&s.charAt(0)<='9') else if(s.equals(".")){if(tfResult.getText().indexOf(".")!=-1)return;if(!isNew&&tfResult.getText()!=""){tfResult.setText(tfResult.getText()+".");}//end ifelse{tfResult.setText("0.");}//end elseisNew=false;}//end if(s.equals("."))else if(s.equals("=")){equalaction(e);}//end if(s.equals("="))else{if((tfResult.getText()).equals("")){return;}//endif((tfResult.getText()).equals(""))if(recentOperation!=null){equalaction(e);}//end if(recentOperation!=null) recentOperation=s;recentNum=tfResult.getText();isNew=true;}//end else}//end public void actionPerformed(ActionEvent e) void equalaction(ActionEvent e){if(recentOperation==null||recentNum==null||tfResult.getTex t().equals("")){ return;}//end if()double last=0,now=0;try{last=Double.parseDouble(recentNum);now=Double.parseDouble(tfResult.getText());}//end trycatch(NumberFormatException ne){recentOperation=null;recentNum=null;tfResult.setText("数据输入不合法");System.out.println("数据输入不合法");isNew=true;return;}//end catch(NumberFormatException ne)if(recentOperation.equals("+")){last+=now;}//end if(recentOperation.equals("+"))if(recentOperation.equals("-")){last-=now;}//endif(recentOperation.equals("-"))if(recentOperation.equals("*")){last*=now;}//endif(recentOperation.equals("*"))if(recentOperation.equals("/")){last/=now;}//endif(recentOperation.equals("/"))tfResult.setText(""+last);recentNum=tfResult.getText();recentOperation=null;isNew=true;}//end void equalaction(ActionEvent e)public Calculator(){tfResult.setBorder(BorderFactory.createLoweredBevelBorder ());tfResult.setEditable(false);tfResult.setText("0");tfResult.setHorizontalAlignment(SwingConstants.RIGHT);////本java源代码由839682048整理修改//////Panel1.add(label,FlowLayout.LEFT);Panel1.add(tfResult);////本java源代码由839682048整理修改///Panel2.setLayout(new GridLayout(4,4,2,2));String buttons="789/456*123-0.=+";for(int i=0;i<buttons.length();i++){< p="">addButton(Panel2,buttons.substring(i,i+1));}//end for()//本java源代码由839682048整理修改///this.getContentPane().add(Panel1,"North");this.getContentPane().add(Panel2,"Center");this.setResizable(false);this.setTitle("计算器");this.addWindowListener(newjava.awt.event.WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}//end public Calculator1()public static void main(String[]args){Calculator mf=new Calculator();mf.setBounds(200,200,400,400);mf.show();}//end main()}//end public class Calculator1extends JFrame implements ActionListener</buttons.length();i++){<>。

java计算器源代码Word文档

java计算器源代码Word文档

package计算器;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.math.BigDecimal;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.UIManager;import javax.swing.UnsupportedLookAndFeelException;import javax.swing.border.BevelBorder;import javax.swing.text.BadLocationException;public class Counter1 extends JFrame implements ActionListener { public static final int DEF_DIV_SCALE = 10; //默认的精度private JMenuBar jmBar = new JMenuBar(); // 菜单条private JMenu edit = new JMenu("编辑(E)");private JMenu find = new JMenu("查看(V)");private JMenu help = new JMenu("帮助(H)");// 创建JPanel便于管理private JPanel panTxt = new JPanel();private JPanel panBack = new JPanel();private JPanel panMen = new JPanel();private JPanel panNum = new JPanel();// 创建文本域private JTextField txt = new JTextField();// 创建文本标签private JLabel jlm = new JLabel();private boolean flag = false; // 是否可以消除文本private double a = 0; // 数字a的值private double b = 0; // 数字b的值private double result = 0; // 两个数字运算的结果private String sign = ""; // 标记运算法则private double m = 0; // 暂时储存数据// 创建按钮private NewButton jbBack = new NewButton("Backspace", Color.RED);private NewButton jbCE = new NewButton("CE", Color.RED);private NewButton jbC = new NewButton("C", Color.RED);private NewButton jbMC = new NewButton("MC", Color.RED);private NewButton jbMR = new NewButton("MR", Color.RED);private NewButton jbMS = new NewButton("MS", Color.RED);private NewButton jbM = new NewButton("M+", Color.RED);public Counter1() {setSize(260, 260);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setLocationRelativeTo(null);setLayout(null);setJMenuBar(jmBar);setTitle("计算器");setResizable(false);init();// Container contentPane = getContentPane();// Controller c = new Controller(this);// contentPane.addKeyListener(c);}private void init() {// 设置第一个JPanel里面的内容panTxt.setSize(230, 20);panTxt.setLocation(15, 5);// panTxt.setBorder(BorderFactory.createLineBorder(Color.RED));panTxt.setLayout(new BorderLayout()); // 设置布局管理器txt.setHorizontalAlignment(JTextField.RIGHT); // 使光标定位在右边txt.setBorder(BorderFactory.createLoweredBevelBorder()); // 设置边框凹下去txt.setEditable(false); // 设置是否可以编辑txt.setBackground(Color.WHITE);// txt.setEnabled(true); //设置是否激活// txt.setFocusable(false); // 设置是否可以获得焦点(显示光标)txt.setText("0");add(panTxt);panTxt.add(txt);Controller c = new Controller(this);txt.addKeyListener(c);// 设置第二个JPanel里面的内容panBack.setSize(190, 25);panBack.setLocation(52, 35);// 画出边框便于查看// panBack.setBorder(BorderFactory.createLineBorder(Color.RED)); GridLayout layPanBack = new GridLayout(); // 创建布局管理器layPanBack.setHgap(5); // 设置布局管理器的边距panBack.setLayout(layPanBack); // 设置布局管理器// 添加按钮jbBack.setFont(new Font("宋体", 0, 12));panBack.add(jbBack);panBack.add(jbCE);panBack.add(jbC);add(panBack);// 设置第三个JPanel里面的内容panMen.setSize(40, 140);panMen.setLocation(5, 65);GridLayout layPanMen = new GridLayout(4, 1); // 创建布局管理器layPanMen.setVgap(5); // 设置布局管理器的边距panMen.setLayout(layPanMen);// panMen.setBorder(BorderFactory.createLineBorder(Color.RED)); panMen.add(jbMC);panMen.add(jbMR);panMen.add(jbMS);panMen.add(jbM);add(panMen);// 设置第四个JPanel里面的内容panNum.setSize(200, 140);panNum.setLocation(50, 65);// panNum.setBorder(BorderFactory.createLineBorder(Color.RED)); add(panNum);GridLayout layPanNum = new GridLayout(4, 5); // 创建布局管理器panNum.setLayout(layPanNum);newButtonNum();// 添加菜单项jmBar.add(edit);jmBar.add(find);jmBar.add(help);// 设置文本标签的属性和添加文本标签jlm.setBorder(BorderFactory.createBevelBorder(1));jlm.setSize(25, 25);jlm.setLocation(15, 35);add(jlm);}public void newButtonNum() {NewButton jb7 = new NewButton("7", Color.BLUE);NewButton jb8 = new NewButton("8", Color.BLUE);NewButton jb9 = new NewButton("9", Color.BLUE);NewButton jbDivide = new NewButton("/", Color.RED);NewButton jbSqrt = new NewButton("sqrt", Color.BLUE);NewButton jb4 = new NewButton("4", Color.BLUE);NewButton jb5 = new NewButton("5", Color.BLUE);NewButton jb6 = new NewButton("6", Color.BLUE);NewButton jbRide = new NewButton("*", Color.RED);NewButton jbPer = new NewButton("%", Color.BLUE);NewButton jb1 = new NewButton("1", Color.BLUE);NewButton jb2 = new NewButton("2", Color.BLUE);NewButton jb3 = new NewButton("3", Color.BLUE);NewButton jbCut = new NewButton("-", Color.RED);NewButton jbReciprocal = new NewButton("1/x", Color.BLUE);NewButton jb0 = new NewButton("0", Color.BLUE);NewButton jbMinus = new NewButton("+/-", Color.BLUE);NewButton jbDot = new NewButton(".", Color.BLUE);NewButton jbAdd = new NewButton("+", Color.RED);NewButton jbEquals = new NewButton("=", Color.RED);panNum.add(jb7);panNum.add(jb8);panNum.add(jb9);panNum.add(jbDivide);panNum.add(jbSqrt);panNum.add(jb4);panNum.add(jb5);panNum.add(jb6);panNum.add(jbRide);panNum.add(jbPer);panNum.add(jb1);panNum.add(jb2);panNum.add(jb3);panNum.add(jbCut);panNum.add(jbReciprocal);panNum.add(jb0);panNum.add(jbMinus);panNum.add(jbDot);panNum.add(jbAdd);panNum.add(jbEquals);}public static void main(String[] args) {try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); // 设置和win7的布局一样} catch (ClassNotFoundException e) {e.printStackTrace();} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (UnsupportedLookAndFeelException e) {e.printStackTrace();}new Counter1().setVisible(true);}private class NewButton extends JButton {public NewButton(String s, Color c) {super(s);// setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));setBorder(BorderFactory.createEmptyBorder());setForeground(c);setFocusable(false); // 设置是否可以获得焦点(显示光标)addActionListener(Counter1.this);}}// 实现监听public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "+") {a = Double.parseDouble(txt.getText());sign = "+";flag = true;} else if (e.getActionCommand() == "-") {a = Double.parseDouble(txt.getText());sign = "-";flag = true;} else if (e.getActionCommand() == "*") {a = Double.parseDouble(txt.getText());sign = "*";flag = true;} else if (e.getActionCommand() == "/") {a = Double.parseDouble(txt.getText());sign = "/";flag = true;} else if (e.getActionCommand() == "=") {try {b = Double.parseDouble(txt.getText());} catch (NumberFormatException nfe) {b = 0;}try {if (sign == "+") {result = doubleAdd(a, b);} else if (sign == "-") {result = doubleSub(a, b);} else if (sign == "*") {result = doubleMul(a, b);} else if (sign == "/" && b != 0) {result = doubleDiv(a, b, 15);} else {result = b;}} catch (NumberFormatException nfe) {result = 0;}a = result;if (sign == "/" && b == 0) {txt.setText("0");} else {txt.setText(result + "");}flag = true;} else if (e.getActionCommand() == "C") {a = 0;result = 0;sign = "";txt.setText("0");} else if (e.getActionCommand() == "CE") {txt.setText("0");} else if (e.getActionCommand() == "Backspace") {try {if (txt.getText().length() > 1) {txt.setText(txt.getText(0, txt.getText().length() - 1));} else {txt.setText("0");}} catch (BadLocationException e1) {txt.setText("0");}} else if (e.getActionCommand() == "sqrt") {a = Double.parseDouble(txt.getText());result = Math.sqrt(a);a = result;txt.setText(result + "");flag = true;} else if (e.getActionCommand() == "%") {b = Double.parseDouble(txt.getText());result = doubleMul(doubleDiv(b, 100), a);txt.setText(result + "");flag = true;} else if (e.getActionCommand() == "1/x") {a = Double.parseDouble(txt.getText());result = 1 / a;a = result;txt.setText(result + "");flag = true;} else if (e.getActionCommand() == "+/-") {txt.setText("" + (-Double.parseDouble(txt.getText()))); } else if (e.getActionCommand() == "MC") {m = 0;jlm.setText("");} else if (e.getActionCommand() == "MR") {txt.setText(m + "");} else if (e.getActionCommand() == "MS") {m = Double.parseDouble(txt.getText());jlm.setText(" M");flag = true;} else if (e.getActionCommand() == "M+") {m += Double.parseDouble(txt.getText());flag = true;} else {boolean isDoc = false;for (int i = 0; i < txt.getText().length(); i++) { if (txt.getText().charAt(i) == '.') {isDoc = true;}}if (!isDoc || e.getActionCommand() != ".") {if (flag) {txt.setText("");flag = false;}if (txt.getText().equals("0") && e.getActionCommand() != ".") { txt.setText("");}txt.setText(txt.getText() + e.getActionCommand());}}}// 实现键盘监听public void keyAction(KeyEvent e) {if (e.getKeyChar() == '+') {a = Double.parseDouble(txt.getText());sign = "+";flag = true;} else if (e.getKeyChar() == '-') {a = Double.parseDouble(txt.getText());sign = "-";flag = true;} else if (e.getKeyChar() == '*') {a = Double.parseDouble(txt.getText());sign = "*";flag = true;} else if (e.getKeyChar() == '/') {a = Double.parseDouble(txt.getText());sign = "/";flag = true;} else if (e.getKeyChar() == '=') {try {b = Double.parseDouble(txt.getText());} catch (NumberFormatException nfe) {b = 0;}try {if (sign == "+") {result = doubleAdd(a, b);} else if (sign == "-") {result = doubleSub(a, b);} else if (sign == "*") {result = doubleMul(a, b);} else if (sign == "/") {if (b == 0) {txt.setText("除数不能为0");} else {result = doubleDiv(a, b, 15);}} else {result = b;}} catch (NumberFormatException nfe) {result = 0;}a = result;if (sign == "/" && b == 0) {txt.setText("0");} else {txt.setText(result + "");}flag = true;} else if (e.getKeyChar() == 'c' || e.getKeyChar() == 'C') {a = 0;result = 0;sign = "";txt.setText("0");} else if (e.getKeyCode() == KeyEvent.VK_BACK_SPACE) {try {if (txt.getText().length() > 1) {txt.setText(txt.getText(0, txt.getText().length() - 1));} else {txt.setText("0");}} catch (BadLocationException e1) {txt.setText("0");}} else if (e.getKeyChar() == '%') {b = Double.parseDouble(txt.getText());result = doubleMul(doubleDiv(b, 100), a);txt.setText(result + "");flag = true;} else {if (e.getKeyChar() >= 0x30 && e.getKeyChar() <= 0x39|| e.getKeyChar() == '.') {boolean isDoc = false;for (int i = 0; i < txt.getText().length(); i++) {if (txt.getText().charAt(i) == '.') {isDoc = true;}}if (!isDoc || e.getKeyChar() != '.') {if (flag) {txt.setText("");flag = false;}if (txt.getText().equals("0") && e.getKeyChar() != '.') {txt.setText("");}txt.setText(txt.getText() + e.getKeyChar());}}}}private class Controller extends KeyAdapter {private Counter1 frame;public Controller(Counter1 frame) {this.frame = frame;}public void keyPressed(KeyEvent e) {frame.keyAction(e);}}// 提供相对精确的加法运算public static double doubleAdd(double d1, double d2) {BigDecimal bd1 = new BigDecimal(Double.toString(d1));BigDecimal bd2 = new BigDecimal(Double.toString(d2));return bd1.add(bd2).doubleValue();}// 提供相对精确的减法运算public static double doubleSub(double d1, double d2) {BigDecimal bd1 = new BigDecimal(Double.toString(d1));BigDecimal bd2 = new BigDecimal(Double.toString(d2));return bd1.subtract(bd2).doubleValue();}// 提供相对精确的乘法运算public static double doubleMul(double d1, double d2) {BigDecimal bd1 = new BigDecimal(Double.toString(d1));BigDecimal bd2 = new BigDecimal(Double.toString(d2));return bd1.multiply(bd2).doubleValue();}// 提供相对精确的除法运算,当发生除不尽的情况时,精确到小数点以后10位,以后的数字四舍五入。

JAVA计算器代码6页word文档

JAVA计算器代码6页word文档

import java.awt.*;import java.awt.event.*;public class Cal {public static void main(String[] args) {CalFrame f = new CalFrame();class CalFrame extends Frame {double d1, d2;int op = -1;TextField tf;CalPanelL p1;CalPanelR p2;// ConstructorCalFrame() {super("Small Calculator");setLayout(new FlowLayout(FlowLayout.CENTER,8,10));setBackground(new Color(100,150,150));setForeground(Color.white);setResizable(false);setSize(300,200);tf = new TextField(22);tf.setEditable(false);tf.setBackground(new Color(108,118,103));tf.setForeground(Color.white);tf.setFont(new Font("Arial",Font.BOLD,16));add(tf);p1 = new CalPanelL();p2 = new CalPanelR();add(p1);add(p2);setVisible(true);addWindowListener(new Wclose());// inner class:CalButtonclass CalButton extends Button {CalButton(String s){super(s);setBackground(Color.gray);// inner class: CalPanelLclass CalPanelL extends Panel {CalButton b0, b1, b2, b3,b4, b5, b6, b7,b8, b9, bPN, bPoint;CalPanelL() {setLayout(new GridLayout(4,3));setFont(new Font("TimesRoman",Font.BOLD,16));b0 = new CalButton("0");b1 = new CalButton("1");b2 = new CalButton("2");b3 = new CalButton("3");b4 = new CalButton("4");b5 = new CalButton("5");b6 = new CalButton("6");b7 = new CalButton("7");b8 = new CalButton("8");b9 = new CalButton("9");bPN = new CalButton("+/-");bPoint = new CalButton(".");// 加入按钮add(b7); b7.addActionListener(new PressB7());add(b8); b8.addActionListener(new PressB8());add(b9); b9.addActionListener(new PressB9());add(b4); b4.addActionListener(new PressB4());add(b5); b5.addActionListener(new PressB5());add(b6); b6.addActionListener(new PressB6());add(b1); b1.addActionListener(new PressB1());add(b2); b2.addActionListener(new PressB2());add(b3); b3.addActionListener(new PressB3());add(b0); b0.addActionListener(new PressB0());add(bPN); bPN.addActionListener(new PressBPN()); ;add(bPoint); bPoint.addActionListener(new PressBPoint()); class CalPanelR extends Panel {CalButton bAdd, bSub, bMul, bDiv,bSqrt, bSin, bCos, bYx,bLn, bEqual, bCE, bBack;CalPanelR() {setLayout(new GridLayout(4,3));setFont(new Font("TimesRoman",Font.BOLD,16));bAdd = new CalButton("+");bSub = new CalButton("-");bMul = new CalButton("*");bDiv = new CalButton("/");bSqrt = new CalButton("sqrt");bSin = new CalButton("sin");bCos = new CalButton("cos");bYx = new CalButton("y^x");bLn = new CalButton("ln");bEqual = new CalButton("=");bCE = new CalButton("CE");bBack = new CalButton("<-");add(bDiv); bDiv.addActionListener(new PressBDiv());add(bSqrt); bSqrt.addActionListener(new PressBSqrt());add(bLn); bLn.addActionListener(new PressBLn());add(bMul); bMul.addActionListener(new PressBMul());add(bSin); bSin.addActionListener(new PressBSin());add(bBack); bBack.addActionListener(new PressBBack());add(bSub); bSub.addActionListener(new PressBSub());add(bCos); bCos.addActionListener(new PressBCos());add(bCE); bCE.addActionListener(new PressBCE());add(bAdd); bAdd.addActionListener(new PressBAdd());add(bYx); bYx.addActionListener(new PressBYx());add(bEqual); bEqual.addActionListener(new PressBEqual()); class PressBAdd implements ActionListener {public void actionPerformed(ActionEvent e) {try {d1 = Double.parseDouble(tf.getText());op = 0;tf.setText("");} catch(Exception ee) {}class PressBSub implements ActionListener {public void actionPerformed(ActionEvent e) {try {d1 = Double.parseDouble(tf.getText());op = 1;tf.setText("");} catch(Exception ee) {}class PressBMul implements ActionListener {public void actionPerformed(ActionEvent e) {try {d1 = Double.parseDouble(tf.getText());op = 2;tf.setText("");} catch(Exception ee) {}class PressBDiv implements ActionListener {public void actionPerformed(ActionEvent e) {try {d1 = Double.parseDouble(tf.getText());op = 3;tf.setText("");} catch(Exception ee) {}class PressBYx implements ActionListener {public void actionPerformed(ActionEvent e) {try {d1 = Double.parseDouble(tf.getText());op = 4;tf.setText("");} catch(Exception ee) {}class PressBEqual implements ActionListener { public void actionPerformed(ActionEvent e) {try {double result = 0;d2 = Double.parseDouble(tf.getText());switch(op) {case 0:result = d1 + d2;break;case 1:result = d1 - d2;break;case 2:result = d1 * d2;break;case 3:result = d1 / d2;break;case 4:result = Math.pow(d1,d2);break;default:tf.setText(String.valueOf(result));} catch(Exception ee) {}class PressBSqrt implements ActionListener { public void actionPerformed(ActionEvent e) {try {double x = Double.parseDouble(tf.getText());double y;y = Math.sqrt(x);tf.setText(y+"");} catch(Exception ee) {}class PressBLn implements ActionListener { public void actionPerformed(ActionEvent e) {try {double x = Double.parseDouble(tf.getText());double y;y = Math.log(x);tf.setText(y+"");} catch(Exception ee) {}class PressBSin implements ActionListener {public void actionPerformed(ActionEvent e) {try {double x = Double.parseDouble(tf.getText());double y;y = Math.sin(x);tf.setText(y+"");} catch(Exception ee) {}class PressBCos implements ActionListener {public void actionPerformed(ActionEvent e) {try {double x = Double.parseDouble(tf.getText());double y;y = Math.cos(x);tf.setText(y+"");} catch(Exception ee) {}class PressBBack implements ActionListener {public void actionPerformed(ActionEvent e) {try {String text = tf.getText();text = text.substring(0,text.length()-1);tf.setText(text);} catch(Exception ee) {}class PressBCE implements ActionListener {public void actionPerformed(ActionEvent e) {tf.setText("");class PressBPN implements ActionListener {public void actionPerformed(ActionEvent e) {try {String text = tf.getText();if (text != "") {if(text.charAt(0) == '-')tf.setText(text.substring(1));else if(text.charAt(0) >= '0' && text.charAt(0) <= '9')tf.setText("-"+text.substring(0));else if(text.charAt(0) == '.')tf.setText("-0"+text.substring(0));} catch(Exception ee) { }class PressBPoint implements ActionListener {public void actionPerformed(ActionEvent e) {String text = tf.getText();if(stIndexOf(".") == -1)tf.setText(text+".");class PressB0 implements ActionListener {public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"0");class PressB1 implements ActionListener { public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"1");class PressB2 implements ActionListener { public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"2");class PressB3 implements ActionListener { public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"3");class PressB4 implements ActionListener { public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"4");class PressB5 implements ActionListener { public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"5");class PressB6 implements ActionListener { public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"6");class PressB7 implements ActionListener { public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"7");class PressB8 implements ActionListener { public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"8");class PressB9 implements ActionListener { public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"9");// class: Wcloseclass Wclose extends WindowAdapter {public void windowClosing(WindowEvent e) { System.exit(0);。

java简单计算器--代码

java简单计算器--代码
JOptionPane.ERROR_MESSAGE);return;}
}
}
if(act.equals("sqrt")){try{float num=(float)Math.sqrt(Float.parseFloat(t.getText()));
t.setText(String.valueOf(num));can=true;return;
JOptionPane.ERROR_MESSAGE);return;}
}
}
public float cacu(float a,char c,float b){
float sum;
switch(c){
case '+':sum=a+b;break;
case '-':sum=a-b;break;
t.setText(String.valueOf(num));can=true;return;
}catch(NumberFormatException e1){JOptionPane.showMessageDialog(null, "输入格式错误!", "警告!",
JOptionPane.ERROR_MESSAGE);return;}
p1.add(backButton);
p1.add(clearButton);
backButton.addActionListener(this);
clearButton.addActionListener(this);
p2.add(t);
p2.add(p1);
p2.setBackground(Color.black);

JAVA编写的计算器源代码(word文档良心出品)

JAVA编写的计算器源代码(word文档良心出品)

package jsq;import java.awt.Color;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.UIManager;public class Test implements ActionListener {/****/JFrame f = new JFrame();JTextField tf = new JTextField("0.");JMenuBar bar=new JMenuBar();JMenu menuEdit=new JMenu("编辑(E)");JMenu menuView=new JMenu("查看(V)");JMenu menuHelp=new JMenu("帮助(H)");JMenuItem menuEditCopy=new JMenuItem("复制(C)");JMenuItem menuEditPaste=new JMenuItem("粘贴(V)");JMenuItem menuHelpAbout = new JMenuItem("关于计算器(A)");JPanel panel0 = new JPanel();JPanel panel2 = new JPanel();JPanel panel = new JPanel();JPanel panel3 = new JPanel();JPanel panel4 = new JPanel();JPanel panel5 = new JPanel();JButton btBk = new JButton(" Backspace"); JButton btCe = new JButton("Ce");JButton btCl = new JButton("C");JButton bt7 = new JButton("7");JButton bt8 = new JButton("8");JButton bt9 = new JButton("9");JButton btDiv = new JButton("/");JButton btSqrt = new JButton("sqrt");JButton bt4 = new JButton("4");JButton bt5 = new JButton("5");JButton bt6 = new JButton("6");JButton btMult = new JButton("*"); JButton btMol = new JButton(" % ");JButton bt1 = new JButton("1");JButton bt2 = new JButton("2");JButton bt3 = new JButton("3");JButton btMinu = new JButton("-"); JButton btCoun = new JButton(" 1/x");JButton bt0 = new JButton("0");JButton btPoint = new JButton("."); JButton btEqual = new JButton("="); JButton btAdd = new JButton("+");JButton btSign = new JButton(" +/-");/***@param args*/public void init(){f.add(panel0);f.add(tf,"North");f.setJMenuBar(bar);bar.add(menuEdit);bar.add(menuView);bar.add(menuHelp);menuEdit.add(menuEditCopy);menuEdit.add(menuEditPaste);menuHelp.add(menuHelpAbout);tf.setEditable(false);//不可编辑tf.setHorizontalAlignment(JTextField.RIGHT);//从右侧输入数据panel0.add(panel2);panel0.add(panel);panel0.add(panel3);panel0.add(panel4);panel0.add(panel5);panel2.setLayout(new GridLayout(1,4));panel2.add(btBk);panel2.add(btCe);panel2.add(btCl);panel.setLayout(new GridLayout(1,5));panel.add(bt7);panel.add(bt8);panel.add(bt9);panel.add(btDiv);panel.add(btSqrt);//根号panel3.setLayout(new GridLayout(1,5));panel3.add(bt4);panel3.add(bt5);panel3.add(bt6);panel3.add(btMult);panel3.add(btMol);//百分号panel4.setLayout(new GridLayout(1,5));panel4.add(bt1);panel4.add(bt2);panel4.add(bt3);panel4.add(btMinu);panel4.add(btCoun);//倒数panel5.setLayout(new GridLayout(1,5));panel5.add(bt0);panel5.add(btPoint);panel5.add(btAdd);panel5.add(btEqual);panel5.add(btSign);//正负符号btBk.setForeground(new Color(255, 0, 0)); btCe.setForeground(new Color(255, 0, 0)); btCl.setForeground(new Color(255, 0, 0)); btAdd.setForeground(new Color(255, 0, 0)); btMult.setForeground(new Color(255, 0, 0)); btDiv.setForeground(new Color(255, 0, 0)); btMinu.setForeground(new Color(255, 0, 0)); btEqual.setForeground(new Color(255, 0, 0));bt0.setForeground(new Color(0,0,255));bt1.setForeground(new Color(0, 0, 255));bt2.setForeground(new Color(0,0,255));bt3.setForeground(new Color(0,0,255));bt4.setForeground(new Color(0,0,255));bt5.setForeground(new Color(0,0,255));bt6.setForeground(new Color(0,0,255));bt7.setForeground(new Color(0,0,255));bt8.setForeground(new Color(0,0,255));bt9.setForeground(new Color(0,0,255)); btSqrt.setForeground(new Color(0,0,255)); btMol.setForeground(new Color(0,0,255)); btCoun.setForeground(new Color(0,0,255)); btSign.setForeground(new Color(0,0,255));//注册监听bt1.addActionListener(this);bt2.addActionListener(this);bt3.addActionListener(this);bt4.addActionListener(this);bt5.addActionListener(this);bt6.addActionListener(this);bt7.addActionListener(this);bt8.addActionListener(this);bt9.addActionListener(this);bt0.addActionListener(this);btAdd.addActionListener(this);btMinu.addActionListener(this);btMult.addActionListener(this);btDiv.addActionListener(this);btEqual.addActionListener(this);btPoint.addActionListener(this);btSqrt.addActionListener(this);btMol.addActionListener(this);btCoun.addActionListener(this);btSign.addActionListener(this);btBk.addActionListener(this);btCe.addActionListener(this);btCl.addActionListener(this);menuEditCopy.addActionListener(this);menuEditPaste.addActionListener(this);menuHelpAbout.addActionListener(this);f.addWindowListener(new MyWinLis());f.setTitle("计算器");f.setSize(295,240);f.setResizable(false);//不能改变窗体大小f.setVisible(true);}String foreNum=null;String currOpr=null;String currNum=null;boolean i = true;String copy;//复制public void actionPerformed(ActionEvent e) {// TODO自动生成方法存根Object obj=e.getSource();//输入数字if(obj==bt1||obj==bt2||obj==bt3||obj==bt4||obj==bt5||obj==bt6||obj==bt7||obj== bt8||obj==bt9||obj==bt0){if(i==true)tf.setText(e.getActionCommand());elsetf.setText(tf.getText()+e.getActionCommand());i = false;}//小数点else if(obj==btPoint){if(i==false)tf.setText(tf.getText()+'.');}//实现开根号else if(obj==btSqrt){if(tf.getText().charAt(0)=='-'){tf.setText("函数输入无效");}elsetf.setText(Double.toString(ng.Math.sqrt(Double. parseDouble(tf.getText()))));i = true;}//实现倒数else if(obj==btCoun){if (tf.getText().charAt(0) == '0') {tf.setText("零不能求倒数");i = true;}else {String s = Double.toString(1 / Double.parseDouble(tf.getText()));foreNum = tf.getText();tf.setText(s);i = true;}}//实现+/-符号else if (obj == btSign) {boolean isNumber = true;String s = tf.getText();for (int m = 0; m< s.length(); m++)if (! (s.charAt(m) >= '0' && s.charAt(m) <='9' || s.charAt(m) =='.'||s.charAt(m) == '-')) {break;}if (isNumber == true) {//如果当前字符串首字母有-号,代表现在是个负数,再按下时,则将首符号去掉if (s.charAt(0) == '-') {tf.setText("");for (int m = 1; m< s.length(); m++) {char a = s.charAt(m);tf.setText(tf.getText() + a);}}//如果当前字符串第一个字符不是符号,则添加一个符号在首字母处elsetf.setText('-' + s);}}//实现%功能else if(obj==btMol){boolean isNumber = true;if(isNumber==true)tf.setText(String.valueOf(Double.parseDouble(tf.getText())/100));elsetf.setText("错误");}//实现符号运算else if(obj==btAdd||obj==btMinu||obj==btDiv||obj==btMult){if(i==false){currNum=tf.getText();if(currOpr=="+")tf.setText(String.valueOf(Double.parseDouble(foreNum)+Double.parseDouble(currN um)));else if(currOpr=="-")tf.setText(String.valueOf(Double.parseDouble(foreNum)-Double.parseDouble(currN um)));else if(currOpr=="*")tf.setText(String.valueOf(Double.parseDouble(foreNum)*Double.parseDouble(currN um)));else if(currOpr=="/"){if (Double.parseDouble(tf.getText()) == 0)tf.setText("除数不能为零");elsetf.setText(String.valueOf(Double.parseDouble(foreNum)/Double.parseDouble(currNum))) ;}}foreNum=tf.getText();tf.setText("");currOpr=e.getActionCommand();i = false;}//实现等号else if(obj==btEqual){currNum=tf.getText();if(currOpr=="+")tf.setText(String.valueOf(Double.parseDouble(foreNum)+Double.parseDouble(currN um)));else if(currOpr=="-")tf.setText(String.valueOf(Double.parseDouble(foreNum)-Double.parseDouble(currN um)));else if(currOpr=="*")tf.setText(String.valueOf(Double.parseDouble(foreNum)*Double.parseDouble(currN um)));else if(currOpr=="/"){if (Double.parseDouble(tf.getText()) == 0)tf.setText("除数不能为零");elsetf.setText(String.valueOf(Double.parseDouble(foreNum)/Double.parseDouble(currN um)));}currOpr=e.getActionCommand();i = true;}//实现Backspace功能else if(obj==btBk){String s = tf.getText();tf.setText("");for (int m = 0;m <s.length() - 1; m++) {char a = s.charAt(m);tf.setText(tf.getText() + a);i = true;}}//实现Ce功能else if (obj == btCe) {tf.setText("0.");}//实现C功能else if (obj == btCl) {foreNum=currNum="";tf.setText("0.");}//实现复制else if(obj==menuEditCopy){copy=tf.getText();}//实现粘贴else if (obj == menuEditPaste) {tf.setText(copy);}//实现帮助主题else if(obj == menuHelpAbout){ImageIcon icon = new ImageIcon("src//Icons//about1.jpg");JLabel label = new JLabel(icon);JOptionPane.showMessageDialog(f,label,"帮助主题",JOptionPane.PLAIN_MESSAGE);}}public static void main(String[] args) {// TODO自动生成方法存根try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());//UIManager统一管理}catch(Exception e) {e.printStackTrace();}Test t = new Test();t.init();}}class MyWinLis implements WindowListener{public void windowActivated(WindowEvent arg0) {// TODO自动生成方法存根}public void windowClosed(WindowEvent arg0) { // TODO自动生成方法存根}public void windowClosing(WindowEvent arg0) { // TODO自动生成方法存根System.exit(0);}public void windowDeactivated(WindowEvent arg0) { // TODO自动生成方法存根}public void windowDeiconified(WindowEvent arg0) { // TODO自动生成方法存根}public void windowIconified(WindowEvent arg0) { // TODO自动生成方法存根}public void windowOpened(WindowEvent arg0) { // TODO自动生成方法存根}}。

java简易计算器源代码-5页word资料

java简易计算器源代码-5页word资料

package Swing;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;public class Work1 {public static void main(String[] args) {new JsqView(340, 240);@SuppressWarnings("serial")class JsqView extends JFrame {JTextField jtf;JButton jb1, jb2, jb3;JButton[] jb;JPanel jp1, jp2, jp3, jp4;MyActionListener l;public JsqView(int weith, int heigh) {Container con = this.getContentPane();con.setLayout(new BorderLayout(5, 10));l = new MyActionListener(this);jtf = new JTextField(26);jp1 = new JPanel();jp1.add(jtf);jtf.setHorizontalAlignment(JTextField.RIGHT);jp3 = new JPanel();jp3.setLayout(new BorderLayout(5, 10));jb1 = new JButton("Backspace");jb2 = new JButton("CE");jb3 = new JButton("C");jb1.setForeground(Color.red);jb1.addActionListener(l);jb2.addActionListener(l);jb2.setForeground(Color.red);jb3.addActionListener(l);jb3.setForeground(Color.red);jp2 = new JPanel();jp2.setLayout(new GridLayout(1, 3, 5, 5));jp2.add(jb1);jp2.add(jb2);jp2.add(jb3);jp4 = new JPanel();jp4.setLayout(new GridLayout(4, 5, 5, 5));jb = new JButton[20];String[] str = { "7", "8", "9", "/", "sqrt", "4", "5", "6", "*", "%","1", "2", "3", "-", "1/x", "0", "+/-", ".", "+", "=" };for (int i = 0; i < 20; i++) {jb[i] = new JButton(str[i]);jb[i].addActionListener(l);if (i == 3 || i == 8 || i == 13 || i == 18 || i == 19) {jb[i].setForeground(Color.red);jp4.add(jb[i]);jp3.add(jp2, BorderLayout.NORTH);jp3.add(jp4);con.add(jp1, BorderLayout.NORTH);con.add(jp3);this.setTitle("计算器");this.setSize(weith, heigh);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);class MyActionListener implements ActionListener {JsqView jv;char operator;String temp;Count c = new Count();boolean b = false;public MyActionListener(JsqView jv) {this.jv = jv;public void actionPerformed(ActionEvent e) {String str = e.getActionCommand().trim();//System.out.println(str);if (str.matches("[\\d\\.]")) {//System.out.println(str);if(b){jv.jtf.setText("");b = false;StringBuffer sbf = new StringBuffer();String s = jv.jtf.getText().trim();sbf.append(s);if("".equals(s)&&".".equals(str)){sbf.append(0+str);}else if(s.matches("\\d+")){sbf.append(str);}else if(str.matches("\\d")){sbf.append(str);jv.jtf.setText(sbf.toString());} else if (str.matches("[\\+\\-\\*\\/\\%]")) {b =false;operator = str.charAt(0);//System.out.println(str);temp = jv.jtf.getText().trim();jv.jtf.setText("");} else if (str.equals("=")) {String s = jv.jtf.getText().trim();// System.out.println(temp);// System.out.println(s);if("".equals(s)||s==null||temp==null){return;if((temp.matches("\\d+\\.\\d+"))||(s.matches("\\d+\\.\\d+"))){double i = Double.parseDouble(temp);double j = Double.parseDouble(s);if(!b){temp=s;double sum =c.count(i, j, operator,jv);jv.jtf.setText(sum + "");}else{long i = Long.parseLong(temp);long j = Long.parseLong(s);if(!b){temp=s;long sum = c.count(i, j, operator,jv);jv.jtf.setText(sum + "");b = true;}else if(str.equals("1/x")){String s = jv.jtf.getText().trim();double i = Double.parseDouble(s);double sum = c.count(i,jv);jv.jtf.setText(sum + "");b = true;}else if(str.equals("CE")){b= false;jv.jtf.setText("");}else if(str.equals("Backspace")){b= false;jv.jtf.setText(temp);}else if(str.equals("sqrt")){b= true;String s = jv.jtf.getText().trim();double b = Math.sqrt(Double.parseDouble(s));jv.jtf.setText(b+"");}else if(str.equals("+/-")){String s = jv.jtf.getText().trim();if(s.startsWith("-")){s= s.substring(1, s.length());}else{s = "-"+s;jv.jtf.setText(s);class Count {public long count(long i,long j,char operator,JsqView jv){long num = 0;switch (operator) {case '+':num = i + j;break;case '-':num = i - j;break;case '*':num = i * j;break;case '/':if(j==0){try {throw new MyException();} catch (MyException e) {JOptionPane.showMessageDialog(jv, "被除数不能为零","错误",JOptionPane.ERROR_MESSAGE);return 0;num = i / j;break;case '%':num = i % j;break;default:break;return num;public double count(double i,double j,char operator,JsqView jv){double num = 0;switch (operator) {case '+':num = i + j;break;case '-':num = i - j;break;case '*':num = i * j;break;case '/':if(j==0.0){try {throw new MyException();} catch (MyException e) {JOptionPane.showMessageDialog(jv, "被除数不能为零","错误",JOptionPane.ERROR_MESSAGE);return 0;num = i / j;break;default:break;return num;public double count (double i,JsqView jv){double num;if(i==0.0){try {throw new MyException();} catch (MyException e) {JOptionPane.showMessageDialog(jv, "被除数不能为零","错误",JOptionPane.ERROR_MESSAGE);return 0;num = 1/i;return num;@SuppressWarnings("serial")class MyException extends Exception{public MyException(){super("除数不能为零");。

Java小计算器说明文档(含源代码)

Java小计算器说明文档(含源代码)

Java小计算器说明文档1.程序界面是分为两部分,第一部分是文本显示框用来显示输入数字和计算结果,第二部分用来放置按钮完成软件所有输入和操作。

2.创建窗体并创建按钮添加到模块2中。

3.创建按钮监听器buttonlistener,添加监听器编写监听事件以监听按钮。

4.添加窗口监视windowClosing方法,可直接关闭显示窗口。

5.程序能进行基本的加、减、乘、除运算,并正确实现运算功能。

进行下一次运算前需要清空显示窗。

6.通过按钮的单击事件处理使按钮产生动作进行计算。

7.程序经过编译后生成两个二进制字节码文件:xiaojisuanqi.class 和xiaojisuanqi$buttonlistener.class。

8.通过此次的课程设计,我对java知识得到了巩固和加深,从中理解了java面向对象的特性,并体会到了java独特之处。

9.小计算器运行界面图如下:10. .小计算器程序代码:import java.awt.*;import java.awt.event.*;public class xiaojisuanqi extends WindowAdapter{TextField txt;static int a;static String show;static String str;Panel part1=new Panel();Panel part2=new Panel();public void windowClosing(WindowEvent e){System.exit(0);}private Button[] b=new Button[16];private String anniu[]={"7","8","9","+","4","5","6","-","1","2","3","*","清除","0","=","/"};public static void main(String args[]){(new xiaojisuanqi()).frame();}public void frame(){Frame fm=new Frame();for (int i=0;i<=15;i++){b[i]=new Button(anniu[i]);}for(int i=0;i<=15;i++){part2.add(b[i]);}txt=new TextField(15);txt.setEditable(false);for(int i=0;i<=15;i++){b[i].addActionListener(new buttonlistener());}fm.addWindowListener(this);part1.setLayout(new BorderLayout());part1.add(txt,"North");part2.setLayout(new GridLayout(4,4));fm.add(part1,"North");fm.add(part2,"Center");fm.pack();fm.setVisible(true);}class buttonlistener implements ActionListener {public void actionPerformed(ActionEvent e){Button btn=(Button)e.getSource();if( btn.getLabel()=="="){jisuan();str=String.valueOf(a);txt.setText(str);show="";}else if(btn.getLabel()=="+"){jisuan();txt.setText("");show="+";}else if(btn.getLabel()=="-"){jisuan();txt.setText("");show="-";}else if(btn.getLabel()=="/"){jisuan();txt.setText("");show="/";}else if(btn.getLabel()=="*"){jisuan();txt.setText("");show="*";}else{txt.setText(txt.getText()+btn.getLabel()); if (btn.getLabel()=="清除")txt.setText("");}}public void jisuan(){if (show=="+")a+=Integer.parseInt(txt.getText());else if (show=="-")a-=Integer.parseInt(txt.getText());else if(show=="*")a*=Integer.parseInt(txt.getText());else if(show=="/")a/=Integer.parseInt(txt.getText());elsea=Integer.parseInt(txt.getText());}}}。

java普通计算器Word版

java普通计算器Word版

基本思想:建立窗口时,我后面才想到把所有的组件先放到Container容器中。

我先把计算器分解成,菜单栏,输入区,按钮区,分别对三个函数实现相应的操作,最后在计算器构造函数调用绑定到窗口。

我创建了计算符操作按钮、非计算操作按钮、菜单监听器,三个监听器来实现菜单和按钮监听。

对于各组件我采用GridBagLayout可变布局,再GridBagConstraints 对布局组件布局设置。

JTextField输入区全局定义为了方便按钮的输入。

创建一个按钮函数,有利于添加的按钮布局设置以及根据不同类型的按钮添加不同的监听器。

因为计算器有整数和小数计算的区别,我创建一个数值类根据不同的值,计算后返回不同的类型,在类内部实现数值的计算操作。

最后单独一个函数来实现计算操作。

import java.awt.Container;import java.awt.Font;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JTextField;public class Caculat extends JFrame{private GridBagLayout layout=new GridBagLayout();//可变布局private GridBagConstraints constraints=new GridBagConstraints();//布局设置private Container container=new Container();//容器,用于储存组件,最后一起添加到窗口JTextField textField=new JTextField();//输入区int fpoint=0;//textField 光标定位String last="0";//存储最后输入的数字String copty="";//编辑时使用Numer result=new Numer();//结果暂存Numer num=new Numer();//输入暂存private String lastCommand="=";//保存+,-,*,/,=命令Numer M;//结果存储器boolean upfirst=true;//判断是否首次使用向上private boolean start=false;//判断是否为数字的开始private boolean setoperator=false;//判断是否使用计算符private boolean den=false;//判断是否刚刚使用等号public Caculat(){super("计算器");container.setLayout(layout);addMenu();addTextField();addButton();add(container);}//添加菜单private void addMenu(){JMenu menus[]=new JMenu[3];//主菜单menus[0]=new JMenu("查看(V)");menus[0].setMnemonic('F');menus[1]=new JMenu("编辑(E)");menus[1].setMnemonic('E');menus[2]=new JMenu("帮助(H)");menus[2].setMnemonic('H');JMenuItem lookItem[]=new JMenuItem[2];//子菜单JMenuItem aditItem[]=new JMenuItem[3];JMenuItem helpItem[]=new JMenuItem[2];lookItem[0]=new JMenuItem("普通型(O)");lookItem[0].setMnemonic('O');//快捷键lookItem[1]=new JMenuItem("标准型(T)");lookItem[1].setMnemonic('T');aditItem[0]=new JMenuItem("复制(C) Ctrl+C");//这个不会,只知道Alt+C aditItem[0].setMnemonic('C');aditItem[1]=new JMenuItem("粘贴(P) Ctrl+V");aditItem[1].setMnemonic('P');aditItem[2]=new JMenuItem("自由编辑(F)");aditItem[2].setMnemonic('F');helpItem[0]=new JMenuItem("关于主题(H)");helpItem[0].setMnemonic('H');helpItem[1]=new JMenuItem("关于计算器(A)");MenuAction menuaction=new MenuAction();//菜单监听器lookItem[0].addActionListener(menuaction);lookItem[1].addActionListener(menuaction);aditItem[0].addActionListener(menuaction);aditItem[1].addActionListener(menuaction);aditItem[2].addActionListener(menuaction);helpItem[0].addActionListener(menuaction);helpItem[1].addActionListener(menuaction);JMenuBar bar=new JMenuBar();//菜单容器吧menus[0].add(lookItem[0]);menus[0].add(lookItem[1]);menus[1].add(aditItem[0]);menus[1].add(aditItem[1]);menus[1].add(aditItem[2]);menus[2].add(helpItem[0]);menus[2].add(helpItem[1]);setJMenuBar(bar);//把菜单绑到窗口上的方法bar.add(menus[0]);bar.add(menus[1]);bar.add(menus[2]);}//添加输入区private void addTextField(){constraints.gridx=0;//组件x位置constraints.gridy=1;//组件y位置constraints.gridheight=1;//组件高度constraints.gridwidth=5;//组件宽度constraints.fill=GridBagConstraints.BOTH;//组件随显示变化的选项constraints.weightx=1;//水平扩展,即显示变化时,长度变化constraints.weighty=1;//垂直扩展,即高度变化textField.setHorizontalAlignment(JTextField.RIGHT);//光标右边显示textField.setEditable(false);//不可编辑textField.setFont(new Font("Serif",Font.PLAIN,18));//显示字体layout.setConstraints(textField, constraints);//把布局设置应用到组件上container.add(textField);//把该组件添加到容器中}//添加按钮区private void addButton(){InsertAction insert=new InsertAction();CommandAction command=new CommandAction();addbutton("MC",0,2,1,1,command);addbutton("MR",1,2,1,1,command);addbutton("MS",2,2,1,1,command);addbutton("M+",3,2,1,1,command);addbutton("M-",4,2,1,1,command);addbutton("Delete",0,3,1,1,insert );addbutton("CE",1,3,1,1,insert);addbutton("C",2,3,1,1,insert);addbutton("±",3,3,1,1,insert);addbutton("√",4,3,1,1,command);addbutton("7",0,4,1,1,insert);addbutton("8",1,4,1,1,insert);addbutton("9",2,4,1,1,insert);addbutton("÷",3,4,1,1,command);addbutton("%",4,4,1,1,command);addbutton("4",0,5,1,1,insert);addbutton("5",1,5,1,1,insert);addbutton("6",2,5,1,1,insert);addbutton("×",3,5,1,1,command);addbutton("1/x",4,5,1,1,command);addbutton("1",0,6,1,1,insert);addbutton("2",1,6,1,1,insert);addbutton("3",2,6,1,1,insert);addbutton("-",3,6,1,1,command);addbutton("+",4,6,1,1,command);addbutton("0",0,7,1,1,insert);addbutton(".",1,7,1,1,insert);addbutton("=",4,7,1,1,command);addbutton("←",2,7,1,1,command);addbutton("→",3,7,1,1,command);}//单个按钮设置private void addbutton(String label,int x,int y,int height,int width,ActionListener listener){JButton button=new JButton(label);constraints.gridx=x;constraints.gridy=y;constraints.gridheight=height;constraints.gridwidth=width;constraints.fill=GridBagConstraints.BOTH;button.addActionListener(listener);layout.setConstraints(button,constraints);container.add(button);//container.}//非计算符监听器。

简单的计算器源代码

简单的计算器源代码

//计算器,已经编译通过import java.awt.*;import java.awt.event.*;import javax.swing.*;public class testZ extends JFrame implements ActionListener{private JPanel jPanel1,jPanel2;private JTextField resultField;private JButton s1,s2,s3,s4,s5,s6,s7,s8,s9,s0,b1,b2,b3,b4,f1,f2; private boolean end,add,sub,mul,div;private String str;private double num1,num2;public testZ(){super("计算器");setSize(300,240);Container con=getContentPane();con.setLayout(new BorderLayout());jPanel1=new JPanel();jPanel1.setLayout(new GridLayout(1,1));jPanel2=new JPanel();jPanel2.setLayout(new GridLayout(4,4));resultField=new JTextField("0");jPanel1.add(resultField);con.add(jPanel1,BorderLayout.NORTH);s1=new JButton(" 1 "); s1.addActionListener(this);s2=new JButton(" 2 "); s2.addActionListener(this);s3=new JButton(" 3 "); s3.addActionListener(this);s4=new JButton(" 4 "); s4.addActionListener(this);s5=new JButton(" 5 "); s5.addActionListener(this);s6=new JButton(" 6 "); s6.addActionListener(this);s7=new JButton(" 7 "); s7.addActionListener(this);s8=new JButton(" 8 "); s8.addActionListener(this);s9=new JButton(" 9 "); s9.addActionListener(this);s0=new JButton(" 0 "); s0.addActionListener(this);b1=new JButton(" + "); b1.addActionListener(this);b2=new JButton(" - "); b2.addActionListener(this);b3=new JButton(" * "); b3.addActionListener(this);b4=new JButton(" / "); b4.addActionListener(this);f1=new JButton(" . "); f1.addActionListener(this);f2=new JButton(" = "); f2.addActionListener(this);jPanel2.add(s1);jPanel2.add(s2);jPanel2.add(s3);jPanel2.add(b1);jPanel2.add(s4);jPanel2.add(s5);jPanel2.add(s6);jPanel2.add(b2);jPanel2.add(s7);jPanel2.add(s8);jPanel2.add(s9);jPanel2.add(b3);jPanel2.add(s0);jPanel2.add(f1);jPanel2.add(f2);jPanel2.add(b4);con.add(jPanel2,BorderLayout.CENTER);}public void num(int i){String s = null;s=String.valueOf(i);if(end){//如果数字输入结束,则将文本框置零,重新输入resultField.setText("0");end=false;}if((resultField.getText()).equals("0")){//如果文本框的内容为零,则覆盖文本框的内容resultField.setText(s);}else{//如果文本框的内容不为零,则在内容后面添加数字str = resultField.getText() + s;resultField.setText(str);}}public void actionPerformed(ActionEvent e){ //数字事件 if(e.getSource()==s1)num(1);else if(e.getSource()==s2)num(2);else if(e.getSource()==s3)num(3);else if(e.getSource()==s4)num(4);else if(e.getSource()==s5)num(5);else if(e.getSource()==s6)num(6);else if(e.getSource()==s7)num(7);else if(e.getSource()==s8)num(8);else if(e.getSource()==s9)num(9);else if(e.getSource()==s0)num(0);//符号事件else if(e.getSource()==b1)sign(1);else if(e.getSource()==b2)sign(2);else if(e.getSource()==b3)sign(3);else if(e.getSource()==b4)sign(4);//等号else if(e.getSource()==f1){str=resultField.getText();if(str.indexOf(".")<=1){str+=".";resultField.setText(str);}}else if(e.getSource()==f2){num2=Double.parseDouble(resultField.getText());if(add){num1=num1 + num2;}else if(sub){num1=num1 - num2;}else if(mul){num1=num1 * num2;}else if(div){num1=num1 / num2;}resultField.setText(String.valueOf(num1));end=true;}}public void sign(int s){if(s==1){add=true;sub=false;mul=false;div=false;}else if(s==2){add=false;sub=true;mul=false;div=false;}else if(s==3){add=false;sub=false;mul=true;div=false;}else if(s==4){add=false;sub=false;mul=false;div=true;}num1=Double.parseDouble(resultField.getText()); end=true;}public static void main(String[] args){testZ th1=new testZ();th1.show();}}。

java简易计算器完整代码

java简易计算器完整代码

java简易计算器完整代码import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;public class Calculate extends JFrame implements ActionListener {/****/private static final long serialVersionUID = 1L;/*** @param args*/float userFloata=0f;float userFloatb=0f;double result;JLabel label1 ;JLabel label2;JLabel label3;JTextField textField1;JTextField textField2;JTextField textField3;JButton addButton;JButton subtractButton;JButton rideButton;JButton divideButton;public Calculate(){setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setTitle("简易计算器");JPanel viewJPanel_1=new JPanel();JPanel viewJPanel_2=new JPanel();addButton=new JButton("加");addButton.addActionListener(this);viewJPanel_1.add(addButton);subtractButton=new JButton("减");subtractButton.addActionListener(this);viewJPanel_1.add(subtractButton);rideButton=new JButton("乘");rideButton.addActionListener(this);viewJPanel_1.add(rideButton);divideButton=new JButton("除");divideButton.addActionListener(this);viewJPanel_1.add(divideButton);label1=new JLabel("数据1:");viewJPanel_2.add(label1);textField1=new JTextField(5);textField1.addActionListener(this);viewJPanel_2.add(textField1);label2=new JLabel("数据2:");viewJPanel_2.add(label2);textField2=new JTextField(5);textField2.addActionListener(this);viewJPanel_2.add(textField2);label3=new JLabel("结果是:");viewJPanel_2.add(label3 );textField3=new JTextField(5);viewJPanel_2.add(textField3);setSize(420,120);setVisible(true);validate();getContentPane().add(viewJPanel_1,BorderLayout.NORTH);getContentPane().add(viewJPanel_2,BorderLayout.CENTER);}public void CalculateEventHandel(){try{userFloata= Float.parseFloat(textField1.getText().trim());userFloatb= Float.parseFloat(textField2.getText().trim());} catch (NumberFormatException e) {JOptionPane.showMessageDialog(this, "请输入数字型数据!");textField1.setText("");textField1.requestFocus();textField2.setText("");textField3.setText("");return;}}public static void main(String[] args) { // TODO Auto-generated method stubnew Calculate();//a.CalculateEventHandel();}public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubif(e.getSource()==addButton){this.CalculateEventHandel();result=userFloata+userFloatb;// System.out.println(""+result);textField3.setText(""+result);}else if(e.getSource()==subtractButton){ this.CalculateEventHandel();result=userFloata-userFloatb;textField3.setText(""+result);}else if(e.getSource()==rideButton){this.CalculateEventHandel();result=userFloata*userFloatb;textField3.setText(""+result);}else if(e.getSource()==divideButton){this.CalculateEventHandel();result=userFloata/userFloatb;textField3.setText(""+result);}}}。

java简单计算器代码

java简单计算器代码

java简单计算器代码Java简单计算器代码:```javaimport java.util.Scanner;public class Calculator {public static void main(String[] args) {Scanner input = new Scanner(System.in);double num1, num2, result = 0;char operator;System.out.print("请输入第一个数:");num1 = input.nextDouble();System.out.print("请输入运算符号(+、-、*、/):"); operator = input.next().charAt(0);System.out.print("请输入第二个数:");num2 = input.nextDouble();switch(operator) {case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':result = num1 / num2;break;default:System.out.println("运算符输入错误,请重新输入!");return;}System.out.println("运算结果:" + num1 + operator + num2 + "=" + result);}}```列表:1. 首先,在程序中导入`java.util.Scanner`包,以便从控制台读取用户输入内容。

java实现简单的计算器(word文档良心出品)

java实现简单的计算器(word文档良心出品)

目录目录 (I)1需求分析 (1)1.1计算器的基本功能: (1)1.1.1加法运算:用数字按钮和“+”按钮进行运算; (1)1.1.2减法运算:用数字按钮和“-”按钮进行运算; (1)1.1.3乘法运算:用数字按钮和“*”按钮进行运算; (1)1.1.4除法运算:用数字按钮和“/”按钮进行运算; (1)1.2退格键和清零键: 用”Backspace”、”C”和”CE”按钮实现; (1)1.3计算器的科学计算方法: (1)1.3.1开方:用数字按钮和“Sqrt”按钮进行运算; (1)1.3.2百分比:用数字按钮和“%”按钮进行运算; (1)1.3.3求倒数:用数字按钮和“1/x”按钮进行运算; (1)1.3.4求自然对数:用数字按钮和“ln”按钮进行运算; (1)1.3.5三角函数:用数字按钮和“tan”“cos”“sin”按钮进行运算 (1)1.3.6角度换算成弧度:用数字按钮和“’ ””按钮进行运算 (1)1.3.7求反:用数字按钮和“-/+”按钮进行运算 (1)1.3.8平方和三次方:用数字按钮和“x^2”“x^3”按钮进行运算 (1)1.4常数: (2)1.4.1π:用Math类中的PI来实现 (2)1.4.2自然对数e:用Math类中的E来实现 (2)2设计 (2)2.1用户界面设计 (2)2.1.1该计算器程序的设计:用户界面包括Swing组件,不过程序中大都使用的是AWT组件. (2)2.1.2在AWT组件, (2)2.1.3这个界面设计中包含了五个接口,分别控制运算符,数字,清除,存储功能和小数点的输入 (2)2.1.4程序设计中,使用了布局管理: (3)2.2概要设计 (3)2.2.1它的功能是使用图形用户来实现计算器的界面设计和运算功能以及一些科学运算方法. (3)3实现 (3)4测试 (14)4.1实现加法运算:4+12=16 (14)4.2实现乘法运算:3*9=27 (15)4.3用”C’实现清零功能: (16)4.4用”Backspace”实现退格功能: (17)4.5求倒数:1/4=0.25 (18)1 需求分析该计算器程序除了具备加减乘除基本功能外,还有清零键C、CE和退格键Backspace,和一些部分的科学计算方法,包括开方、求倒、百分比,由于时间问题,之后会完善键盘事件的监听功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简单计算器代码package calcultorthree;import java.awt.BorderLayout;//导入边界布局管理器类import java.awt.GridLayout;//导入网格布局管理器类import java.awt.TextField;//导入文本区域类import java.awt.event.ActionEvent;//导入事件类import java.awt.event.ActionListener;//导入事件监听者类import javax.swing.JButton;//导入按钮类import javax.swing.JFrame;//导入窗体import javax.swing.JPanel;//导入面板/***本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。

熟悉java的同学,可以在此基础上实现更复杂的功能。

* @author Fjsh*/public class CalcultorThree {//新建对象,在构造函数中进行初始化JFrame frame;//新建窗体对象JButton buttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=”JButton buttonplus,buttonminus,buttonmultiple,buttondevision,buttonsin,buttontozero;//新建按钮“+”“-”“*”“/”“sin”和归零按钮JButton buttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix,buttonseven,buttoneight,buttonnine;//新建数字按钮“0”“1”“2”“3”“4”“5”“6”“7”“8”“9”JPanel panelwest,panelcenter,paneleast;//新建三个面板TextField tf;//新建文本区域对象public CalcultorThree(){//初始化对象tf=new TextField(30);//构造空文本字段,字符宽度为30frame =new JFrame("CalculatorThree");//构造窗体对象,名称为“CalculatorThree”panelcenter=new JPanel();//构造面板,放到窗体中央panelwest=new JPanel();//构造面板,放到窗体西边paneleast=new JPanel();//构造面板,放到窗体东边Handle h=new Handle();//新建Handle类对象,Handle类为事件监听类//创建数字按钮对象,1、2、3、4、5、6、7、8、9buttonone=new JButton("1");buttontwo=new JButton("2");buttonthree=new JButton("3");buttonfour=new JButton("4");buttonfive=new JButton("5");buttonsix=new JButton("6");buttonseven=new JButton("7");buttoneight=new JButton("8");buttonnine=new JButton("9");panelcenter.setLayout(new GridLayout(3,3));//设置面板布局为网格布局,3行3列//将数字按钮添加到中间面板panelcenter.add(buttonone);panelcenter.add(buttontwo);panelcenter.add(buttonthree);panelcenter.add(buttonfour);panelcenter.add(buttonfive);panelcenter.add(buttonsix);panelcenter.add(buttonseven);panelcenter.add(buttoneight);panelcenter.add(buttonnine);//为10个按钮注册事件监听器buttonone.addActionListener(h);buttontwo.addActionListener(h);buttonthree.addActionListener(h);buttonfour.addActionListener(h);buttonfive.addActionListener(h);buttonsix.addActionListener(h);buttonseven.addActionListener(h);buttoneight.addActionListener(h);buttonnine.addActionListener(h);//构造按钮“0”“.”“=”,注册事件监听器,设置1行3列的布局,添加到到西边的面板buttonzero=new JButton("0");buttondot=new JButton(".");buttonequal=new JButton("=");buttonzero.addActionListener(h);buttondot.addActionListener(h);buttonequal.addActionListener(h);panelwest.setLayout(new GridLayout(3,1));panelwest.add(buttonzero);panelwest.add(buttondot);panelwest.add(buttonequal);//构造操作按钮“+”“-”“*”“/”“sin”“>0”,其中“>0”为归零按钮buttonplus=new JButton("+");buttonminus=new JButton("-");buttonmultiple=new JButton("*");buttondevision=new JButton("/");buttonsin=new JButton("sin");buttontozero=new JButton(">0");paneleast.setLayout(new GridLayout(3,1));//设置西边的布局为3行1列//将操作按钮“+”“-”“*”“/”“sin”“>0”添加到西边的面板中paneleast.add(buttonplus);paneleast.add(buttonminus);paneleast.add(buttonmultiple);paneleast.add(buttondevision);paneleast.add(buttonsin);paneleast.add(buttontozero);//为操作按钮“+”“-”“*”“/”“sin”“>0”注册监听器buttonplus.addActionListener(h);buttonminus.addActionListener(h);buttonmultiple.addActionListener(h);buttondevision.addActionListener(h);buttonsin.addActionListener(h);buttontozero.addActionListener(h);frame.setLayout(new BorderLayout());//设置窗体为边界布局frame.add(paneleast,"East");//将东边面板paneleast添加到窗体的东边frame.add(tf,BorderLayout.NORTH); //将tf文本区域添加到窗体的北边,即顶部frame.add(panelwest,BorderLayout.WEST);//将panelwest面板添加到窗体西边frame.add(panelcenter,BorderLayout.CENTER);//将panelcenter面板添加到窗体中间frame.pack();//设置窗体大小,适合其子组件的首选大小和布局frame.setLocation(500,500);//设置窗体显示位置为(500,500)frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置布局窗体默认关闭方式frame.setVisible(true);//设置窗体可见}public static void main(String[] args) {new CalcultorThree();//主方法中新建对象}class Handle implements ActionListener{//实现动作监听器类int biaozhi=0;//此标志标志加减乘除操作double flag1=0,flag2=0,flag3=0;//flag1、flag2为两个操作数,flag3为结果@Overridepublic void actionPerformed(ActionEvent e) { //方法重写try{//此处可能会产生异常,用try、catch捕捉异常,不用处理if(e.getSource()==buttondot){//小数点tf.setText("0.");}if(e.getSource()==buttontozero){//归零操作tf.setText("");}if(e.getSource()==buttonzero){//按键0操作tf.setText(tf.getText()+"0");flag1=Double.parseDouble(tf.getText());//将文本区域转换成Double类型,赋给flag1}if(e.getSource()==buttonone){//按键1操作tf.setText(tf.getText()+"1");flag1=Double.parseDouble(tf.getText());}else if(e.getSource()==buttontwo){//按键2操作tf.setText(tf.getText()+"2");flag1=Double.parseDouble(tf.getText());}else if(e.getSource()==buttonthree){//按键3操作tf.setText(tf.getText()+"3");flag1=Double.parseDouble(tf.getText());}else if(e.getSource()==buttonfour){//按键4操作tf.setText(tf.getText()+"4");flag1=Double.parseDouble(tf.getText());}else if(e.getSource()==buttonfive){//按键5操作tf.setText(tf.getText()+"5");flag1=Double.parseDouble(tf.getText());}else if(e.getSource()==buttonsix){//按键6操作tf.setText(tf.getText()+"6");flag1=Double.parseDouble(tf.getText());}else if(e.getSource()==buttonseven){//按键7操作tf.setText(tf.getText()+"7");flag1=Double.parseDouble(tf.getText());}else if(e.getSource()==buttoneight){//按键8操作tf.setText(tf.getText()+"8");flag1=Double.parseDouble(tf.getText());}else if(e.getSource()==buttonnine){//按键9操作tf.setText(tf.getText()+"9");flag1=Double.parseDouble(tf.getText());}if(e.getSource()==buttonplus){//加法操作tf.setText("");flag2=flag1;biaozhi=0;}if(e.getSource()==buttonminus){//减法操作tf.setText("");flag2=flag1;biaozhi=1;}if(e.getSource()==buttonmultiple){//乘法操作tf.setText("");flag2=flag1;biaozhi=2;}if(e.getSource()==buttondevision){//除法操作tf.setText("");flag2=flag1;biaozhi=3;}if(e.getSource()==buttonsin){//正弦操作flag3=Math.sin(flag1);tf.setText(flag3+"");}if(e.getSource()==buttonequal){//等号操作,利用biaozhi判断进行相应加减乘除操作if(biaozhi==0){flag3=flag1+flag2;}if(biaozhi==1){flag3=flag1-flag2;}if(biaozhi==2){flag3=flag1*flag2;}if(biaozhi==3){flag3=flag1/flag2;}tf.setText(flag3+"");}}catch(Exception ex){}}}}。

相关文档
最新文档