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

📄 jsq.java

📁 java做的一个计算器,命令行模式下运行!
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
   s=String.valueOf(n1);
   tf.setText(s);
      }
   else
   {
   if(op=="*")
    n3=n1*n;
     if(op=="/")
    n3=n/n1;
       n=n3;

s=String.valueOf(n3);
tf.setText(s);
}
/*if(op3=="-")
b[y]=0-a[y];
a[i]=b[y];*/



op2="";
t=true;
t2=false;

op="*";
tf2.setText(tf2.getText()+"*");
}
else {
if(!tzuo)         //左括号没有按下去的动作
  {
if(op=="*")
 n1=n1*n;
if(op=="/")
 n1=n/n1;
op="*";
n=n1;
t=true;
t2=false;
tf2.setText(tf2.getText()+"*"); }
else             //左括号按下去的动作
{if(op2=="*")
 n1=n1*n4;
if(op2=="/")
 n1=n4/n1;
op2="*";
n4=n1;
t=true;
t2=false;
tf2.setText(tf2.getText()+"*");
op4="";

}

}   //右括号结束

       }//乘法结束
if(e.getSource()==jia) //加法
{ float n1,n2,n3=0,ncifang,njilei;
int j,k;
 s1=tf.getText();
n1=Float.parseFloat(s1);
if(op4=="x^y")
{
k=(int)n1;
njilei=1;
ncifang=Float.parseFloat(s);

for(j=1;j<=k;j++)
 njilei=njilei*ncifang;
tf.setText(String.valueOf(njilei));

}
s1=tf.getText();
n1=Float.parseFloat(s1);
if(tyou)            //右括号被按下后再按加号的动作
{  
t=true;
t2=false;
   if(op=="")
   { 
n=n1;
   s=String.valueOf(n1);
   tf.setText(s);


a[i]=n1;
/*System.out.println("这个时候的a["+i+"]"+"为"+a[i]);*/
i++;
/*System.out.println("这个时候的i的值为"+i);*/
      }
else {
 if(op=="*")
    n3=n1*n;
     if(op=="/")
    n3=n/n1;
       n=n3;
/*System.out.println("这个时候的a["+i+"]"+"为"+n3);*/
s=String.valueOf(n3);
tf.setText(s);
a[i]=n3;
i++;
/*System.out.println("这个时候的I为:"+i);*/
}
tf2.setText(tf2.getText()+"+");
op="";
}
else {
s1=tf.getText();
n1=Float.parseFloat(s1);
if(!tzuo)   //左括号没有被按下去的时候的动作
{
if(op=="")
a[i]=n1;
else
{
if(op=="*")
 n3=n1*n;
if(op=="/")
 n3=n/n1;
a[i]=n3;
}
if(op1=="-")
a[i]=0-a[i];
 
i++;
op="";
t=true;
t2=false;
tf2.setText(tf2.getText()+"+");
op1="";}
else	 //左括号按下去的动作
{
if(op2=="")
b[y]=n1;
else
{
if(op2=="*")
 n3=n1*n4;
if(op2=="/")
 n3=n4/n1;
b[y]=n3;
}
if(op3=="-")
b[y]=0-b[y];
 
y++;
op2="";
op3="";
t=true;
t2=false;
tf2.setText(tf2.getText()+"+");
op4="";
}
}
}  //加法结束

if(e.getSource()==jian)//减法
{ float n1,n2,n3=0,ncifang,njilei;
int j,k;
s1=tf.getText();
n1=Float.parseFloat(s1);
if(op4=="x^y")
{
k=(int)n1;
njilei=1;
ncifang=Float.parseFloat(s);

for(j=1;j<=k;j++)
 njilei=njilei*ncifang;
tf.setText(String.valueOf(njilei));

}
s1=tf.getText();
n1=Float.parseFloat(s1);
if(!tzuo) // 左括号没有被按下去的动作
{
if(op=="")
a[i]=n1;
else
{if(op=="*")
 n3=n1*n;
if(op=="/")
 n3=n/n1;
a[i]=n3;
}
if(op1=="-")
a[i]=0-a[i];
i++;
op="";
op1="-";
t=true;
t2=false;
tf2.setText(tf2.getText()+"-"); } //左括号没有按下去动作结束
else
{
if(op2=="")
b[y]=n1;
else
{
if(op2=="*")
 n3=n1*n4;
if(op2=="/")
 n3=n4/n1;
b[y]=n3;}

if(op3=="-")
b[y]=0-b[y];
y++;
op2="";
op3="-";
t=true;
t2=false;
tf2.setText(tf2.getText()+"-");
op4="";
}
}  //减法结束

