📄 jsq.java
字号:
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 + -