以前写的一个计算器,稍微改进了一下
2006-09-24 13:06
302 查看
package test ;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculate extends JFrame implements ActionListener
{
private JButton button;
private JTextField text;
private JPanel p,p2;
String
s[]={"7","8","9","/","4","5","6","*","1","2",
"3","-","0",".","=","+","CE","1/x","BACK","+/-"};
double currentNumber = 0; //当前数字
int decimalDigits = -1 ; //小数位数,默认为-1,当按了.数 设为0
String currentText = "" ; //当前文本
CalculateStack stack ; //堆栈类
String currentOpr = "" ; //当前操作
boolean isequal = false ; //等于好标志
boolean issign = false ; //运算触发标志位
public Calculate()
{ super("LIXIAOHONG计算器");
addWindowListener(new FrameListener());
text=new JTextField("0",25);
text.setHorizontalAlignment(JTextField.RIGHT);
text.setEditable(false) ;
p=new JPanel();
p2=new JPanel();
stack = new CalculateStack(5) ;
for(int i=0;i<20;i++)
{
button=new JButton(s[i]);
button.addActionListener(this);
button.setBackground(Color.pink);//null
p.add(button);
}
p.setLayout(new GridLayout(5,4));
p2.add(text,BorderLayout.NORTH);
p2.add(p,BorderLayout.CENTER);
getContentPane().add(p2);
pack();
setResizable(false);
setSize(290,210);
setVisible(true);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent ae)
{
for(int i=0;i<20;i++)
{
if(ae.getActionCommand().equals(s[i]))
{
switch(i)
{
case 0:case 1:case 2: // text 7,8,9
if(issign){
// stack.push(currentNumber) ;
currentNumber = 0 ;
decimalDigits = -1 ;
issign = false ;
}
if(currentNumber == 0&&decimalDigits==-1)
currentNumber = i+7;
else if(currentNumber != 0&&decimalDigits==-1)
currentNumber = currentNumber*10 + (i+7) ;
else if(decimalDigits != -1){
decimalDigits++ ;
currentNumber = currentNumber + (1/Math.pow(10, decimalDigits))*(i+7) ;
}
currentText = currentNumber+"" ;
enterText(currentText,text,false);
stack.display() ;
break;
case 4: case 5:case 6: // text 456
if(issign){
// stack.push(currentNumber) ;
currentNumber = 0 ;
decimalDigits = -1 ;
issign = false ;
}
if(currentNumber == 0&&decimalDigits==-1)
currentNumber = i;
else if(currentNumber != 0&&decimalDigits==-1)
currentNumber = currentNumber*10 + (i) ;
else if(decimalDigits != -1){
decimalDigits++ ;
currentNumber = currentNumber + (1/Math.pow(10, decimalDigits))*(i) ;
}
currentText = currentNumber+"" ;
enterText(currentText,text,false);
stack.display() ;
break;
case 8:case 9: case 10: // text 123
if(issign){
//stack.push(currentNumber) ;
currentNumber = 0 ;
decimalDigits = -1;
issign = false ;
}
if(currentNumber == 0&&decimalDigits==-1)
currentNumber = i-7;
else if(currentNumber != 0&&decimalDigits==-1)
currentNumber = currentNumber*10 + (i-7) ;
else if(decimalDigits!=-1){
decimalDigits++ ;
currentNumber = currentNumber + (1/Math.pow(10, decimalDigits))*(i-7) ;
}
currentText = currentNumber+"" ;
enterText(currentText,text,false);
stack.display() ;
break;
case 12: // text 0
if(issign){
//stack.push(currentNumber) ;
currentNumber = 0 ;
decimalDigits = -1;
issign = false ;
}
if(currentNumber == 0&&decimalDigits==-1){
currentNumber = 0;
currentText = currentNumber+"" ;
enterText(currentText,text,false);
}
else if(currentNumber != 0&&decimalDigits==-1){
currentNumber = currentNumber*10 ;
currentText = currentNumber+"" ;
enterText(currentText,text,false);
}
else if(decimalDigits!=-1){
decimalDigits++ ;
currentText = currentText +"0" ;
enterText(currentText,text,true);
}
stack.display() ;
break;
case 13: //text .
if(decimalDigits == -1){
decimalDigits = 0 ;
System.out.println(currentText+"/..........1.");
currentText = (int)currentNumber+"." ;
enterText((int)currentNumber+".",text,true);
}
stack.display() ;
break ;
case 15:case 11:case 7:case 3://+and- ,*and
if(!currentText.equals("")){
stack.push(currentNumber) ;
currentOpr = s[i] ;
if((currentOpr.equals("+")||currentOpr.equals("-"))&&stack.length()>=3){
double p1 = Double.parseDouble( stack.pop().toString() );
String s1 = stack.pop().toString() ;
double p2 = Double.parseDouble( stack.pop().toString() );
double res = 0 ;
if(s1.equals("+")){
res = p1 + p2 ;
stack.push(res) ;
}else if(s1.equals("-")){
res = p2 - p1 ;
stack.push(res) ;
}else if(s1.equals("*")){
res = p2 * p1 ;
stack.push(res) ;
}else if(s1.equals("/")){
res = p2 / p1 ;
stack.push(res) ;
}
enterText(res+"",text,true);
}else if((currentOpr.equals("*")||currentOpr.equals("/"))&&stack.length()>=3){
double p1 = Double.parseDouble( stack.pop().toString() );
String s1 = stack.pop().toString() ;
double p2 = Double.parseDouble( stack.pop().toString() );
double res = 0 ;
if(s1.equals("*")){
res = p2 * p1 ;
stack.push(res) ;
if(isDot1())
enterText(res+"",text,true);
else enterText(res+"",text,false);
}else if(s1.equals("/")){
res = p2 / p1 ;
stack.push(res) ;
if(isDot1())
enterText(res+"",text,true);
else enterText(res+"",text,false);
}else if(s1.equals("+")||s1.equals("-")){
stack.push(p2) ;
stack.push(s1) ;
stack.push(p1) ;
}
}
if(currentOpr.equals("*")||currentOpr.equals("/")){
//stack.push(currentOpr) ;
}
currentText = "" ;
currentNumber = 0 ;
decimalDigits = -1 ;
stack.push(currentOpr) ;
}else if(isequal){
stack.push(currentNumber) ;
currentOpr = s[i] ;
currentText = "" ;
currentNumber = 0 ;
decimalDigits = -1 ;
isequal =false ;
stack.push(currentOpr) ;
}
stack.display() ;
break;
case 14: //,=
if(!currentText.equals("")){
stack.push(currentNumber) ;
currentNumber = 0 ;
decimalDigits = -1 ;
}
isequal = true ;
String ct = operator() ;
currentText = "";
currentNumber = Double.parseDouble(ct) ;
//stack.push(currentNumber) ;
enterText(ct,text,true);
stack.display() ;
break ;
case 16: // CE
currentText = "" ;
currentNumber = 0 ;
currentOpr = "" ;
decimalDigits = -1 ;
text.setText(""+0);
stack.pointer = 0 ;
break;
case 17: // 1/x
if(currentNumber!=0){
currentNumber = 1/currentNumber ;
if(isDot1())
enterText(currentNumber+"",text,true);
else enterText(currentNumber+"",text,false);
issign = true ;
}
break;
case 18: //退格键,,l=j为了能自己退格
if(decimalDigits==-1){
currentNumber = (int)currentNumber/10 ;
currentText = (int)currentNumber +"" ;
enterText(currentNumber+"",text,false);
}else{
if(decimalDigits==0){
currentNumber = (int)currentNumber/10 ;
currentText = (int)currentNumber +"" ;
enterText(currentNumber+"",text,false);
}else{
String subNumber = text.getText().substring(0,text.getText().length()-1) ;
currentText = subNumber ;
currentNumber = Double.parseDouble(subNumber) ;
enterText(currentNumber+"",text,true);
}
decimalDigits-- ;
}
break;
case 19: //取相反数,,l=j是为了能取自己的相反数
if(currentNumber!=0){
currentNumber = -currentNumber ;
if(isDot1())
enterText(currentNumber+"",text,true);
else enterText(currentNumber+"",text,false);
issign = true ;
}
break;
default:
}
}
}
}
public void enterText(String j1,JTextField text,boolean isDot)
{
if(isDot)
text.setText(j1);
else{
double j = Double.parseDouble(j1) ;
if(j==(int)j)
text.setText(""+(int)j);
else
text.setText(j1 );
}
}
public void enterText(double j,JTextField text)
{
if(j==(int)j)
text.setText(""+(int)j);
else
text.setText(j+"" );
}
public boolean isDot1(){
if(currentNumber==(int)currentNumber) return false ;
else
return true ;
}
public String operator(){
double result = 0 ;
int len = stack.length() ;
if(len==3){
double i1 = (Double)stack.pop();
String sign = stack.pop().toString() ;
double i2 = (Double)stack.pop() ;
if(sign.equals("*")){
result = i1 * i2 ;
}else if(sign.equals("/")){
result = i2 / i1 ;
} if(sign.equals("+")){
result = i1 + i2 ;
}else if(sign.equals("-")){
result = i2 - i1 ;
}
issign = true ;
//stack.push(result) ;
}else if(len == 5){
double i1 = (Double)stack.pop();
String sign1 = (String)stack.pop().toString() ; ;
double i2 = (Double)stack.pop() ;
String sign2 = (String)stack.pop().toString() ; ;
double i3 = (Double)stack.pop() ;
//System.out.println(sign1+ " "+sign2) ;
if(sign1.equals("*")){
result = i1 * i2 ;
}else if(sign1.equals("/")){
result = i2 / i1 ;
}else if(sign1.equals("+")){
result = i1 + i2 ;
}else if(sign1.equals("-")){
result = i2 - i1 ;
}
if(sign2.equals("+")){
result = i3 + result ;
}else if(sign1.equals("-")){
result = i3 - result ;
}
//stack.push(result) ;
issign = true ;
}else if(len==4){
String sign = (String)stack.pop().toString() ;
double i1 = (Double)stack.pop() ;
String sign1 = (String)stack.pop().toString() ;
double i2 = (Double)stack.pop() ;
if(sign1.equals("*")){
result = i1 * i2 ;
}else if(sign1.equals("/")){
result = i2 / i1 ;
}else if(sign1.equals("+")){
result = i1 + i2 ;
}else if(sign1.equals("-")){
result = i2 - i1 ;
}
//stack.push(result) ;
issign = true ;
}
stack.isOperator = false ;
return result+"" ;
}
public static void main(String args[])
{
//double aa = (1/Math.pow(10, 2))*7;
// System.out.println(aa);
new Calculate();
}
private void jbInit() throws Exception {
this.getContentPane().setBackground(SystemColor.controlText);
}
/**内部类:自定义继承WindowListener的侦听器FrameListener*/
class FrameListener extends WindowAdapter
{
/**处理点击窗体关闭按钮事件,实现程序的关闭停止*/
public void windowClosing(WindowEvent we)
{
exit();
}
}
public void exit()
{
String exitMessage = "Are you sure you want to exit?";
//if (JOptionPane.showConfirmDialog(this, exitMessage) == JOptionPane.YES_OPTION)
// {
System.exit(0);
//}
}
}
class CalculateStack extends Stack{
boolean isOperator ;
CalculateStack(int size) {
super(size);
isOperator = false ;
}
@Override
public boolean push(Object o){
try
{
container[pointer] = o ;
pointer++ ;
//System.out.println(o+" "+pointer);
if((o.toString()).equals("*")||(o.toString()).equals("/")||pointer==4){
isOperator = true ;
}
return true ;
}
catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("Push error, stack overflow!"+e);
return false;
}
}
}
class Stack{
protected Object[] container ;
protected int pointer ;
protected int stacksize ;
Stack(int size){
container = new Object[size] ;
pointer = 0 ;
stacksize = size ;
}
public boolean push(Object o){
try
{
container[pointer] = o ;
pointer++ ;
}
catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("Push error, stack overflow!"+e);
return false;
}
return true;
}
public Object pop(){
try
{
pointer-- ;
return container[pointer] ;
}
catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("Pop error, stack empty!"+e);
return -1;
}
}
public boolean isempty()
{
return pointer == 0 ? true:false;
}
public void display()
{
int ptr = 0;
//System.out.println("The stack content are:");
for ( ptr = 0; ptr < pointer; ptr++)
{
System.out.print(container[ptr]+" " );
}
System.out.println("");
}
public int length(){
return pointer ;
}
public int size(){
return stacksize ;
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculate extends JFrame implements ActionListener
{
private JButton button;
private JTextField text;
private JPanel p,p2;
String
s[]={"7","8","9","/","4","5","6","*","1","2",
"3","-","0",".","=","+","CE","1/x","BACK","+/-"};
double currentNumber = 0; //当前数字
int decimalDigits = -1 ; //小数位数,默认为-1,当按了.数 设为0
String currentText = "" ; //当前文本
CalculateStack stack ; //堆栈类
String currentOpr = "" ; //当前操作
boolean isequal = false ; //等于好标志
boolean issign = false ; //运算触发标志位
public Calculate()
{ super("LIXIAOHONG计算器");
addWindowListener(new FrameListener());
text=new JTextField("0",25);
text.setHorizontalAlignment(JTextField.RIGHT);
text.setEditable(false) ;
p=new JPanel();
p2=new JPanel();
stack = new CalculateStack(5) ;
for(int i=0;i<20;i++)
{
button=new JButton(s[i]);
button.addActionListener(this);
button.setBackground(Color.pink);//null
p.add(button);
}
p.setLayout(new GridLayout(5,4));
p2.add(text,BorderLayout.NORTH);
p2.add(p,BorderLayout.CENTER);
getContentPane().add(p2);
pack();
setResizable(false);
setSize(290,210);
setVisible(true);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent ae)
{
for(int i=0;i<20;i++)
{
if(ae.getActionCommand().equals(s[i]))
{
switch(i)
{
case 0:case 1:case 2: // text 7,8,9
if(issign){
// stack.push(currentNumber) ;
currentNumber = 0 ;
decimalDigits = -1 ;
issign = false ;
}
if(currentNumber == 0&&decimalDigits==-1)
currentNumber = i+7;
else if(currentNumber != 0&&decimalDigits==-1)
currentNumber = currentNumber*10 + (i+7) ;
else if(decimalDigits != -1){
decimalDigits++ ;
currentNumber = currentNumber + (1/Math.pow(10, decimalDigits))*(i+7) ;
}
currentText = currentNumber+"" ;
enterText(currentText,text,false);
stack.display() ;
break;
case 4: case 5:case 6: // text 456
if(issign){
// stack.push(currentNumber) ;
currentNumber = 0 ;
decimalDigits = -1 ;
issign = false ;
}
if(currentNumber == 0&&decimalDigits==-1)
currentNumber = i;
else if(currentNumber != 0&&decimalDigits==-1)
currentNumber = currentNumber*10 + (i) ;
else if(decimalDigits != -1){
decimalDigits++ ;
currentNumber = currentNumber + (1/Math.pow(10, decimalDigits))*(i) ;
}
currentText = currentNumber+"" ;
enterText(currentText,text,false);
stack.display() ;
break;
case 8:case 9: case 10: // text 123
if(issign){
//stack.push(currentNumber) ;
currentNumber = 0 ;
decimalDigits = -1;
issign = false ;
}
if(currentNumber == 0&&decimalDigits==-1)
currentNumber = i-7;
else if(currentNumber != 0&&decimalDigits==-1)
currentNumber = currentNumber*10 + (i-7) ;
else if(decimalDigits!=-1){
decimalDigits++ ;
currentNumber = currentNumber + (1/Math.pow(10, decimalDigits))*(i-7) ;
}
currentText = currentNumber+"" ;
enterText(currentText,text,false);
stack.display() ;
break;
case 12: // text 0
if(issign){
//stack.push(currentNumber) ;
currentNumber = 0 ;
decimalDigits = -1;
issign = false ;
}
if(currentNumber == 0&&decimalDigits==-1){
currentNumber = 0;
currentText = currentNumber+"" ;
enterText(currentText,text,false);
}
else if(currentNumber != 0&&decimalDigits==-1){
currentNumber = currentNumber*10 ;
currentText = currentNumber+"" ;
enterText(currentText,text,false);
}
else if(decimalDigits!=-1){
decimalDigits++ ;
currentText = currentText +"0" ;
enterText(currentText,text,true);
}
stack.display() ;
break;
case 13: //text .
if(decimalDigits == -1){
decimalDigits = 0 ;
System.out.println(currentText+"/..........1.");
currentText = (int)currentNumber+"." ;
enterText((int)currentNumber+".",text,true);
}
stack.display() ;
break ;
case 15:case 11:case 7:case 3://+and- ,*and
if(!currentText.equals("")){
stack.push(currentNumber) ;
currentOpr = s[i] ;
if((currentOpr.equals("+")||currentOpr.equals("-"))&&stack.length()>=3){
double p1 = Double.parseDouble( stack.pop().toString() );
String s1 = stack.pop().toString() ;
double p2 = Double.parseDouble( stack.pop().toString() );
double res = 0 ;
if(s1.equals("+")){
res = p1 + p2 ;
stack.push(res) ;
}else if(s1.equals("-")){
res = p2 - p1 ;
stack.push(res) ;
}else if(s1.equals("*")){
res = p2 * p1 ;
stack.push(res) ;
}else if(s1.equals("/")){
res = p2 / p1 ;
stack.push(res) ;
}
enterText(res+"",text,true);
}else if((currentOpr.equals("*")||currentOpr.equals("/"))&&stack.length()>=3){
double p1 = Double.parseDouble( stack.pop().toString() );
String s1 = stack.pop().toString() ;
double p2 = Double.parseDouble( stack.pop().toString() );
double res = 0 ;
if(s1.equals("*")){
res = p2 * p1 ;
stack.push(res) ;
if(isDot1())
enterText(res+"",text,true);
else enterText(res+"",text,false);
}else if(s1.equals("/")){
res = p2 / p1 ;
stack.push(res) ;
if(isDot1())
enterText(res+"",text,true);
else enterText(res+"",text,false);
}else if(s1.equals("+")||s1.equals("-")){
stack.push(p2) ;
stack.push(s1) ;
stack.push(p1) ;
}
}
if(currentOpr.equals("*")||currentOpr.equals("/")){
//stack.push(currentOpr) ;
}
currentText = "" ;
currentNumber = 0 ;
decimalDigits = -1 ;
stack.push(currentOpr) ;
}else if(isequal){
stack.push(currentNumber) ;
currentOpr = s[i] ;
currentText = "" ;
currentNumber = 0 ;
decimalDigits = -1 ;
isequal =false ;
stack.push(currentOpr) ;
}
stack.display() ;
break;
case 14: //,=
if(!currentText.equals("")){
stack.push(currentNumber) ;
currentNumber = 0 ;
decimalDigits = -1 ;
}
isequal = true ;
String ct = operator() ;
currentText = "";
currentNumber = Double.parseDouble(ct) ;
//stack.push(currentNumber) ;
enterText(ct,text,true);
stack.display() ;
break ;
case 16: // CE
currentText = "" ;
currentNumber = 0 ;
currentOpr = "" ;
decimalDigits = -1 ;
text.setText(""+0);
stack.pointer = 0 ;
break;
case 17: // 1/x
if(currentNumber!=0){
currentNumber = 1/currentNumber ;
if(isDot1())
enterText(currentNumber+"",text,true);
else enterText(currentNumber+"",text,false);
issign = true ;
}
break;
case 18: //退格键,,l=j为了能自己退格
if(decimalDigits==-1){
currentNumber = (int)currentNumber/10 ;
currentText = (int)currentNumber +"" ;
enterText(currentNumber+"",text,false);
}else{
if(decimalDigits==0){
currentNumber = (int)currentNumber/10 ;
currentText = (int)currentNumber +"" ;
enterText(currentNumber+"",text,false);
}else{
String subNumber = text.getText().substring(0,text.getText().length()-1) ;
currentText = subNumber ;
currentNumber = Double.parseDouble(subNumber) ;
enterText(currentNumber+"",text,true);
}
decimalDigits-- ;
}
break;
case 19: //取相反数,,l=j是为了能取自己的相反数
if(currentNumber!=0){
currentNumber = -currentNumber ;
if(isDot1())
enterText(currentNumber+"",text,true);
else enterText(currentNumber+"",text,false);
issign = true ;
}
break;
default:
}
}
}
}
public void enterText(String j1,JTextField text,boolean isDot)
{
if(isDot)
text.setText(j1);
else{
double j = Double.parseDouble(j1) ;
if(j==(int)j)
text.setText(""+(int)j);
else
text.setText(j1 );
}
}
public void enterText(double j,JTextField text)
{
if(j==(int)j)
text.setText(""+(int)j);
else
text.setText(j+"" );
}
public boolean isDot1(){
if(currentNumber==(int)currentNumber) return false ;
else
return true ;
}
public String operator(){
double result = 0 ;
int len = stack.length() ;
if(len==3){
double i1 = (Double)stack.pop();
String sign = stack.pop().toString() ;
double i2 = (Double)stack.pop() ;
if(sign.equals("*")){
result = i1 * i2 ;
}else if(sign.equals("/")){
result = i2 / i1 ;
} if(sign.equals("+")){
result = i1 + i2 ;
}else if(sign.equals("-")){
result = i2 - i1 ;
}
issign = true ;
//stack.push(result) ;
}else if(len == 5){
double i1 = (Double)stack.pop();
String sign1 = (String)stack.pop().toString() ; ;
double i2 = (Double)stack.pop() ;
String sign2 = (String)stack.pop().toString() ; ;
double i3 = (Double)stack.pop() ;
//System.out.println(sign1+ " "+sign2) ;
if(sign1.equals("*")){
result = i1 * i2 ;
}else if(sign1.equals("/")){
result = i2 / i1 ;
}else if(sign1.equals("+")){
result = i1 + i2 ;
}else if(sign1.equals("-")){
result = i2 - i1 ;
}
if(sign2.equals("+")){
result = i3 + result ;
}else if(sign1.equals("-")){
result = i3 - result ;
}
//stack.push(result) ;
issign = true ;
}else if(len==4){
String sign = (String)stack.pop().toString() ;
double i1 = (Double)stack.pop() ;
String sign1 = (String)stack.pop().toString() ;
double i2 = (Double)stack.pop() ;
if(sign1.equals("*")){
result = i1 * i2 ;
}else if(sign1.equals("/")){
result = i2 / i1 ;
}else if(sign1.equals("+")){
result = i1 + i2 ;
}else if(sign1.equals("-")){
result = i2 - i1 ;
}
//stack.push(result) ;
issign = true ;
}
stack.isOperator = false ;
return result+"" ;
}
public static void main(String args[])
{
//double aa = (1/Math.pow(10, 2))*7;
// System.out.println(aa);
new Calculate();
}
private void jbInit() throws Exception {
this.getContentPane().setBackground(SystemColor.controlText);
}
/**内部类:自定义继承WindowListener的侦听器FrameListener*/
class FrameListener extends WindowAdapter
{
/**处理点击窗体关闭按钮事件,实现程序的关闭停止*/
public void windowClosing(WindowEvent we)
{
exit();
}
}
public void exit()
{
String exitMessage = "Are you sure you want to exit?";
//if (JOptionPane.showConfirmDialog(this, exitMessage) == JOptionPane.YES_OPTION)
// {
System.exit(0);
//}
}
}
class CalculateStack extends Stack{
boolean isOperator ;
CalculateStack(int size) {
super(size);
isOperator = false ;
}
@Override
public boolean push(Object o){
try
{
container[pointer] = o ;
pointer++ ;
//System.out.println(o+" "+pointer);
if((o.toString()).equals("*")||(o.toString()).equals("/")||pointer==4){
isOperator = true ;
}
return true ;
}
catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("Push error, stack overflow!"+e);
return false;
}
}
}
class Stack{
protected Object[] container ;
protected int pointer ;
protected int stacksize ;
Stack(int size){
container = new Object[size] ;
pointer = 0 ;
stacksize = size ;
}
public boolean push(Object o){
try
{
container[pointer] = o ;
pointer++ ;
}
catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("Push error, stack overflow!"+e);
return false;
}
return true;
}
public Object pop(){
try
{
pointer-- ;
return container[pointer] ;
}
catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("Pop error, stack empty!"+e);
return -1;
}
}
public boolean isempty()
{
return pointer == 0 ? true:false;
}
public void display()
{
int ptr = 0;
//System.out.println("The stack content are:");
for ( ptr = 0; ptr < pointer; ptr++)
{
System.out.print(container[ptr]+" " );
}
System.out.println("");
}
public int length(){
return pointer ;
}
public int size(){
return stacksize ;
}
}
相关文章推荐
- 稍微改进了一下,下一步应该是封装对象,然后尝试组件话一个东东~?
- 看了GAL游戏资源文件黑盒分析,想起以前做的一个提取器,发来大家共享一下
- 以前做的一个ASP项目,初学者可参考一下。
- 整理一个坛子里的笑话...稍微改编一下,就叫做《MM和一个程序员相亲的故事》!
- 以前写的一个小结,放在这里偶尔可以回顾一下。
- 以前写的一个分页存储过程 嗮一下
- 以前写的一个手机通讯录管理小程序回忆一下(C#版大牛绕过)致曾经写过的小程序
- 使用面向对象的编程思想写一个简单的控制台计算器程序,放松一下
- 今天大致了解了一下Java Script,实现了一个JS版的小计算器
- 整理一个坛子里的笑话...稍微改编一下,就叫做《MM和一个程序员相亲的故事》!
- 整理一个坛子里的笑话...稍微改编一下,就叫做《MM和一个程序员相亲的故事》!
- 整理一个坛子里的笑话...稍微改编一下,就叫做《MM和一个程序员相亲的故事》!
- datagrid 数据分页的一个改进办法
- 请教一下:Windows任务管理器中显示的进程占用的内存是什么内存? 分配的还是使用的? 另外,最小化一个进程的时候为什么其占用的内存会大大降低?谢谢
- jqGrid插件getCol方法的一个改进
- 一个个人觉得比较好用的PHP日志类,给大家分享一下
- 使用JSP制作一个超简单的网页计算器的实例分享
- 使用JSP制作一个超简单的网页计算器的实例分享
- 复习一下以前的知识:Java用户界面本地化
- 每天一个python小程序 007有个目录,里面是你自己写过的程序,统计一下你写过多少行代码。包括空行和注释,但是要分别列出来。