简易手机计算器

package Calculator;

import java.util.Scanner;
public class Calculator 
{
	public void compute()
	{
		Scanner com = new Scanner(System.in);

        System.out.print("请输入第一个数: ");
        double result = com.nextDouble();

        while (true) {
            System.out.print("请输入下一个数(或输入q退出): ");
            String next = com.next();

            if (next.equals("q")) 
            {
                break;
            }

            double num = Double.parseDouble(next);

            System.out.print("请选择运算符(+,-,*,/,%): ");
            char operator = com.next().charAt(0);

            switch (operator) 
            {
                case '+':
                    result += num;
                    break;
                case '-':
                    result -= num;
                    break;
                case '*':
                    result *= num;
                    break;
                case '/':
                    result /= num;
                    break;
                case '%':
                    result %= num;
                    break;
                default:
                    System.out.println("错误的运算符");
                    return;
            }
        }

        System.out.println("结果为: " + result);
	}
	public void currency()
	{
		Scanner cu = new Scanner(System.in);
        double usd, eur, cny;

        System.out.print("请输入一个货币值(单位:美元、欧元或人民币):");
        double inputValue = cu.nextDouble();
        String inputCurrency = cu.next();

        System.out.print("请输入目标货币(单位:美元、欧元或人民币):");
        String outputCurrency = cu.next();

        switch (inputCurrency) 
        {
            case "USD":
            case "usd":
                usd = inputValue;
                eur = usd * 0.85; // 计算欧元
                cny = usd * 6.46;
                break;
            case "EUR":
            case "eur":
                eur = inputValue;
                usd = eur * 1.18; // 计算美元
                cny = eur * 7.66;
                break;
            case "CNY":
            case "cny":
                cny = inputValue;
                usd = cny * 0.15; // 计算美元
                eur = cny * 0.13; // 计算欧元
                break;
            default:
                System.out.println("不支持的货币单位!");
                return;
        }

        double outputValue;
        switch (outputCurrency) 
        {
            case "USD":
            case "usd":
                outputValue = usd;
                break;
            case "EUR":
            case "eur":
                outputValue = eur;
                break;
            case "CNY":
            case "cny":
                outputValue = cny;
                break;
            default:
                System.out.println("不支持的货币单位!");
                return;
        }

        System.out.println(inputValue + inputCurrency + " = " + outputValue + outputCurrency);
		
	}
	public void conversion()
	{
		int option3;
		System.out.println("1:长度2:面积3:体积4:速度5:重量6:温度7:功率8:压强");
		Scanner co = new Scanner(System.in);
		option3 = co.nextInt();
		switch(option3)
		{
		case 1:
			double m, dm, cm, mm;
			System.out.print("请输入一个长度值(单位:米、分米、厘米或毫米):");
	        double inputLength = co.nextDouble();
	        String inputUnit1 = co.next();

	        switch (inputUnit1) {
	            case "m":
	                m = inputLength;
	                dm = m * 10;
	                cm = m * 100;
	                mm = m * 1000;
	                break;
	            case "dm":
	                dm = inputLength;
	                m = dm / 10;
	                cm = m * 100;
	                mm = m * 1000;
	                break;
	            case "cm":
	                cm = inputLength;
	                m = cm / 100;
	                dm = m * 10;
	                mm = m * 1000;
	                break;
	            case "mm":
	                mm = inputLength;
	                m = mm / 1000;
	                dm = m * 10;
	                cm = m * 100;
	                break;
	            default:
	                System.out.println("不支持的长度单位!");
	                return;
	        }
	        System.out.println(m + "m " + dm + "dm " + cm + "cm " + mm + "mm ");
	        break;
	        
		case 2:
			double m2, dm2, cm2, mm2;
			System.out.print("请输入一个面积值(单位:平方米、平方分米、平方厘米或平方毫米):");
	        double inputArea = co.nextDouble();
	        String inputUnit2 = co.next();

	        switch (inputUnit2) {
	            case "m2":
	                m2 = inputArea;
	                dm2 = m2 * 100;
	                cm2 = m2 * 10000;
	                mm2 = m2 * 1000000;
	                break;
	            case "dm2":
	                dm2 = inputArea;
	                m2 = dm2 / 100;
	                cm2 = m2 * 10000;
	                mm2 = m2 * 1000000;
	                break;
	            case "cm2":
	                cm2 = inputArea;
	                m2 = cm2 / 10000;
	                dm2 = m2 * 100;
	                mm2 = m2 * 1000000;
	                break;
	            case "mm2":
	                mm2 = inputArea;
	                m2 = mm2 / 1000000;
	                dm2 = m2 * 100;
	                cm2 = m2 * 10000;
	                break;
	            default:
	                System.out.println("不支持的面积单位!");
	                return;
	        }
	        System.out.println(m2 + "m2 " + dm2 + "dm2 " + cm2 + "cm2 " + mm2 + "mm2 ");
			break;
			
		case 3:
			 double m3, dm3, cm3, mm3;

		        System.out.print("请输入一个体积值(单位:立方米、立方分米、立方厘米或立方毫米):");
		        double inputVolume = co.nextDouble();
		        String inputUnit3 = co.next();

		        switch (inputUnit3) 
		        {
		            case "m3":
		                m3 = inputVolume;
		                dm3 = m3 * 1000;
		                cm3 = m3 * 1000000;
		                mm3 = m3 * 1000000000;
		                break;
		            case "dm3":
		                dm3 = inputVolume;
		                m3 = dm3 / 1000;
		                cm3 = m3 * 1000000;
		                mm3 = m3 * 1000000000;
		                break;
		            case "cm3":
		                cm3 = inputVolume;
		                m3 = cm3 / 1000000;
		                dm3 = m3 * 1000;
		                mm3 = m3 * 1000000000;
		                break;
		            case "mm3":
		                mm3 = inputVolume;
		                m3 = mm3 / 1000000000;
		                dm3 = m3 * 1000;
		                cm3 = m3 * 1000000;
		                break;
		            default:
		                System.out.println("不支持的体积单位!");
		                return;
		        }
		    System.out.println(m3 + "m3 " + dm3 + "dm3 " + cm3 + "cm3 " + mm3 + "mm3 ");
			break;
			
		case 4:
			double mps, kph, mph;

	        System.out.print("请输入一个速度值(单位:米/秒、千米/小时或英里/小时):");
	        double inputValue4 = co.nextDouble();
	        String inputUnit4 = co.next();

	        switch (inputUnit4) 
	        {
	            case "m/s":
	                mps = inputValue4;
	                kph = mps * 3.6;
	                mph = mps * 2.236936;
	                break;
	            case "km/h":
	                kph = inputValue4;
	                mps = kph / 3.6;
	                mph = mps * 2.236936;
	                break;
	            case "mph":
	                mph = inputValue4;
	                mps = mph * 0.44704;
	                kph = mps * 3.6;
	                break;
	            default:
	                System.out.println("不支持的速度单位!");
	                return;
	        }

	        System.out.println(mps + "m/s " + kph + "km/h " + mph + "mph ");
	        break;
			
		case 5:
			 double kg, g, lb, oz;

		        System.out.print("请输入一个重量值(单位:千克、克、磅或盎司):");
		        double inputValue5 = co.nextDouble();
		        String inputUnit5 = co.next();

		        switch (inputUnit5) 
		        {
		            case "kg":
		                kg = inputValue5;
		                g = kg * 1000;
		                lb = kg * 2.20462; // 计算磅
		                oz = kg * 35.274; // 计算盎司
		                break;
		            case "g":
		                g = inputValue5;
		                kg = g / 1000;
		                lb = kg * 2.20462; // 计算磅
		                oz = kg * 35.274; // 计算盎司
		                break;
		            case "lb":
		                lb = inputValue5;
		                kg = lb / 2.20462;
		                g = kg * 1000;
		                oz = lb * 16; // 计算盎司
		                break;
		            case "oz":
		                oz = inputValue5;
		                kg = oz / 35.274;
		                g = kg * 1000;
		                lb = oz / 16; // 计算磅
		                break;
		            default:
		                System.out.println("不支持的重量单位!");
		                return;
		        }

		        System.out.println(kg + "kg " + g + "g " + lb + "lb " + oz + "oz");
		case 6:
			double celsius, fahrenheit, kelvin;

	        System.out.print("请输入一个温度值(单位:摄氏度、华氏度或开氏度):");
	        double inputValue6 = co.nextDouble();
	        String inputUnit6 = co.next();

	        switch (inputUnit6) 
	        {
	            case "C":
	            case "c":
	                celsius = inputValue6;
	                fahrenheit = celsius * 9 / 5 + 32; // 计算华氏度
	                kelvin = celsius + 273.15; // 计算开氏度
	                break;
	            case "F":
	            case "f":
	                fahrenheit = inputValue6;
	                celsius = (fahrenheit - 32) * 5 / 9;
	                kelvin = celsius + 273.15; // 计算开氏度
	                break;
	            case "K":
	            case "k":
	                kelvin = inputValue6;
	                celsius = kelvin - 273.15;
	                fahrenheit = celsius * 9 / 5 + 32; // 计算华氏度
	                break;
	            default:
	                System.out.println("不支持的温度单位!");
	                return;
	        }
	        System.out.println(celsius + "℃ " + fahrenheit + "℉ " + kelvin + "K");
	        break;
	        
		case 7:
			 double watt, kilowatt, horsepower;

		        System.out.print("请输入一个功率值(单位:瓦特、千瓦或马力):");
		        double inputValue7 = co.nextDouble();
		        String inputUnit7 = co.next();

		        switch (inputUnit7) 
		        {
		            case "W":
		            case "w":
		                watt = inputValue7;
		                kilowatt = watt / 1000;
		                horsepower = watt / 746; // 计算马力
		                break;
		            case "KW":
		            case "kw":
		                kilowatt = inputValue7;
		                watt = kilowatt * 1000;
		                horsepower = watt / 746; // 计算马力
		                break;
		            case "HP":
		            case "hp":
		                horsepower = inputValue7;
		                watt = horsepower * 746;
		                kilowatt = watt / 1000; 
		                break;
		            default:
		                System.out.println("不支持的功率单位!");
		                return;
		        }
		        System.out.println(watt + "W " + kilowatt + "kW " + horsepower + "HP");
		        break;
		case 8:
			double pascal, kilopascal, atm;

	        System.out.print("请输入一个压强值(单位:帕斯卡、千帕或标准大气压):");
	        double inputValue8 = co.nextDouble();
	        String inputUnit8 = co.next();

	        switch (inputUnit8) 
	        {
	            case "Pa":
	            case "pa":
	                pascal = inputValue8;
	                kilopascal = pascal / 1000; // 计算千帕
	                atm = pascal / 101325; // 计算标准大气压
	                break;
	            case "KPa":
	            case "kpa":
	                kilopascal = inputValue8;
	                pascal = kilopascal * 1000; // 计算帕斯卡
	                atm = pascal / 101325; // 计算标准大气压
	                break;
	            case "ATM":
	            case "atm":
	                atm = inputValue8;
	                pascal = atm * 101325; // 计算帕斯卡
	                kilopascal = pascal / 1000; // 计算千帕
	                break;
	            default:
	                System.out.println("不支持的压强单位!");
	                return;
	        }
	        System.out.println(pascal + "Pa " + kilopascal + "kPa " + atm + "ATM");
	        break;
	        default:
	        	System.out.println("输入错误");
	        	return;
	        }
	}
	public static void main(String[]args)
	{
		int option;
		Scanner sc = new Scanner(System.in);
		Calculator ca = new Calculator();
		System.out.println("1:计算器 2:汇率 3:换算");
		option = sc.nextInt();
		switch (option)
		{
		case 1:
			ca.compute();
		break;
		case 2:
			ca.currency();
		break;
		case 3:
			ca.conversion();
		break;
		default:
			System.out.println("错误");
		}
	}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值