装修计算器源码

更新时间:02-03 装修 由 痴货i 分享

可以通过GitHub源代码pingbai在计算机中检查计算器的源代码。具体操作方式如下:

1、进入GitHub的Microsoft个人问题主页,如下图所示。

2、搜索计算器,如下图所示。

3、进入计算器的项目主页,点击下载按钮下载源代码,如下图所示。

4、保存源压缩文件并用visual studio打开它。

扩展资料:

GitHub的Windows应用

GitHub 使用 git 分布式版本控制系统,而 git 最初是 LinusTorvalds 为帮助Linux开发而创造的,它针对的是 Linux 平台,因此 git 和 Windows 从来不是最好的朋友,因为它一点也不像 Windows。

GitHub 发布了GitHub for Windows,为 Windows 平台开发者提供了一个易于使用的 Git 图形客户端。

GitHub for Windows 是一个 Metro 风格应用程序,集成了自包含版本的 Git,bash 命令行 shell,PowerShell 的 posh-git 扩展。

GitHub 为 Windows 用户提供了一个基本的图形前端去处理大部分常用版本控制任务,可以创建版本库,向本地版本库递交补丁,在本地和远程版本库之间同步。微软也通过CodePlex向开发者提供 git 版本控制系统,而 GitHub 创造了一个更具有吸引力的 Windows 版本。

求JAVA计算器模拟程序源代码

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计算器源代码

//HTML《html》《applet code=SZJSQ.class width=400 height=180》《/applet》《/html》//APPLETimport java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.applet.*;public class SZJSQ extends JApplet implements ActionListener{ boolean i=true; private JButton num0=new JButton(“0“); private JButton num1=new JButton(“1“); private JButton num2=new JButton(“2“); private JButton num3=new JButton(“3“); private JButton num4=new JButton(“4“); private JButton num5=new JButton(“5“); private JButton num6=new JButton(“6“); private JButton num7=new JButton(“7“); private JButton num8=new JButton(“8“); private JButton num9=new JButton(“9“); private JButton zuok=new JButton(“(“); private JButton youk=new JButton(“)“); private JButton dian=new JButton(“.“); private JButton NULL=new JButton(“N“); private JButton plu=new JButton(“+“); private JButton min=new JButton(“-“); private JButton mul=new JButton(“x“); private JButton div=new JButton(“/“); private JButton equ=new JButton(“=“); private JButton cle=new JButton(“C“);/裤基/竖纯氏余散清除 private JTextField space=new JTextField(30); public void init() { JPanel text=new JPanel(); text.setLayout(new FlowLayout()); text.add(space); JPanel buttons=new JPanel(); buttons.setLayout(new GridLayout(5,4)); buttons.add(num9); buttons.add(num8); buttons.add(num7); buttons.add(plu); buttons.add(num6); buttons.add(num5); buttons.add(num4); buttons.add(min); buttons.add(num3); buttons.add(num2); buttons.add(num1); buttons.add(mul); buttons.add(num0); buttons.add(cle); buttons.add(equ); buttons.add(div); buttons.add(zuok); buttons.add(youk); buttons.add(dian); buttons.add(NULL); (num9).addActionListener(this); (num8).addActionListener(this); (num7).addActionListener(this); (num6).addActionListener(this); (num5).addActionListener(this); (num4).addActionListener(this); (num3).addActionListener(this); (num2).addActionListener(this); (num1).addActionListener(this); (num0).addActionListener(this); (plu).addActionListener(this); (min).addActionListener(this); (mul).addActionListener(this); (div).addActionListener(this); (equ).addActionListener(this); (cle).addActionListener(this); (zuok).addActionListener(this); (youk).addActionListener(this); (dian).addActionListener(this); setLayout(new BorderLayout()); add(“North“,text); add(“South“,buttons); space.setText(“0“); } public void actionPerformed(ActionEvent e) { if(e.getSource()==num9) { if(i==true) { space.setText(“9“); i=false; } else space.setText(space.getText()+’9’); } if(e.getSource()==num8) { if(i==true) { space.setText(“8“); i=false; } else space.setText(space.getText()+’8’); } if(e.getSource()==num7) { if(i==true) { space.setText(“7“); i=false; } else space.setText(space.getText()+’7’); } if(e.getSource()==num6) { if(i==true) { space.setText(“6“); i=false; } else space.setText(space.getText()+’6’); } if(e.getSource()==num5) { if(i==true) { space.setText(“5“); i=false; } else space.setText(space.getText()+’5’); } if(e.getSource()==num4) { if(i==true) { space.setText(“4“); i=false; } else space.setText(space.getText()+’4’); } if(e.getSource()==num3) { if(i==true) { space.setText(“3“); i=false; } else space.setText(space.getText()+’3’); } if(e.getSource()==num2) { if(i==true) { space.setText(“2“); i=false; } else space.setText(space.getText()+’2’); } if(e.getSource()==num1) { if(i==true) { space.setText(“1“); i=false; } else space.setText(space.getText()+’1’); } if(e.getSource()==num0) { if(i==true) { space.setText(“0“); i=false; } else space.setText(space.getText()+’0’); } if(e.getSource()==zuok) { if(i==true) { space.setText(“(“); i=false; } else space.setText(space.getText()+’(’); } if(e.getSource()==youk) { if(i==false) space.setText(space.getText()+’)’); } if(e.getSource()==dian) { if(i==false) space.setText(space.getText()+’.’); } if(e.getSource()==plu) { space.setText(space.getText()+’+’); i=false; } if(e.getSource()==min) { space.setText(space.getText()+’-’); i=false; } if(e.getSource()==mul) { space.setText(space.getText()+’*’); i=false; } if(e.getSource()==div) { space.setText(space.getText()+’/’); i=false; } if(e.getSource()==equ) { space.setText(String.valueOf(Calculator(space.getText()))); i=true; } if(e.getSource()==cle) { space.setText(“0“); i=true; } }public double Calculator(String f)//科学计算{ int i=0,j=0,k; char c; StringBuffer s=new StringBuffer(); s.append(f); s.append(’=’); String formula=s.toString(); char anArray; anArray=new char; Stack《Character》 mystack=new Stack《Character》(); while(formula.charAt(i)!=’=’) { c=formula.charAt(i); switch(c) { case ’(’: mystack.push(new Character(c)); i++; break; case ’)’: while(mystack.peek().charValue()!=’(’) { anArray=mystack.pop().charValue(); } mystack.pop(); i++; break; case ’+’: case ’-’: while(!mystack.empty()&&mystack.peek().charValue()!=’(’) { anArray=mystack.pop().charValue(); } mystack.push(new Character(c)); i++; break; case ’*’: case ’/’: while(!mystack.empty()&&(mystack.peek().charValue()==’*’||mystack.peek().charValue()==’/’)) { anArray=mystack.pop().charValue(); } mystack.push(new Character(c)); i++; break; case’ ’: i++; break; default: while((c》=’0’&&c《=’9’)||c==’.’) { anArray=c; i++; c=formula.charAt(i); } anArray=’#’; break; } } while(!(mystack.empty())) anArray=mystack.pop().charValue(); i=0; int count; double a,b,d; Stack《Double》 mystack1 =new Stack《Double》(); while(i《j) { c=anArray; switch(c) { case ’+’: a=mystack1.pop().doubleValue(); b=mystack1.pop().doubleValue(); d=b+a; mystack1.push(new Double(d)); i++; break; case ’-’: a=mystack1.pop().doubleValue(); b=mystack1.pop().doubleValue(); d=b-a; mystack1.push(new Double(d)); i++; break; case ’*’: a=mystack1.pop().doubleValue(); b=mystack1.pop().doubleValue(); d=b*a; mystack1.push(new Double(d)); i++; break; case ’/’: a=mystack1.pop().doubleValue(); b=mystack1.pop().doubleValue(); if(a!=0) { d=b/a; mystack1.push(new Double(d)); i++; } else { System.out.println(“Error!“); } break; default: d=0;count=0; while((c》=’0’&&c《=’9’)) { d=10*d+c-’0’; i++; c=anArray; } if(c==’.’) { i++; c=anArray; while((c》=’0’&&c《=’9’)) { count++; d=d+(c-’0’)/Math.pow(10,count); i++; c=anArray; } } if(c==’#’) mystack1.push(new Double(d)); i++; break; } } return(mystack1.peek().doubleValue());}}