if(e.getSource()==chu)//除法
{ float n1,n2,n3,ncifang,njilei;
int j,k;
s1=tf.getText();
n1=Float.parseFloat(s1);
if(op4=="x^y")
{
k=(int)n1;
njilei=1;
ncifang=Float.parseFloat(s);

for(j=1;j<=k;j++)
 njilei=njilei*ncifang;
tf.setText(String.valueOf(njilei));

}
s1=tf.getText();
n1=Float.parseFloat(s1);
if(!tzuo)   //左括号没有被按下去的动作
{
if(op=="*")
 n1=n1*n;
if(op=="/")
 n1=n/n1;
op="/";
n=n1;
t=true;
t2=false;
tf2.setText(tf2.getText()+"/"); }//左括号没有按下去动作结束
else
{
if(op2=="*")
 n1=n1*n4;
if(op2=="/")
 n1=n4/n1;
op2="/";
n4=n1;
t=true;
t2=false;
tf2.setText(tf2.getText()+"/");
op4="";
}
} //除法结束
if(e.getSource()==erjinzhi)//二进制
{float n1,n2=0,n3=0,k=0;
String s,s2,s1;
int i=0,h,j,k2,k3,changdu=0,m=0,n=0,j2,j3;
int a[]=new int[100];

op="";
s=tf.getText();
span=s.substring(0,1);
h=Integer.parseInt(span);
if(h==0)
k=0;
else
k=Float.parseFloat(s);
k2=(int)k;
k3=k2;

n2=k-k2;
if(n2==0)
{s="";
while(k2>0) 
{j=k2%2;
a[i]=j;
i++;
k2=k2/2;
}
for(j=i;j>=0;j--)
s=s+String.valueOf(a[j]);
s+="B";
tf.setText(s);

}//if结束     这里解决的是非小数点的十进制的二进制表示
else
{
m=s.length();
j2=0;

s1=tf.getText();

while(k3>0) 
{j=k3%2;
a[i]=j;
i++;
k3=k3/2;
}
s="";
for(j=i;j>=0;j--)
s=s+String.valueOf(a[j]);
tf.setText(s);
s=s+".";


while(k2>0)
{j2+=1;
k2=k2/10;
}

s2=s1.substring(j2,m);
s2="0"+s2;
n3=Float.parseFloat(s2);
n=0;

while(n3!=0&&n<10)
{n++;  
n3=n3*2;
j3=(int)n3;
n3=n3-j3;
s+=String.valueOf(j3);
}
s+="0";
s+="B";
tf.setText(s);
t2=false;
}
}//二进制结束
if(e.getSource()==zuokuahao)//左括号
{String s3,s;
float n1,n2,n3;
tzuo=true;
op3="";
op2="";
s=tf.getText();
n1=Float.parseFloat(s);
n=n1;

tf.setText("0");


t2=false;
t3=true;
u2=0;
tf2.setText(tf2.getText()+"(");
tyou=false;
}

if(e.getSource()==youkuahao)//右括号
{
float n1,n2,n3=0;
String s;
int j,k;
s=tf.getText();
n1=Float.parseFloat(s);

tf2.setText(tf2.getText()+")");
if(op2=="")
{b[y]=n1;

/*System.out.println("y="+y);*/}
else
{ if(op2=="*")
 n3=n1*n4;
if(op2=="/")
 n3=n4/n1;
b[y]=n3;
  }
if(op3=="-")
b[y]=0-b[y];

t=true;
t2=false;
for(j=0;j<=100;j++)
if(b[j]==0)
break;
n3=0;
for(k=0;k<=j;k++)
n3=n3+b[k];

if(op1=="-")
a[i]=0-a[i];  
tf.setText(String.valueOf(n3));
for(j=0;j<=100;j++)
b[j]=0;


tzuo=false;
tyou=true;
op3="";
n4=0;
op2="";
y=0;
}   //右括号结束


