package cn.edu.nmu.calculator;
import java.util.Scanner;
class function{
    double x,y;
    String x1;
    void S10T2(double x){    //十进制转换成二进制
        String s1 = Integer.toBinaryString((int)x);
        System.out.println("二进制结果为"+s1);
    }

    void S10T8(double x){        //十进制转换成八进制
        String s1 = Integer.toOctalString((int)x);
        System.out.println("八进制结果为"+s1);
    }

    void S10T16(double x){        //十进制转换成十六进制
        String s1 = Integer.toHexString((int)x);
        System.out.println("十六进制结果为"+s1);
    }

    void S2T10(double x){        //二进制转换成十进制
        String s1 = Integer.valueOf(String.valueOf((int)x),2).toString();
        System.out.println("二进制转换成十进制为"+s1);
    }

    void S8T10(double x){        //八进制转换成十进制
        String s1 = Integer.valueOf(String.valueOf((int)x),8).toString();
        System.out.println("八进制转换成十进制"+s1);
    }

    void S16T10(String x1){        //十六进制转换成十进制
        String s1 = Integer.valueOf(x1,16).toString();
        System.out.println("十六进制转换成十进制"+s1);
    }

    void add(double x,double y){
        System.out.println(x+"+"+y+"="+(x+y));
    }
    void sub(double x,double y){
        System.out.println(x+"-"+y+"="+(x-y));
    }
    void mul(double x,double y){
        System.out.println(x+"*"+y+"="+(x*y));
    }
    void div(double x,double y){
        System.out.println(x+"/"+y+"="+(x/y));
    }
    void rem(double x,double y){
        System.out.println(x+"%"+y+"="+(x%y));
    }
    void mainMenu(){
        System.out.println("欢迎使用科学计算器");
        System.out.println("请选择操作:");
        System.out.println(" 0:退出计算器");
        System.out.println(" 1.加法运算");
        System.out.println(" 2.减法运算");
        System.out.println(" 3.乘法运算");
        System.out.println(" 4.除法运算");
        System.out.println(" 5.取余运算");
        System.out.println(" 6.十进制转换成二进制");
        System.out.println(" 7.十进制转换成八进制");
        System.out.println(" 8.十进制转换成十六进制");
        System.out.println(" 9.二进制转换成十进制");
        System.out.println("10.八进制转换成十进制");
        System.out.println("11.十六进制转换成十进制");
        System.out.println("result will stop 3s");
    }
}

public class Calculator {
    public static void main(String[] args) {
        Scanner sc1 = new Scanner(System.in);
        Scanner sc2 = new Scanner(System.in);
        Scanner sc3 = new Scanner(System.in);
        Scanner sc4 = new Scanner(System.in);

        double x,y;
        int choice;
        String x1;
        boolean flag = true;
        function fun = new function();

        while(flag)
        {
            fun.mainMenu();
            System.out.println("请选择操作:");
            choice = sc3.nextInt();
            switch(choice)
            {
                case 0:
                        System.out.printf("\n谢谢使用,将退出程序!@_@\n");
                        flag = false;
                        break;

                case 1:
                    System.out.print("请输入需要被加数:");
                    x = sc1.nextDouble();
                    System.out.print("请输入需要加数:");
                    y = sc2.nextDouble();
                    fun.add(x,y);

                    try { Thread.sleep ( 3000 ) ;
                    } catch (InterruptedException ie){}
                    break;

                case 2:
                    System.out.print("请输入需要被减数:");
                    x = sc1.nextDouble();
                    System.out.print("请输入需要减数:");
                    y = sc2.nextDouble();
                    fun.sub(x,y);

                    try { Thread.sleep ( 3000 ) ;
                    } catch (InterruptedException ie){}
                    break;

                case 3:
                    System.out.print("请输入需要被乘数:");
                    x = sc1.nextDouble();
                    System.out.print("请输入需要乘数:");
                    y = sc2.nextDouble();
                    fun.mul(x,y);

                    try { Thread.sleep ( 3000 ) ;
                    } catch (InterruptedException ie){}
                    break;

                case 4:
                    System.out.print("请输入需要被除数:");
                    x = sc1.nextDouble();
                    System.out.print("请输入需要除数:");
                    y = sc2.nextDouble();
                    fun.div(x,y);

                    try { Thread.sleep ( 3000 ) ;
                    } catch (InterruptedException ie){}
                    break;

                case 5:
                    System.out.print("请输入需要被除数:");
                    x = sc1.nextDouble();
                    System.out.print("请输入需要除数:");
                    y = sc2.nextDouble();
                    fun.rem(x,y);

                    try { Thread.sleep ( 3000 ) ;
                    } catch (InterruptedException ie){}
                    break;

                case 6:
                    System.out.print("请输入被转换数:");
                    x = sc1.nextDouble();
                    fun.S10T2(x);

                    try { Thread.sleep ( 3000 ) ;
                    } catch (InterruptedException ie){}
                    break;

                case 7:
                    System.out.print("请输入被转换数:");
                    x = sc1.nextDouble();
                    fun.S10T8(x);

                    try { Thread.sleep ( 3000 ) ;
                    } catch (InterruptedException ie){}
                    break;

                case 8:
                    System.out.print("请输入被转换数:");
                    x = sc1.nextDouble();
                    fun.S10T16(x);

                    try { Thread.sleep ( 3000 ) ;
                    } catch (InterruptedException ie){}                    try { Thread.sleep ( 3000 ) ;
                } catch (InterruptedException ie){}
                    break;

                case 9:
                    System.out.print("请输入被转换数:");
                    x = sc1.nextDouble();
                    fun.S2T10(x);

                    try { Thread.sleep ( 3000 ) ;
                    } catch (InterruptedException ie){}
                    break;

                case 10:
                    System.out.print("请输入被转换数:");
                    x = sc1.nextDouble();
                    fun.S8T10(x);

                    try { Thread.sleep ( 3000 ) ;
                    } catch (InterruptedException ie){}
                    break;

                case 11:
                    System.out.print("请输入被转换数:");
                    x1 = sc4.next();
                    fun.S16T10(x1);

                    try { Thread.sleep ( 3000 ) ;
                    } catch (InterruptedException ie){}
                    break;

                default: System.out.printf("\n输入的序号有误,请重新输入!\n\n");

                    try { Thread.sleep ( 3000 ) ;
                    } catch (InterruptedException ie){}
                    break;
            }
        }
    }
}

更多推荐

JAVA综合编程作业:使用JAVA编写一个计算器,要求具有菜单栏,具有进制转换功能。