发布网友 发布时间:2022-04-23 07:44
共6个回答
热心网友 时间:2023-10-08 15:27
public static void main(String[] args) {
String st = "";
计算器 j = new 计算器();
boolean t = true;
while (t) {
System.out.print("请输入计算代码:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
st = br.readLine();
} catch (IOException ex) {
Logger.getLogger(计算器.class.getName()).log(Level.SEVERE, null, ex);
}
if (st.equals("end")) {
t = false;
} else if (!st.equals("")) {
j.处理(st);
}
}
}
public void 处理(String st) {
if (st.indexOf("+") != -1) {
加(符号处理(st, "+"));
} else if (st.indexOf("-") != -1) {
减(符号处理(st, "-"));
} else if (st.indexOf("*") != -1) {
乘(符号处理(st, "*"));
} else if (st.indexOf("/") != -1) {
除(符号处理(st, "/"));
}
}
public int[] 符号处理(String st, String s) {
int[] i = new int[2];
i[0] = Integer.parseInt(st.substring(0, st.indexOf(s)));
i[1] = Integer.parseInt(st.substring(st.indexOf(s) + 1));
return i;
}
public void 加(int x[]) {
System.out.println(x[0] + "+" + x[1] + "=" + (x[0] + x[1]));
}
public void 减(int[] x) {
System.out.println(x[0] + "-" + x[1] + "=" + (x[0] - x[1]));
}
public void 乘(int[] x) {
System.out.println(x[0] + "*" + x[1] + "=" + x[0] * x[1]);
}
public void 除(int x[]) {
if (x[1] == 0) {
System.out.print("除数不能为零");
return;
}
System.out.println(x[0] + "/" + x[1] + "=" + x[0] / x[1]);
}
可以运行:输入示例:55+62
热心网友 时间:2023-10-08 15:28
请留下Email地址 ,代码仅供参考 希望自己多练习
热心网友 时间:2023-10-08 15:28
public class Calculator {
double sum=0;
public double ope(int op,int num1,int num2){
switch(op){
case 1:
sum=num1+num2;
break;
case 2:
sum=num1-num2;
break;
case 3:
sum=num1/num2;
break;
case 4:
sum=num1*num2;
break;
default:
System.out.println("请输入正确的运算符");
}
return sum;
}
}
import java.util.*;
public class test1 {
public static void main(String[]args){
Scanner input=new Scanner(System.in);
Calculator c=new Calculator();
System.out.println("请选择运算符:1.加法 2.减法 3.除法 4.乘法");
int op=input.nextInt();
System.out.println("请输入第一个数:");
int num1=input.nextInt();
System.out.println("请输入第二个数:");
int num2=input.nextInt();
double sum=c.ope(op, num1, num2);
System.out.println("***运算结果为:"+sum);
}
}
我也是初学JAVA的 见笑
热心网友 时间:2023-10-08 15:29
public class calculator{
//加法
public int add(int number1,int number2){
return (number1+number2);
}
//减法
public int subtract(int number1,int number2){
return (number1-number2);
}
//乘法
public int multiplicat(int number1,int number2){
return (number1*number2);
}
//除法
public int div(int number1,int number2){
return (number1/number2);
}
public static void main(String[] args) {
int number1=6;
int number2=3;
System.out.println("6+3="+add(number1,number2));
System.out.println("6-3="+subtract(number1,number2));
System.out.println("6*3="+multiplicat(number1,number2));
System.out.println("6/3="+div(number1,number2));
}
}
纯手打,不知道能不能运行,你可以直接复制下来试试。
热心网友 时间:2023-10-08 15:29
我觉得是不是可以把算式写成字符串通过args[]传入(方便cmd里 用java Yunsuan 1+2*3-4之类的使用),然后把字符串用split按照运算优先顺序通过运算符进行逐层分割,分解成一个一个的数组,最后通过switch 运算符的办法进行一步一步的化简,直到得到最终结果呢?刚开始学,希望讨论下
好吧,我自己写了个简单的,还不能用括号和三角函数等等,以后加上动态数组的知识应该可以简化下代码,我还没学到呢……这也相当于一个简单的eval了:cmd里编译以后,运行java后边跟上算式即可。例如 java Jisuan 1+2*3-5/2
import java.lang.Number;
class Jisuan
{
static String s="";
public static void main(String[] args)
{
for (int i=0;i<args.length ;i++ )
{s=s+args[i];}
s="0+"+s;//s=算式
String shuzi[]=s.split("\\+|\\-|\\*|\\/");//分隔得到数字
char youxian[]={'*','/','-','+'};
char fuhao[]=new char[shuzi.length];
int sum=0;
for (int i=0;i<shuzi.length-1 ;i++ )
{
sum=sum+shuzi[i].length();
fuhao[i]=s.charAt(sum+i);//取位得到运算符号
}
for (int i=0;i<youxian.length ;i++ )//化简算式
{
for (int j=1;j<=fuhao.length-1;j++ )
{
if (fuhao[j]==youxian[i])
{
shuzi[j+1]=js(shuzi[j],fuhao[j],shuzi[j+1]);//求结果
for (int l=j;l>=1;l-- )
{
fuhao[l]=fuhao[l-1];
shuzi[l]=shuzi[l-1];
}
}
}
}
System.out.println("="+shuzi[shuzi.length-1]);
}
public static String js(String a,char b,String c)
{
Double e=0.0;
switch (b)
{
case '+':
e=Double.valueOf(a)+Double.valueOf(c);break;
case '-':
e=Double.valueOf(a)-Double.valueOf(c);break;
case '*':
e=Double.valueOf(a)*Double.valueOf(c);break;
case '/':
e=Double.valueOf(a)/Double.valueOf(c);break;
}
return Double.toString(e);
}
}
参考资料:Q群11540662
热心网友 时间:2023-10-08 15:30
http://hi.baidu.com/shy2850/blog/item/707e0f1365e6fad5c3fd78c1.html