求一个C#计算器源代码

using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;namespace jisuan{ /// 《summary》 /// Form1 的摘要说明。 /// 《/summary》 public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.TextBox textBox2; private System.Windows.Forms.TextBox textBox3; private System.Windows.Forms.ComboBox comboBox1; private System.Windows.Forms.Button button1; private System.Windows.Forms.Button button2; private System.Windows.Forms.Button button3; /// 《summary》 /// 必需的设计器变量。 /// 《/summary》 private System.ComponentModel.Container components = null; public Form1() { // // Windows 窗体设计器支持所必需的 // InitializeComponent(); // // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 // } /// 《summary》 /// 清理所有正在使用的资源。 /// 《/summary》 protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows 窗体设计器生成的代码 /// 《summary》 /// 设计器支持所需的方法 - 不要使用代码器修改 /// 此方法的内容。 /// 《/summary》 private void InitializeComponent() { this.textBox1 = new System.Windows.Forms.TextBox(); this.textBox2 = new System.Windows.Forms.TextBox(); this.textBox3 = new System.Windows.Forms.TextBox(); this.comboBox1 = new System.Windows.Forms.ComboBox(); this.button1 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button(); this.button3 = new System.Windows.Forms.Button(); this.SuspendLayout(); // // textBox1 // this.textBox1.Location = new System.Drawing.Point(24, 72); this.textBox1.Name = “textBox1“; this.textBox1.Size = new System.Drawing.Size(100, 21); this.textBox1.TabIndex = 0; this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged); // // textBox2 // this.textBox2.Location = new System.Drawing.Point(312, 72); this.textBox2.Name = “textBox2“; this.textBox2.Size = new System.Drawing.Size(100, 21); this.textBox2.TabIndex = 1; // // textBox3 // this.textBox3.Location = new System.Drawing.Point(448, 72); this.textBox3.Name = “textBox3“; this.textBox3.Size = new System.Drawing.Size(88, 21); this.textBox3.TabIndex = 2; // // comboBox1 // this.comboBox1.Items.AddRange(new object { “+“, “-“, “*“, “/“}); this.comboBox1.Location = new System.Drawing.Point(152, 72); this.comboBox1.Name = “comboBox1“; this.comboBox1.Size = new System.Drawing.Size(121, 20); this.comboBox1.TabIndex = 3; this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); // // button1 // this.button1.Location = new System.Drawing.Point(64, 184); this.button1.Name = “button1“; this.button1.Size = new System.Drawing.Size(104, 32); this.button1.TabIndex = 4; this.button1.Text = “计算“; this.button1.Click += new System.EventHandler(this.button1_Click); // // button2 // this.button2.Location = new System.Drawing.Point(216, 192); this.button2.Name = “button2“; this.button2.Size = new System.Drawing.Size(75, 23); this.button2.TabIndex = 5; this.button2.Text = “清除“; this.button2.Click += new System.EventHandler(this.button2_Click); // // button3 // this.button3.Location = new System.Drawing.Point(376, 192); this.button3.Name = “button3“; this.button3.Size = new System.Drawing.Size(75, 23); this.button3.TabIndex = 6; this.button3.Text = “退出“; this.button3.Click += new System.EventHandler(this.button3_Click); // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(656, 366); this.Controls.Add(this.button3); this.Controls.Add(this.button2); this.Controls.Add(this.button1); this.Controls.Add(this.comboBox1); this.Controls.Add(this.textBox3); this.Controls.Add(this.textBox2); this.Controls.Add(this.textBox1); this.Name = “Form1“; this.Text = “Form1“; this.ResumeLayout(false); this.PerformLayout(); } #endregion /// 《summary》 /// 应用程序的主入口点。 /// 《/summary》 static void Main() { Application.Run(new Form1()); } public double jia(double a,double b) { return a+b; } public double jian(double a,double b) { return a-b; } public double cheng(double a,double b) { return a*b; } public double chu(double a,double b) { return a/b; }private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e) { } private void textBox1_TextChanged(object sender, System.EventArgs e) { } private void button1_Click(object sender, System.EventArgs e) { string i=this.comboBox1.SelectedItem.ToString(); switch(i) { case “+“:this.textBox3.Text=this.jia(double.Parse(this.textBox1.Text),double.Parse(this.textBox2.Text)).ToString(); break; case “-“:this.textBox3.Text=this.jian(double.Parse(this.textBox1.Text),double.Parse(this.textBox2.Text)).ToString(); break; case “*“:this.textBox3.Text=this.cheng(double.Parse(this.textBox1.Text),double.Parse(this.textBox2.Text)).ToString(); break; case“/“ :this.textBox3.Text=this.chu(double.Parse(this.textBox1.Text),double.Parse(this.textBox2.Text)).ToString(); break; } } private void button2_Click(object sender, System.EventArgs e) { this.textBox1.Text=null; this.textBox2.Text=null; this.textBox3.Text = null; } private void button3_Click(object sender, EventArgs e) { //this.Hide(); Application.Exit(); //this.Close(); } }}

简单计算器的源代码

package calculator;import java.awt.BorderLayout;import javax.swing.JFrame;import javax.swing.JTextField;import java.awt.Rectangle;import javax.swing.JButton;import javax.swing.BorderFactory;import javax.swing.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.SystemColor;import java.awt.Color;/** * 《p》Title:《/p》 * * 《p》Description: 这个类用来实现一个简单的计算器《/p》 * * 《p》Copyright: Copyright (c) 2006年《/p》 * * 《p》Company: 《/p》 * * @author * @version 1.0 */public class CalculatorFrame extends JFrame { boolean flag = false; String operand1; String operand2; double result; String action; BorderLayout borderLayout1 = new BorderLayout(); JTextField txtresult = new JTextField(); JButton btn1 = new JButton(); JButton btn2 = new JButton(); JButton btn3 = new JButton(); JButton btn4 = new JButton(); JButton btn5 = new JButton(); JButton btn6 = new JButton(); JButton btn7 = new JButton(); JButton btn8 = new JButton(); JButton btn9 = new JButton(); JButton btn0 = new JButton(); JButton btnplus = new JButton(); JButton btnminus = new JButton(); JButton btnjultiply = new JButton(); JButton btndivide = new JButton(); JButton btnclear = new JButton(); JButton btnequal = new JButton(); public CalculatorFrame() { try { jbInit(); } catch (Exception exception) { exception.printStackTrace(); } } private void jbInit() throws Exception { getContentPane().setLayout(null); txtresult.setBackground(SystemColor.WHITE); txtresult.setBorder(BorderFactory.createLoweredBevelBorder()); txtresult.setDisabledTextColor(Color.black); txtresult.setEditable(false); txtresult.setHorizontalAlignment(JTextField.RIGHT); txtresult.setBounds(new Rectangle(50, 50, 305, 25)); btn1.setBounds(new Rectangle(50, 200, 65, 30)); btn1.setBorder(BorderFactory.createRaisedBevelBorder()); btn1.setText(“1“); btn1.addActionListener(new CalculatorFrame_btn1_actionAdapter(this)); btn2.setBounds(new Rectangle(130, 200, 65, 30)); btn2.setBorder(BorderFactory.createRaisedBevelBorder()); btn2.setText(“2“); btn2.addActionListener(new CalculatorFrame_btn2_actionAdapter(this)); btn3.setBounds(new Rectangle(210, 200, 65, 30)); btn3.setBorder(BorderFactory.createRaisedBevelBorder()); btn3.setText(“3“); btn3.addActionListener(new CalculatorFrame_btn3_actionAdapter(this)); btn4.setBounds(new Rectangle(50, 150, 65, 30)); btn4.setBorder(BorderFactory.createRaisedBevelBorder()); btn4.setText(“4“); btn4.addActionListener(new CalculatorFrame_btn4_actionAdapter(this)); btn5.setBounds(new Rectangle(130, 150, 65, 30)); btn5.setBorder(BorderFactory.createRaisedBevelBorder()); btn5.setText(“5“); btn5.addActionListener(new CalculatorFrame_btn5_actionAdapter(this)); btn6.setBounds(new Rectangle(210, 150, 65, 30)); btn6.setBorder(BorderFactory.createRaisedBevelBorder()); btn6.setText(“6“); btn6.addActionListener(new CalculatorFrame_btn6_actionAdapter(this)); btn7.setBounds(new Rectangle(50, 100, 65, 30)); btn7.setBorder(BorderFactory.createRaisedBevelBorder()); btn7.setText(“7“); btn7.addActionListener(new CalculatorFrame_btn7_actionAdapter(this)); btn8.setBounds(new Rectangle(130, 100, 65, 30)); btn8.setBorder(BorderFactory.createRaisedBevelBorder()); btn8.setText(“8“); btn8.addActionListener(new CalculatorFrame_btn8_actionAdapter(this)); btn9.setBounds(new Rectangle(210, 100, 65, 30)); btn9.setBorder(BorderFactory.createRaisedBevelBorder()); btn9.setText(“9“); btn9.addActionListener(new CalculatorFrame_btn9_actionAdapter(this)); btn0.setBounds(new Rectangle(50, 250, 65, 30)); btn0.setBorder(BorderFactory.createRaisedBevelBorder()); btn0.setText(“0“); btn0.addActionListener(new CalculatorFrame_btn0_actionAdapter(this)); btnplus.setBounds(new Rectangle(290, 250, 65, 30)); btnplus.setBorder(BorderFactory.createRaisedBevelBorder()); btnplus.setText(“+“); btnplus.addActionListener(new CalculatorFrame_btnplus_actionAdapter(this)); btnminus.setBounds(new Rectangle(290, 200, 65, 30)); btnminus.setBorder(BorderFactory.createRaisedBevelBorder()); btnminus.setText(“-“); btnminus.addActionListener(new CalculatorFrame_btnminus_actionAdapter(this)); btnjultiply.setBounds(new Rectangle(290, 150, 65, 30)); btnjultiply.setBorder(BorderFactory.createRaisedBevelBorder()); btnjultiply.setText(“*“); btnjultiply.addActionListener(new CalculatorFrame_btnjultiply_actionAdapter(this)); btndivide.setBounds(new Rectangle(290, 100, 65, 30)); btndivide.setBorder(BorderFactory.createRaisedBevelBorder()); btndivide.setText(“/“); btndivide.addActionListener(new CalculatorFrame_btndivide_actionAdapter(this)); btnclear.setBounds(new Rectangle(130, 250, 65, 30)); btnclear.setBorder(BorderFactory.createRaisedBevelBorder()); btnclear.setText(“C“); btnclear.addActionListener(new CalculatorFrame_btnclear_actionAdapter(this)); btnequal.setBounds(new Rectangle(210, 250, 65, 30)); btnequal.setBorder(BorderFactory.createRaisedBevelBorder()); btnequal.setText(“=“); btnequal.addActionListener(new CalculatorFrame_btnequal_actionAdapter(this)); this.getContentPane().setBackground(UIManager.getColor( “MenuItem.background“)); this.setTitle(“计算器“); this.getContentPane().add(txtresult); this.getContentPane().add(btn1); this.getContentPane().add(btn0); this.getContentPane().add(btnclear); this.getContentPane().add(btnplus); this.getContentPane().add(btnequal); this.getContentPane().add(btn2); this.getContentPane().add(btn3); this.getContentPane().add(btnminus); this.getContentPane().add(btn4); this.getContentPane().add(btn7); this.getContentPane().add(btn5); this.getContentPane().add(btn6); this.getContentPane().add(btnjultiply); this.getContentPane().add(btndivide); this.getContentPane().add(btn9); this.getContentPane().add(btn8); }public void btnplus_actionPerformed(ActionEvent e) { action = “plus“; operand1 = txtresult.getText(); txtresult.setText(““); flag = true; } public void btnminus_actionPerformed(ActionEvent e) { action = “minus“; operand1 = txtresult.getText(); txtresult.setText(““); flag = true; } public void btnjultiply_actionPerformed(ActionEvent e) { action = “multiply“; operand1 = txtresult.getText(); txtresult.setText(““); flag = true; } public void btndivide_actionPerformed(ActionEvent e) { action = “divide“; operand1 = txtresult.getText(); txtresult.setText(““); flag = true; } public void btnclear_actionPerformed(ActionEvent e) { txtresult.setText(““); } public void btn1_actionPerformed(ActionEvent e) { if (flag) { txtresult.setText(btn1.getActionCommand()); flag=false; } else { txtresult.setText(txtresult.getText() + btn1.getActionCommand()); } } public void btn2_actionPerformed(ActionEvent e) { if (flag) { txtresult.setText(btn2.getActionCommand()); flag=false; } else { txtresult.setText(txtresult.getText() + btn2.getActionCommand()); } } public void btn3_actionPerformed(ActionEvent e) { if (flag) { txtresult.setText(btn3.getActionCommand()); flag=false; } else { txtresult.setText(txtresult.getText() + btn3.getActionCommand()); } } public void btn4_actionPerformed(ActionEvent e) { if (flag) { txtresult.setText(btn4.getActionCommand()); flag=false; } else { txtresult.setText(txtresult.getText() + btn4.getActionCommand()); } } public void btn5_actionPerformed(ActionEvent e) { if (flag) { txtresult.setText(btn5.getActionCommand()); flag=false; } else { txtresult.setText(txtresult.getText() + btn5.getActionCommand()); } } public void btn6_actionPerformed(ActionEvent e) { if (flag) { txtresult.setText(btn6.getActionCommand()); flag=false; } else { txtresult.setText(txtresult.getText() + btn6.getActionCommand()); } } public void btn7_actionPerformed(ActionEvent e) { if (flag) { txtresult.setText(btn7.getActionCommand()); flag=false; } else { txtresult.setText(txtresult.getText() + btn7.getActionCommand()); } } public void btn8_actionPerformed(ActionEvent e) { if (flag) { txtresult.setText(btn8.getActionCommand()); flag=false; } else { txtresult.setText(txtresult.getText() + btn8.getActionCommand()); } } public void btn9_actionPerformed(ActionEvent e) { if (flag) { txtresult.setText(btn9.getActionCommand()); flag=false; } else { txtresult.setText(txtresult.getText() + btn9.getActionCommand()); } } public void btn0_actionPerformed(ActionEvent e) { if (flag) { txtresult.setText(btn0.getActionCommand()); flag=false; } else { txtresult.setText(txtresult.getText() + btn0.getActionCommand()); } } public void btnequal_actionPerformed(ActionEvent e) { double digit1, digit2; operand2 = txtresult.getText(); if (flag == false) { if (action.equals(“plus“)) { digit1 = Double.parseDouble(operand1); digit2 = Double.parseDouble(operand2); result = digit1 + digit2; txtresult.setText(String.valueOf((int) result)); flag = true; } else if (action.equals(“minus“)) { digit1 = Double.parseDouble(operand1); digit2 = Double.parseDouble(operand2); result = digit1 - digit2; txtresult.setText(String.valueOf((int) result)); flag = true; } else if (action.equals(“multiply“)) { digit1 = Double.parseDouble(operand1); digit2 = Double.parseDouble(operand2); result = digit1 * digit2; txtresult.setText(String.valueOf((int) result)); flag = true; } else if (action.equals(“divide“)) { digit1 = Double.parseDouble(operand1); digit2 = Double.parseDouble(operand2); result = digit1 / digit2; if (digit2==0) { txtresult.setText(“ERROR“); flag=true; } else { txtresult.setText(String.valueOf((int) result)); flag = true; } } } }class CalculatorFrame_btnequal_actionAdapter implements ActionListener { private CalculatorFrame adaptee; CalculatorFrame_btnequal_actionAdapter(CalculatorFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btnequal_actionPerformed(e); } }class CalculatorFrame_btn0_actionAdapter implements ActionListener { private CalculatorFrame adaptee; CalculatorFrame_btn0_actionAdapter(CalculatorFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn0_actionPerformed(e); } }class CalculatorFrame_btn9_actionAdapter implements ActionListener { private CalculatorFrame adaptee; CalculatorFrame_btn9_actionAdapter(CalculatorFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn9_actionPerformed(e); } }class CalculatorFrame_btn8_actionAdapter implements ActionListener { private CalculatorFrame adaptee; CalculatorFrame_btn8_actionAdapter(CalculatorFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn8_actionPerformed(e); } }class CalculatorFrame_btn7_actionAdapter implements ActionListener { private CalculatorFrame adaptee; CalculatorFrame_btn7_actionAdapter(CalculatorFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn7_actionPerformed(e); } }class CalculatorFrame_btn6_actionAdapter implements ActionListener { private CalculatorFrame adaptee; CalculatorFrame_btn6_actionAdapter(CalculatorFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn6_actionPerformed(e); } }class CalculatorFrame_btn5_actionAdapter implements ActionListener { private CalculatorFrame adaptee; CalculatorFrame_btn5_actionAdapter(CalculatorFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn5_actionPerformed(e); } }class CalculatorFrame_btn4_actionAdapter implements ActionListener { private CalculatorFrame adaptee; CalculatorFrame_btn4_actionAdapter(CalculatorFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn4_actionPerformed(e); } }class CalculatorFrame_btn2_actionAdapter implements ActionListener { private CalculatorFrame adaptee; CalculatorFrame_btn2_actionAdapter(CalculatorFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn2_actionPerformed(e); } }class CalculatorFrame_btn3_actionAdapter implements ActionListener { private CalculatorFrame adaptee; CalculatorFrame_btn3_actionAdapter(CalculatorFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn3_actionPerformed(e); } }class CalculatorFrame_btnclear_actionAdapter implements ActionListener { private CalculatorFrame adaptee; CalculatorFrame_btnclear_actionAdapter(CalculatorFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btnclear_actionPerformed(e); } }class CalculatorFrame_btndivide_actionAdapter implements ActionListener { private CalculatorFrame adaptee; CalculatorFrame_btndivide_actionAdapter(CalculatorFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btndivide_actionPerformed(e); } }class CalculatorFrame_btnjultiply_actionAdapter implements ActionListener { private CalculatorFrame adaptee; CalculatorFrame_btnjultiply_actionAdapter(CalculatorFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btnjultiply_actionPerformed(e); } }class CalculatorFrame_btnminus_actionAdapter implements ActionListener { private CalculatorFrame adaptee; CalculatorFrame_btnminus_actionAdapter(CalculatorFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btnminus_actionPerformed(e); } }class CalculatorFrame_btnplus_actionAdapter implements ActionListener { private CalculatorFrame adaptee; CalculatorFrame_btnplus_actionAdapter(CalculatorFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btnplus_actionPerformed(e); } }class CalculatorFrame_btn1_actionAdapter implements ActionListener { private CalculatorFrame adaptee; CalculatorFrame_btn1_actionAdapter(CalculatorFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn1_actionPerformed(e); } }}public class Calculator { public static void main(String args) { CalculatorFrame Objcal=new CalculatorFrame(); Objcal.setSize(410,320); Objcal.setVisible(true); }}

C#计算器源代码

namespace jisuanji{ public partial class jisuanqi : Form { public jisuanqi() { InitializeComponent(); } private void jisuanqi_Load(object sender, EventArgs e) { txtMath.Text = “0.0“; } //存放输入的数字 private string str1 = ““; //存放第二个数字 private string str2 = ““; //存放执行的什么操作 如:+,-,*,/ private string action = ““; //判断是否点击了“=”,默认是没有点击 private bool Equal_flag = false; private void check(Button btnname) { if (action.Equals(““)) { if (txtMath.Text != “0“ || txtMath.Text != “0.0“) { str1 += btnname.Text; txtMath.Text = str1.ToString(); } //如果是第一次输入数字 if (txtMath.Text.Equals(“0.0“) || txtMath.Text.Equals(“0“)) { txtMath.Text = btnname.Text; str1 = btnname.Text.ToString(); } } //如果已经输入了数字且没有点击“=” if(!action.Equals(““) && txtMath.Text.Length != 0 && (!txtMath.Text.Equals(“0.0“)) && (!txtMath.Text.Equals(“0“))) { str2 += btnname.Text; txtMath.Text += btnname.Text; } //如果已经输入了数字并执行了加减乘除的操作,第二个数字输入时 else if ((!action.Equals(““)) && txtMath.Text.Length != 0 && !txtMath.Text.Equals(0.0) && (!txtMath.Text.Equals(“0“))) { txtMath.Text += btnname.Text; //str2 = txtMath.Text.ToString(); str2 += btnname.Text; } else if (txtMath.Text.Equals(““) && (!action.Equals(““))) { txtMath.Text += btnname.Text; str2 = txtMath.Text; } } private void btnZero_Click(object sender, EventArgs e) { if (Equal_flag) { //如果没有点击“+-*/” if (action.Equals(““)) { if (str1.Equals(““)) { MessageBox.Show(“您的操作有误“, “信息提示“, MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } check(btnZero); } else { check(btnZero); Equal_flag = false; } } private void btnDot_Click(object sender, EventArgs e) { //点击过等号 if (Equal_flag) { //第二个数字没有输入的时候 if (str2.Equals(““)) { //第一个数字已经有点号存在 if (str1.IndexOf(’.’) 》 -1) { MessageBox.Show(“您的操作有误“, “信息提示“, MessageBoxButtons.OK, MessageBoxIcon.Information); txtMath.Text = str1; return; } check(btnDot); } //第二个数字输入了的时候 else { //第二个数字中不存在点号的时候 if (!(str2.IndexOf(’.’) 》 -1)) { check(btnDot); return; } //第二个数字中存在点号的时候 MessageBox.Show(“您的操作有误“, “信息提示“, MessageBoxButtons.OK, MessageBoxIcon.Information); } } //没有点击过等号 else { //第一个数字存在点号 if (str1.IndexOf(’.’) 》 -1) { MessageBox.Show(“您的操作有误“, “信息提示“, MessageBoxButtons.OK, MessageBoxIcon.Information); txtMath.Text = str1; return; } //第一个数字不存在点号的时候 else { //如果第一个数字还是空的时候 if (!str1.Equals(““)) { check(btnDot); //Equal_flag = false; return; } txtMath.Text = “0“ + btnDot.Text; str1 = txtMath.Text; } } } private void btnOne_Click(object sender, EventArgs e) { if (Equal_flag) { if (!str1.Equals(““)) { if (action.Equals(““)) { MessageBox.Show(“请选择运算符“, “信息提示“); return; } } check(btnOne); } else { check(btnOne); Equal_flag = false; } } private void btnTwo_Click(object sender, EventArgs e) { if (Equal_flag) { if (!str1.Equals(““)) { if (action.Equals(““)) { MessageBox.Show(“请选择运算符“, “信息提示“); return; } } check(btnTwo); } else { check(btnTwo); Equal_flag = false; } } private void btnthree_Click(object sender, EventArgs e) { if (Equal_flag) { if (!str1.Equals(““)) { if (action.Equals(““)) { MessageBox.Show(“请选择运算符“, “信息提示“); return; } } check(btnthree); } else { check(btnthree); Equal_flag = false; } } private void btnFour_Click(object sender, EventArgs e) { if (Equal_flag) { if (action.Equals(““)) { MessageBox.Show(“请选择运算符“, “信息提示“); return; } check(btnFour); } else { check(btnFour); Equal_flag = false; } } private void btnFive_Click(object sender, EventArgs e) { if (Equal_flag) { if (!str1.Equals(““)) { if (action.Equals(““)) { MessageBox.Show(“请选择运算符“, “信息提示“); return; } } check(btnFive); } else { check(btnFive); Equal_flag = false; } } private void btnSix_Click(object sender, EventArgs e) { if (Equal_flag) { if (!str1.Equals(““)) { if (action.Equals(““)) { MessageBox.Show(“请选择运算符“, “信息提示“); return; } } check(btnSix); } else { check(btnSix); Equal_flag = false; } } private void btnSeven_Click(object sender, EventArgs e) { if (Equal_flag) { if (!str1.Equals(““)) { if (action.Equals(““)) { MessageBox.Show(“请选择运算符“, “信息提示“); return; } } check(btnSeven); } else { check(btnSeven); Equal_flag = false; } } private void btnEight_Click(object sender, EventArgs e) { if (Equal_flag) { if (!str1.Equals(““)) { if (action.Equals(““)) { MessageBox.Show(“请选择运算符“, “信息提示“); return; } } check(btnEight); } else { check(btnEight); Equal_flag = false; } } private void btnNine_Click(object sender, EventArgs e) { if (Equal_flag) { if (!str1.Equals(““)) { if (action.Equals(““)) { MessageBox.Show(“请选择运算符“, “信息提示“); return; } } check(btnNine); } else { check(btnNine); Equal_flag = false; } } private void btnQual_Click(object sender, EventArgs e) { str_check(btnQual); str2 = ““; Equal_flag = true; action = ““; } private string calcute(string str1, string str2, string action) { switch (action) { case “+“: str1 = (double.Parse(str1) + double.Parse(str2)).ToString(); return str1; case “-“: str1 = (double.Parse(str1) - double.Parse(str2)).ToString(); return str1; case “*“: str1 = (double.Parse(str1) * double.Parse(str2)).ToString(); return str1; case “/“: if (str2.Equals(“0.0“) || str2.Equals(“0“)) { MessageBox.Show(“被除数不能为0“, “警告“); return str1; } str1 = (double.Parse(str1) / double.Parse(str2)).ToString(); return str1; default : MessageBox.Show(“操作错误!“, “提示“); return “wrong“; } } private void str_check(Button btnname) { //完成上一次计算后点击运算按钮应将结果作为第一个数 if (Equal_flag) { //第二个数还没输入的时候 if ((!str1.Equals(““)) && (str2.Equals(““))) { if (!(btnname.Text.IndexOf(’=’) 》 -1)) { action = btnname.Text; txtMath.Text += btnname.Text; } } //两个都不为空,第二个数已经输入,应将他们进行运算 if ((!str1.Equals(““)) && (!str2.Equals(““))) { str1 = calcute(str1, str2, action); txtMath.Text = str1.ToString(); } //直接点击操作错误 else if (str1.Equals(““)) { MessageBox.Show(“请输入要进行运算的数字“, “信息提示“); } } //没有点击“=” else if (!Equal_flag) { //第二个数还没输入的时候 if ((!str1.Equals(““)) && (str2.Equals(““))) { if (!(btnname.Text.IndexOf(’=’) 》 -1)) { action = btnname.Text; txtMath.Text += btnname.Text; } } //两个都不为空,第二个数已经输入,应将他们进行运算 if ((!str1.Equals(““)) && (!str2.Equals(““))) { str1 = calcute(str1, str2, action); txtMath.Text = str1.ToString(); } //直接点击操作错误 else if (str1.Equals(““)) { MessageBox.Show(“请输入要进行运算的数字“, “信息提示“); } } } private void btnPlus_Click(object sender, EventArgs e) { str_check(btnPlus); } private void btnMinus_Click(object sender, EventArgs e) { str_check(btnMinus); } private void btnTimes_Click(object sender, EventArgs e) { str_check(btnTimes); } private void btnDivide_Click(object sender, EventArgs e) { str_check(btnDivide); } private void btnRest_Click(object sender, EventArgs e) { txtMath.Text = “0.0“; str1 = str2 = ““; action = ““; Equal_flag = false; } }}

求Java编的简单计算器源代码

package edu.hpu.yyf;import java.awt.*;import java.awt.event.*;public class MyCalculator { private static double d1 = 0.0; private static double d2 = 0.0; private static String s1 = new String(“0“); private static String s2 = new String(“0“); private static char c1 =’0’; private static void judgec1(TextField text){ switch(c1){ case ’+’:s2 = String.valueOf(d1+d2);d1=d1+d2;d2=0;text.setText(s2);s2=“0“;break; case ’-’:s2 = String.valueOf(d1-d2);d1=d1-d2;d2=0;text.setText(s2);s2=“0“;break; case ’*’:s2 = String.valueOf(d1*d2);d1=d1*d2;d2=0;text.setText(s2);s2=“0“;break; case ’/’:if(d2==0) {text.setText(“0“);d1=0;break;}s2 = String.valueOf(d1/d2);d1=d1/d2;d2=0;text.setText(s2);s2=“0“;break;} } public static void main(String args){ Frame cclt = new Frame(“我的计算器“); cclt.setBounds(300,150,300,265); cclt.setLayout(null); final TextField text = new TextField(); text.setBounds(10, 30, 280, 35); text.setText(“0“); text.setEditable(false); Font font = new Font(““, 5, 25); text.setFont(font); cclt.add(text); Panel panel = new Panel(); Font font_1 = new Font(““, 5, 20); panel.setFont(font_1); panel.setBounds(5, 67, 290, 193); panel.setBackground(Color.GREEN); panel.setLayout(new GridLayout(5,4,5,5)); cclt.add(panel); Button space = new Button(); panel.add(space); Button Backspace = new Button(“Backspace“); Font font_2 = new Font(““, 0, 14); Backspace.setFont(font_2); panel.add(Backspace); Button CE = new Button(“CE“); panel.add(CE); Button C = new Button(“C“); panel.add(C); Button seven = new Button(“7“); panel.add(seven); Button eight = new Button(“8“); panel.add(eight); Button nine = new Button(“9“); panel.add(nine); Button but = new Button(“/“); panel.add(but); Button four = new Button(“4“); panel.add(four); Button five = new Button(“5“); panel.add(five); Button six = new Button(“6“); panel.add(six); Button ride = new Button(“*“); panel.add(ride); Button one = new Button(“1“); panel.add(one); Button two = new Button(“2“); panel.add(two); Button three = new Button(“3“); panel.add(three); Button substract = new Button(“-“); panel.add(substract); Button zero = new Button(“0“); panel.add(zero); Button space_1 = new Button(“ “); panel.add(space_1); Button equal = new Button(“=“); panel.add(equal); Button add = new Button(“+“); panel.add(add); CE.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { d1=0; d2=0; s1=“0“; s2=“0“; c1 =’0’; text.setText(“0“); } }); seven.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(s1.equals(“0“)) s1=“7“; else {text.setText(s1+“7“); s1+=“7“;} text.setText(s1); } }); eight.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(s1.equals(“0“)) s1=“8“; else {text.setText(s1+“8“); s1+=“8“;} text.setText(s1); } }); nine.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(s1.equals(“0“)) s1=“9“; else {text.setText(s1+“9“); s1+=“9“;} text.setText(s1); } }); four.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(s1.equals(“0“)) s1=“4“; else {text.setText(s1+“4“); s1+=“4“;} text.setText(s1); } }); five.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(s1.equals(“0“)) s1=“5“; else {text.setText(s1+“5“); s1+=“5“;} text.setText(s1); } }); six.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(s1.equals(“0“)) s1=“6“; else {text.setText(s1+“6“); s1+=“6“;} text.setText(s1); } }); one.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(s1.equals(“0“)) s1=“1“; else {text.setText(s1+“1“); s1+=“1“;} text.setText(s1); } }); two.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(s1.equals(“0“)) s1=“2“; else {text.setText(s1+“2“); s1+=“2“;} text.setText(s1); } }); three.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(s1.equals(“0“)) s1=“3“; else {text.setText(s1+“3“); s1+=“3“;} text.setText(s1); } }); zero.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(!s1.equals(“0“)) s1+=“0“; text.setText(s1); } }); but.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(c1==’0’) {d1=Double.parseDouble(s1);if(d1!=0){c1 = ’/’;}} else {d2=Double.parseDouble(s1); judgec1(text); c1 = ’/’;} s1=“0“; } }); substract.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(c1==’0’) {d1=Double.parseDouble(s1);if(d1!=0){c1 = ’-’;}} else {d2=Double.parseDouble(s1); judgec1(text); c1 = ’-’;} s1=“0“; } }); ride.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(c1==’0’) {d1=Double.parseDouble(s1);if(d1!=0){c1 = ’*’;}} else {d2=Double.parseDouble(s1); judgec1(text); c1 = ’*’;} s1=“0“; } }); add.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(c1==’0’) {d1=Double.parseDouble(s1);if(d1!=0){c1 = ’+’;}} else {d2=Double.parseDouble(s1); judgec1(text); c1 = ’+’;} s1=“0“; } }); /* Backspace.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(s1.length()!=0){ if(c1==’0’) {text.setText(s1.substring(0, s1.length()-1));s1=s1.substring(0, s1.length()-1);} else if (c1!=’0’&&!s2.equals(“0“)) {text.setText(s2.substring(0, s1.length()-1));s2=s2.substring(0, s2.length()-1);} }} });*/ equal.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(c1==’0’) d1=Double.parseDouble(s1); else {d2=Double.parseDouble(s1); judgec1(text);} s1=“0“; c1=’0’; } }); cclt.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ ((Frame) e.getComponent()).dispose(); } }); cclt.setResizable(false); cclt.setVisible(true); }}我们老师写的哦

计算器源代码

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.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;/** * 一个计算器,与Windows附件自带计算器的标准版功能、界面相仿。 * 但还不支持键盘操作。 */public class Calculator extends JFrame implements ActionListener { /** 计算器上的键的显示名字 */ private final String KEYS = { “7“, “8“, “9“, “/“, “sqrt“, “4“, “5“, “6“, “*“态手, “%“, “1“, “2“, “3“, “-“, “1/x“, “0“, “+/-“, “.“, “+“, “=“ }; /** 计算器上的功能键的显示名字 */ private final String COMMAND = { “Backspace“, “CE“, “C“ }; /** 计算器左边的M的显示名字 */ private final String M = { “ “, “MC“, “MR“, “MS“, “M+“ }; /** 计算器上键的按钮 */ private JButton keys; /** 计算器上的功能键的按钮 */ private JButton commands; /** 计算器左边的M的按钮 */ private JButton m; /** 计算结果文本框 */ private JTextField resultText = new JTextField(“0“); // 标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字 private boolean firstDigit = true; // 计算的中间结果。 private double resultNum = 0.0; // 当前运算的运算符 private String operator = “=“; // 操作是否合法 private boolean operateValidFlag = true; /** * 构造函数 */ public Calculator(){ super(); //初始化计算器 init(); //设置计算器的背景颜色 this.setBackground(Color.LIGHT_GRAY); this.setTitle(“计算器“); //在屏幕(500, 300)坐标处显示计算器 this.setLocation(500, 300); //不许修改计算器的大小 this.setResizable(false); //使计算器中各组件大小合适 this.pack(); } /** * 初始化计算器 */ private void init() { // 文本框中的内容采用右对齐方式 resultText.setHorizontalAlignment(JTextField.RIGHT); // 不允许修改结果文本框 resultText.setEditable(false); // 设置文本框背景颜色为白色 resultText.setBackground(Color.WHITE); //初始化计算器上键的按钮,将键放在一个画板内 JPanel calckeysPanel = new JPanel(); //用网格布局器,4行,5列的网格,网格之禅团间的水平方向间隔为3个贺闭橘象素,垂直方向间隔为3个象素 calckeysPanel.setLayout(new GridLayout(4, 5, 3, 3)); for (int i = 0; i 《 KEYS.length; i++) { keys); calckeysPanel.add(keys); keys.setForeground(Color.blue); } //运算符键用红色标示,其他键用蓝色表示 keys.setForeground(Color.red); keys.setForeground(Color.red); keys.setForeground(Color.red); keys.setForeground(Color.red); keys.setForeground(Color.red); //初始化功能键,都用红色标示。将功能键放在一个画板内 JPanel commandsPanel = new JPanel(); //用网格布局器,1行,3列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素 commandsPanel.setLayout(new GridLayout(1, 3, 3, 3)); for (int i = 0; i 《 COMMAND.length; i++) { commands); commandsPanel.add(commands); commands.setForeground(Color.red); } //初始化M键,用红色标示,将M键放在一个画板内 JPanel calmsPanel = new JPanel(); //用网格布局管理器,5行,1列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素 calmsPanel.setLayout(new GridLayout(5, 1, 3, 3)); for (int i = 0; i 《 M.length; i++) { m); calmsPanel.add(m); m.setForeground(Color.red); } //下面进行计算器的整体布局,将calckeys和command画板放在计算器的中部, //将文本框放在北部,将calms画板放在计算器的西部。 //新建一个大的画板,将上面建立的command和calckeys画板放在该画板内 JPanel panel1 = new JPanel(); //画板采用边界布局管理器,画板里组件之间的水平和垂直方向上间隔都为3象素 panel1.setLayout(new BorderLayout(3, 3)); panel1.add(“North“, commandsPanel); panel1.add(“Center“, calckeysPanel); //建立一个画板放文本框 JPanel top = new JPanel(); top.setLayout(new BorderLayout()); top.add(“Center“, resultText); //整体布局 getContentPane().setLayout(new BorderLayout(3, 5)); getContentPane().add(“North“, top); getContentPane().add(“Center“, panel1); getContentPane().add(“West“, calmsPanel); //为各按钮添加事件侦听器 //都使用同一个事件侦听器,即本对象。本类的声明中有implements ActionListener for (int i = 0; i 《 KEYS.length; i++) { keys.addActionListener(this); } for (int i = 0; i 《 COMMAND.length; i++) { commands.addActionListener(this); } for (int i = 0; i 《 M.length; i++) { m.addActionListener(this); } } /** * 处理事件 */ public void actionPerformed(ActionEvent e) { //获取事件源的标签 String label = e.getActionCommand(); if (label.equals(COMMAND)){ //用户按了“Backspace“键 handleBackspace(); } else if (label.equals(COMMAND)) { //用户按了“CE“键 resultText.setText(“0“); } else if (label.equals(COMMAND)){ //用户按了“C“键 handleC(); } else if (“0123456789.“.indexOf(label) 》= 0) { //用户按了数字键或者小数点键 handleNumber(label); // handlezero(zero); } else { //用户按了运算符键 handleOperator(label); } } /** * 处理Backspace键被按下的事件 */ private void handleBackspace() { String text = resultText.getText(); int i = text.length(); if (i 》 0) { //退格,将文本最后一个字符去掉 text = text.substring(0, i - 1); if (text.length() == 0) { //如果文本没有了内容,则初始化计算器的各种值 resultText.setText(“0“); firstDigit = true; operator = “=“; } else { //显示新的文本 resultText.setText(text); } } } /** * 处理数字键被按下的事件 * @param key */ private void handleNumber(String key) { if (firstDigit) { //输入的第一个数字 resultText.setText(key); } else if ((key.equals(“.“)) && (resultText.getText().indexOf(“.“) 《 0)){ //输入的是小数点,并且之前没有小数点,则将小数点附在结果文本框的后面 resultText.setText(resultText.getText() + “.“); } else if (!key.equals(“.“)) { //如果输入的不是小数点,则将数字附在结果文本框的后面 resultText.setText(resultText.getText() + key); } //以后输入的肯定不是第一个数字了 firstDigit = false; } /** * 处理C键被按下的事件 */ private void handleC() { //初始化计算器的各种值 resultText.setText(“0“); firstDigit = true; operator = “=“; } /** * 处理运算符键被按下的事件 * @param key */ private void handleOperator(String key) { if (operator.equals(“/“)) { //除法运算 //如果当前结果文本框中的值等于0 if (getNumberFromText() == 0.0){ //操作不合法 operateValidFlag = false; resultText.setText(“除数不能为零“); } else { resultNum /= getNumberFromText(); } } else if (operator.equals(“1/x“)) { //倒数运算 if (resultNum == 0.0){ //操作不合法 operateValidFlag = false; resultText.setText(“零没有倒数“); } else { resultNum = 1 / resultNum; } } else if (operator.equals(“+“)){ //加法运算 resultNum += getNumberFromText(); } else if (operator.equals(“-“)){ //减法运算 resultNum -= getNumberFromText(); } else if (operator.equals(“*“)){ //乘法运算 resultNum *= getNumberFromText(); } else if (operator.equals(“sqrt“)) { //平方根运算 resultNum = Math.sqrt(resultNum); } else if (operator.equals(“%“)){ //百分号运算,除以100 resultNum = resultNum / 100; } else if (operator.equals(“+/-“)){ //正数负数运算 resultNum = resultNum * (-1); } else if (operator.equals(“=“)){ //赋值运算 resultNum = getNumberFromText(); } if (operateValidFlag) { //双精度浮点数的运算 long t1; double t2; t1 = (long) resultNum; t2 = resultNum - t1; if (t2 == 0) { resultText.setText(String.valueOf(t1)); } else { resultText.setText(String.valueOf(resultNum)); } } //运算符等于用户按的按钮 operator = key; firstDigit = true; operateValidFlag = true; } /** * 从结果文本框中获取数字 * @return */ private double getNumberFromText() { double result = 0; try { result = Double.valueOf(resultText.getText()).doubleValue(); } catch (NumberFormatException e){ } return result; } public static void main(String args) { Calculator calculator1 = new Calculator(); calculator1.setVisible(true); calculator1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}

声明:关于《装修计算器源码》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/decorate/32_1752577.html