if(e.getSource()==shiliujinzhi)//十六进制
{float n1,n2=0,n3=0,k=0;
String s,s2,s1;
int i=0,h,j,k2,k3,changdu=0,m=0,n=0,j2,j3;
int a[]=new int[100];

op="";
s=tf.getText();
span=s.substring(0,1);
h=Integer.parseInt(span);
if(h==0)
k=0;
else
k=Float.parseFloat(s);
k2=(int)k;
k3=k2;

n2=k-k2;
if(n2==0)
{s="";
while(k2>0) 
{j=k2%16;
a[i]=j;
i++;
k2=k2/16;
}
for(j=i;j>=0;j--)
s=s+String.valueOf(a[j]);
s+="H";
tf.setText(s);

}//if结束
else
{
m=s.length();
j2=0;

s1=tf.getText();

while(k3>0) 
{j=k3%16;
a[i]=j;
i++;
k3=k3/16;
}
s="";
for(j=i;j>=0;j--)
s=s+String.valueOf(a[j]);
tf.setText(s);
s=s+".";


while(k2>0)
{j2+=1;
k2=k2/10;
}

s2=s1.substring(j2,m);
s2="0"+s2;
n3=Float.parseFloat(s2);
n=0;

while(n3!=0&&n<10)
{n++;  
n3=n3*16;
j3=(int)n3;
n3=n3-j3;
s+=String.valueOf(j3);
}
s+="0";
s+="H";
tf.setText(s);
t2=false;
}
}//十六进制结束



if(e.getSource()==dengyu)//等号
{ 
  float n1,n2,n3=0,ncifang=0,njilei;
int j,k,oldn;
n3=0;
s1=tf.getText();
n1=Float.parseFloat(s1);

if(op4=="x^y")
{
k=(int)n1;
njilei=1;
ncifang=Float.parseFloat(s);

for(j=1;j<=k;j++)
 njilei=njilei*ncifang;
tf.setText(String.valueOf(njilei));

}
s1=tf.getText();
n1=Float.parseFloat(s1);


if(op=="%")
{   oldn=Integer.parseInt(s);
	k=oldn%(int)n1;
	tf.setText(String.valueOf(k)); }


else  {




if(!tyou)    //右括号没被按下去的动作
{
if(op=="")
a[i]=n1;
else {
if(op=="*")
 n3=n1*n;
if(op=="/")
 n3=n/n1;
a[i]=n3;
}
if(op1=="-")
a[i]=0-a[i];
i++;
op="";
op2="";
t=true;
t2=false;
for(j=0;j<=100;j++)
if(a[j]==0)
break;
n3=0;
for(k=0;k<=j;k++)
n3=n3+a[k];

s=String.valueOf(n3);
tf.setText(s);}
else                //右括号被按下去后的动作

{

   if(op=="")
   { 
n=n1;
   s1=String.valueOf(n1);
   tf.setText(s1);

a[i]=n1;
/*System.out.println("a["+i+"]"+a[i]);*/
i++;
/*System.out.println("这个时候的i的值为"+i);*/
      }
 
else
 {

if(op=="*")
 n3=n1*n;
if(op=="/")
 n3=n/n1;
a[i]=n3;
	/*System.out.println("n3="+n3);*/
/*System.out.println("i="+i);*/
}
if(op1=="-")
{i--;
a[i]=0-a[i];}
i++;
y++;
op="";
op2="";
t=true;
t2=false;
for(j=0;j<=100;j++)
if(a[j]==0)
break;
n3=0;
for(k=0;k<=j;k++)
{n3=n3+a[k];
/*System.out.println("a["+k+"]"+"="+a[k]);*/
}
s=String.valueOf(n3);
tf.setText(s);
n4=0;
op1="";
op3="";
tzuo=false;
tyou=false;

}

}
for(i=0;i<=100;i++)
{a[i]=0;
b[i]=0;
}
i=0;
y=0;
n4=0;
op1="";
op3="";
op="";
op2="";
tzuo=false;
tyou=false;
op4="";
tf2.setText(tf2.getText()+"="+tf.getText());
}}}















⌨️ 快捷键说明

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