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("错误");
}
}
}
简易手机计算器
于 2023-03-25 20:19:08 首次发布