⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculator.txt

📁 java计算器,带图形用户界面,能够在输出显示屏上显示所输入的式子
💻 TXT
字号:
java计算器,带图形用户界面,能够在输出显示屏上显示所输入的式子,并且能够进行4则混和运算。
//HTML 
<html> 
<applet code=SZJSQ.class width=400 height=180> 
</applet> 
</html> 
//APPLET 
import 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[50]; 
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[j++]=mystack.pop().charValue(); 
} 
mystack.pop(); 
i++; 
break; 
case '+': 
case '-': 
while(!mystack.empty()&&mystack.peek().charValue()!='(') 
{ 
anArray[j++]=mystack.pop().charValue(); 

} 
mystack.push(new Character(c)); 
i++; 
break; 
case '*': 
case '/': 
while(!mystack.empty()&&(mystack.peek().charValue()=='*'||mystack.peek().charValue()=='/')) 
{ 
anArray[j++]=mystack.pop().charValue(); 
} 
mystack.push(new Character(c)); 
i++; 
break; 
case' ': i++; 
break; 
default: while((c>='0'&&c<='9')||c=='.') 
{ 
anArray[j++]=c; 
i++; 
c=formula.charAt(i); 
} 
anArray[j++]='#'; 
break; 
} 
} 
while(!(mystack.empty())) 
anArray[j++]=mystack.pop().charValue(); 

i=0; 
int count; 
double a,b,d; 
Stack<Double> mystack1 =new Stack<Double>(); 
while(i<j) 
{ 
c=anArray[i]; 
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[i]; 
} 
if(c=='.') 
{ 
i++; 
c=anArray[i]; 
while((c>='0'&&c<='9')) 
{ 
count++; 
d=d+(c-'0')/Math.pow(10,count); 
i++; 
c=anArray[i]; 
} 
} 
if(c=='#') 
mystack1.push(new Double(d)); 
i++; 
break; 
} 
} 
return(mystack1.peek().doubleValue()); 
} 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -