62,616
社区成员
发帖
与我相关
我的任务
分享
import java.util.ArrayList;
import java.util.Stack;
import java.util.StringTokenizer;
import java.io.*;
public class Main {
public static void main(String []args)throws IOException{
Stack<String> stack = new Stack<String>();
ArrayList<String> list = new ArrayList<String>();
BufferedReader buf = new BufferedReader(
new InputStreamReader(System.in));
String str = buf.readLine();
while(!str.equals("0")){
list.clear();
stack.clear();
StringTokenizer st = new StringTokenizer(str);
while(st.hasMoreTokens()){
String temp = st.nextToken();
if(isOperation(temp)){
while(!stack.empty() && getPriority(temp)<=getPriority(stack.peek())){
list.add(stack.pop());
}
stack.push(temp);
}else{
list.add(temp);
}
}
while(!stack.empty()){
list.add(stack.pop());
}
double num1 =0;
double num2 = 0;
for(int i=0;i<list.size();i++){
if(isOperation(list.get(i))){
num2=Double.parseDouble(stack.pop());
num1=Double.parseDouble(stack.pop());
num1=cal(num1,num2,list.get(i));
stack.push(String.valueOf(num1));
}else{
stack.push(list.get(i));
}
}
System.out.println(String.format("%.2f",Double.valueOf(stack.pop())));
str=buf.readLine();
}
}
private static boolean isOperation(String op){
if(op.equals("+") || op.equals("-")
|| op.equals("*") || op.equals("/")){
return true;
}
return false;
}
private static int getPriority(String op){
if(op.equals("+") || op.equals("-")){
return 0;
}else{
return 1;
}
}
private static double cal(double v1,double v2,String op){
if(op.equals("+")){
return v1+v2;
}else if(op.equals("-")){
return v1-v2;
}else if(op.equals("*")){
return v1*v2;
}else{
return v1/v2;
}
}
}
package test6;
import java.util.Scanner;
public class Calculator {
public static void main(String[] args){
boolean flag = true;
while(flag == true){
System.out.println("请输入任意两个数");
Scanner sc1 = new Scanner(System.in);
float a = sc1.nextFloat();
float b = sc1.nextFloat();
System.out.println("请输入选择:");
System.out.println("1.加法");
System.out.println("2.减法");
System.out.println("3.乘法");
System.out.println("4.除法");
System.out.println("5.求余");
System.out.println("0.退出");
System.out.print("请输入你的选择:");
Scanner sc = new Scanner(System.in);
int select = sc.nextInt();
if((select < 0) || (select > 5)){
System.out.println("输入错误,请重新输入");
}
switch(select){
case 0: System.exit(0);
case 1: Calculator.plus(a, b);
break;
case 2: Calculator.minus(a, b);
break;
case 3: Calculator.multiply(a, b);
break;
case 4: Calculator.divid(a, b);
break;
case 5: Calculator.remaind(a, b);
break;
default: break;
}
}
}
public static void plus(float a, float b){
System.out.println("相加结果为:" + (a+b));
}
public static void minus(float a, float b){
System.out.println("相减结果为:" + (a-b));
}
public static void multiply(float a, float b){
System.out.println("相乘结果为:" + (a*b));
}
public static void divid(float a, float b){
System.out.println("相除结果为:" + (a/b));
}
public static void remaind(float a, float b){
System.out.println("相除余数为:" + (a%b));
}
}
import java.util.*;
public class calc {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("*****************简单计算器****************");
System.out.println("*\t\t\t\t\t*");
System.out.println("* 使用说明: 1.加法 2.减法 3.乘法 4.除法 * 5.退出");
System.out.println("*\t\t\t\t\t*");
System.out.println("*****************************************");
for(int i=0;i<100;i++){
System.out.print("\n请选择运算规则:");
int num = input.nextInt();
if (num == 5) {
break;
}
switch(num){
case 1:
System.out.println("\n******你选择了加法******\n");
System.out.print("请输入第1个加数:");
int jiashu1 = input.nextInt();
System.out.print("请输入第2个加数:");
int jiashu2 = input.nextInt();
System.out.println("运算结果为:" + jiashu1 + " + " + jiashu1 + " = " + (jiashu1 + jiashu2));
break;
case 2:
System.out.println("\n******你选择了减法******\n");
System.out.print("请输入被减数:");
int jianshu1 = input.nextInt();
System.out.print("请输入减数:");
int jianshu2 = input.nextInt();
System.out.println("运算结果为:" + jianshu1 + " - " + jianshu2 + " = " + (jianshu1 - jianshu2));
break;
case 3:
System.out.println("\n******你选择了乘法******\n");
System.out.print("请输入第1个因数:");
int chengfa1 = input.nextInt();
System.out.print("请输入第2个因数:");
int chengfa2 = input.nextInt();
System.out.println("运算结果为:" + chengfa1 + " * " + chengfa2 + " = " + (chengfa1 * chengfa2));
break;
case 4:
System.out.println("\n******你选择了除法******\n");
System.out.print("请输入被除数:");
double chufa1 = input.nextInt();
System.out.print("请输入除数:");
double chufa2 = input.nextInt();
System.out.println("运算结果为:" + chufa1 + " / " + chufa2 + " = " + (chufa1 / chufa2) + " 余 " + (chufa1 % chufa2));
break;
default:
System.out.println("\n你的选择有错,请重新选择!");
break;
}
}
}
}