You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
package Hello;
|
|
|
|
|
import java.io.*;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.math.*;
|
|
|
|
|
public class Hello{
|
|
|
|
|
|
|
|
|
|
public static double mypow(double e,double x) {
|
|
|
|
|
double ans=Math.pow(e, x);
|
|
|
|
|
return ans;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static double mylog(double a,double x) {
|
|
|
|
|
double ans=Math.log(x)/Math.log(a);
|
|
|
|
|
return ans;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static double myadd(double a,double b) {
|
|
|
|
|
return a+b;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static double mysub(double a,double b) {
|
|
|
|
|
return a-b;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static double mymultiply(double a,double b) {
|
|
|
|
|
return a*b;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static double mydivide(double a,double b) {
|
|
|
|
|
return a/b;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static double mysin(double x) {
|
|
|
|
|
return Math.sin(x);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static double mycos(double x) {
|
|
|
|
|
return Math.cos(x);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static double mytan(double x) {
|
|
|
|
|
return Math.tan(x);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void main(String args[]) {
|
|
|
|
|
Scanner cin=new Scanner(System.in);
|
|
|
|
|
System.out.printf("功能表:\n说明:输入add a b执行a+b\n"
|
|
|
|
|
+ "pow e x\nlog a x\nadd a b\nsub a b\nmultiply a b\n"
|
|
|
|
|
+ "divide a b\nsin x\ncos x\ntan x\nquit:退出\n");
|
|
|
|
|
while (cin.hasNext()) {
|
|
|
|
|
String op=cin.next();
|
|
|
|
|
double a,b,ans=0;
|
|
|
|
|
switch(op) {
|
|
|
|
|
case "pow":
|
|
|
|
|
a=cin.nextDouble();
|
|
|
|
|
b=cin.nextDouble();
|
|
|
|
|
ans=mypow(a,b);
|
|
|
|
|
break;
|
|
|
|
|
case "log":
|
|
|
|
|
a=cin.nextDouble();
|
|
|
|
|
b=cin.nextDouble();
|
|
|
|
|
ans=mylog(a,b);
|
|
|
|
|
break;
|
|
|
|
|
case "add":
|
|
|
|
|
a=cin.nextDouble();
|
|
|
|
|
b=cin.nextDouble();
|
|
|
|
|
ans=myadd(a,b);
|
|
|
|
|
break;
|
|
|
|
|
case "sub":
|
|
|
|
|
a=cin.nextDouble();
|
|
|
|
|
b=cin.nextDouble();
|
|
|
|
|
ans=mysub(a,b);
|
|
|
|
|
break;
|
|
|
|
|
case "multiply":
|
|
|
|
|
a=cin.nextDouble();
|
|
|
|
|
b=cin.nextDouble();
|
|
|
|
|
ans=mymultiply(a,b);
|
|
|
|
|
break;
|
|
|
|
|
case "divide":
|
|
|
|
|
a=cin.nextDouble();
|
|
|
|
|
b=cin.nextDouble();
|
|
|
|
|
while(b==0) {
|
|
|
|
|
System.out.printf("除数不能为0,请重新输入除数!\n");
|
|
|
|
|
b=cin.nextDouble();
|
|
|
|
|
}
|
|
|
|
|
ans=mydivide(a,b);
|
|
|
|
|
break;
|
|
|
|
|
case "sin":
|
|
|
|
|
a=cin.nextDouble();
|
|
|
|
|
ans=mysin(a);
|
|
|
|
|
break;
|
|
|
|
|
case "cos":
|
|
|
|
|
a=cin.nextDouble();
|
|
|
|
|
ans=mycos(a);
|
|
|
|
|
break;
|
|
|
|
|
case "tan":
|
|
|
|
|
a=cin.nextDouble();
|
|
|
|
|
ans=mytan(a);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
System.out.println("已退出计算器\n");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
System.out.printf("%f\n",ans);
|
|
|
|
|
}
|
|
|
|
|
cin.close();
|
|
|
|
|
}
|
|
|
|
|
}
|