📄 calc.java
字号:
else data1=(int)(data1/10);
displayNumber=new Double(data1);
tf.setText(displayNumber.toString());
}
if(s.equals("MC"))
{
memDataIndicate=false;
memData=0;
}
if(s.equals("MR")&&memDataIndicate){
data1=memData;
equalSignPressIndicate=true;
radixPointDepth=1;
radixPointIndicate=false;
//显示数据
displayNumber=new Double(data1);
tf.setText(displayNumber.toString());
}
if(s.equals("MS"))
{
if(equalSignPressIndicate||(numberPressIndicate==false))
{
memData=result;
displayNumber=new Double(result);
tf.setText(displayNumber.toString());
}
else
{
memData=data1;
displayNumber=new Double(data1);
tf.setText(displayNumber.toString());
}
equalSignPressIndicate=true;
memDataIndicate=true;
prec='+';
radixPointDepth=1;
radixPointIndicate=false;
}
if(s.equals("M+"))
{
if(equalSignPressIndicate||(numberPressIndicate==false))
{
memData=memData+result;
displayNumber=new Double(result);
tf.setText(displayNumber.toString());
}
else
{
memData=memData+data1;
displayNumber=new Double(data1);
tf.setText(displayNumber.toString());
}
equalSignPressIndicate=true;
memDataIndicate=true;
prec='+';
radixPointDepth=1;
radixPointIndicate=false;
}
if(s.equals("sin"))
{ //按下sin键求正弦
if(equalSignPressIndicate||(numberPressIndicate==false)){
result=Math.sin(result*PI/180);
displayNumber=new Double(result);
tf.setText(displayNumber.toString());
}
else{
data1=Math.sin(data1*PI/180);
displayNumber=new Double(data1);
tf.setText(displayNumber.toString());
}
}
if(s.equals("cos"))
{ //按下cos键求余弦
if(equalSignPressIndicate||(numberPressIndicate==false)){
result=Math.cos(result*PI/180);
displayNumber=new Double(result);
tf.setText(displayNumber.toString());
}
else{
data1=Math.cos(data1*PI/180);
displayNumber=new Double(data1);
tf.setText(displayNumber.toString());
}
}
if(s.equals("tan"))
{ //按下tan键求正切
if(equalSignPressIndicate||(numberPressIndicate==false)){
result=Math.tan(result*PI/180);
displayNumber=new Double(result);
tf.setText(displayNumber.toString());
}
else{
data1=Math.tan(data1*PI/180);
displayNumber=new Double(data1);
tf.setText(displayNumber.toString());
}
}
if(s.equals("x^2"))
{ //按下x^2键求平方
if(equalSignPressIndicate||(numberPressIndicate==false)){
result=result*result;
displayNumber=new Double(result);
tf.setText(displayNumber.toString());
}
else{
data1=data1*data1;
displayNumber=new Double(data1);
tf.setText(displayNumber.toString());
}
}
if(s.equals("sqrt"))
{ //按下sqrt键,进行开平方运算
if(equalSignPressIndicate||(numberPressIndicate==false))
{
result=Math.sqrt(result);
displayNumber=new Double(result);
tf.setText(displayNumber.toString());
}
else
{
data1=Math.sqrt(data1);
displayNumber=new Double(data1);
tf.setText(displayNumber.toString());
}
}
if(s.equals("1/x")||s.equals("+/-"))
//为了区别1键和1/x键的第一个字符都为1,+/-键和+键的第一个字符都为+
{
if(s.equals("1/x")) //按下1/x键,求倒数运算理
{ if(equalSignPressIndicate||(numberPressIndicate==false))
{
result=1/result;
displayNumber=new Double(result);
tf.setText(displayNumber.toString());
}
else
{
data1=1/data1;
displayNumber=new Double(data1);
tf.setText(displayNumber.toString());
}
}
if(s.equals("+/-")) //按下+/-键,取正负操作
{
if(equalSignPressIndicate||(numberPressIndicate==false))
{
result=0-result;
displayNumber=new Double(result);
tf.setText(displayNumber.toString());
}
else
{
data1=0-data1;
displayNumber=new Double(data1);
tf.setText(displayNumber.toString());
}
}
}
else{
switch(s.charAt(0))
{ //数字输入程序
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
//按完等号键后,直接按任何数字键,计算器认为应该清零后从新计算
if(equalSignPressIndicate){
//以下六条语句为初始化计算器即清零
result=0;
data1=0;
prec='+';
radixPointDepth=1;
numberPressIndicate=false;
radixPointIndicate=false;
}
if(radixPointIndicate){
radixPointDepth=radixPointDepth/10;
data1=data1+(Integer.parseInt(s))*radixPointDepth;
}
else data1=data1*10+(Integer.parseInt(s));
numberPressIndicate=true;
equalSignPressIndicate=false;
//显示数据
displayNumber=new Double(data1);
tf.setText(displayNumber.toString());
break;
//在按+ ,- ,* ,/ ,= ,mod号后处理程序
case '+': case '-': case '*':case '/': case '=': case 'm':
if(s.charAt(0)!='='&&equalSignPressIndicate){
prec=s.charAt(0);
equalSignPressIndicate=false;
}
else{
switch(prec){
case '+':
result=result+data1;
break;
case '-':
result=result-data1;
break;
case '*':
result=result*data1;
break;
case '/':
result=result/data1;
break;
case 'm':
result=result%data1;
break;
case 'p':
result=Math.pow(result,data1);
}
}
radixPointIndicate=false;
radixPointDepth=1;
numberPressIndicate=false;
if(s.charAt(0)!='='){
data1=0;
prec=s.charAt(0);
}
else equalSignPressIndicate=true;
//显示数据
displayNumber=new Double(result);
tf.setText(displayNumber.toString());
break;
case '.':
radixPointIndicate=true;
numberPressIndicate=true;
break;
case '%':
if(equalSignPressIndicate||(numberPressIndicate==false)){
result=result*100;
displayNumber=new Double(result);
tf.setText(displayNumber.toString());
}
else{
data1=data1/100;
displayNumber=new Double(data1);
tf.setText(displayNumber.toString());
}
break;
}
}
}
public void windowClosing(WindowEvent e){ System.exit(0); }
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -