Skip to content

Commit 81e4842

Browse files
authored
AdvancedConversions.java
1 parent dfd8d69 commit 81e4842

File tree

1 file changed

+213
-0
lines changed

1 file changed

+213
-0
lines changed
Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
import java.util.Scanner;
2+
3+
// --- Base Interface for Conversions ---
4+
interface Convertible {
5+
void convert(Scanner scanner);
6+
}
7+
8+
// --- Length Conversion Class ---
9+
class LengthConverter implements Convertible {
10+
public void convert(Scanner scanner) {
11+
System.out.println("--- LENGTH CONVERSION ---");
12+
System.out.println("1. Centimeters to Meters");
13+
System.out.println("2. Meters to Centimeters");
14+
System.out.println("3. Meters to Feet");
15+
System.out.println("4. Feet to Meters");
16+
System.out.print("Choose conversion: ");
17+
int choice = scanner.nextInt();
18+
19+
System.out.print("Enter value: ");
20+
double value = scanner.nextDouble();
21+
double result;
22+
23+
switch (choice) {
24+
case 1:
25+
result = value / 100;
26+
System.out.println(value + " cm = " + result + " m");
27+
break;
28+
case 2:
29+
result = value * 100;
30+
System.out.println(value + " m = " + result + " cm");
31+
break;
32+
case 3:
33+
result = value * 3.28084;
34+
System.out.println(value + " m = " + result + " ft");
35+
break;
36+
case 4:
37+
result = value / 3.28084;
38+
System.out.println(value + " ft = " + result + " m");
39+
break;
40+
default:
41+
System.out.println("Invalid choice!");
42+
}
43+
}
44+
}
45+
46+
// --- Weight Conversion Class ---
47+
class WeightConverter implements Convertible {
48+
public void convert(Scanner scanner) {
49+
System.out.println("--- WEIGHT CONVERSION ---");
50+
System.out.println("1. Grams to Kilograms");
51+
System.out.println("2. Kilograms to Grams");
52+
System.out.println("3. Kilograms to Pounds");
53+
System.out.println("4. Pounds to Kilograms");
54+
System.out.print("Choose conversion: ");
55+
int choice = scanner.nextInt();
56+
57+
System.out.print("Enter value: ");
58+
double value = scanner.nextDouble();
59+
double result;
60+
61+
switch (choice) {
62+
case 1:
63+
result = value / 1000;
64+
System.out.println(value + " g = " + result + " kg");
65+
break;
66+
case 2:
67+
result = value * 1000;
68+
System.out.println(value + " kg = " + result + " g");
69+
break;
70+
case 3:
71+
result = value * 2.20462;
72+
System.out.println(value + " kg = " + result + " lb");
73+
break;
74+
case 4:
75+
result = value / 2.20462;
76+
System.out.println(value + " lb = " + result + " kg");
77+
break;
78+
default:
79+
System.out.println("Invalid choice!");
80+
}
81+
}
82+
}
83+
84+
// --- Temperature Conversion Class ---
85+
class TemperatureConverter implements Convertible {
86+
public void convert(Scanner scanner) {
87+
System.out.println("--- TEMPERATURE CONVERSION ---");
88+
System.out.println("1. Celsius to Fahrenheit");
89+
System.out.println("2. Fahrenheit to Celsius");
90+
System.out.println("3. Celsius to Kelvin");
91+
System.out.println("4. Kelvin to Celsius");
92+
System.out.print("Choose conversion: ");
93+
int choice = scanner.nextInt();
94+
95+
System.out.print("Enter temperature: ");
96+
double value = scanner.nextDouble();
97+
double result;
98+
99+
switch (choice) {
100+
case 1:
101+
result = (value * 9 / 5) + 32;
102+
System.out.println(value + " °C = " + result + " °F");
103+
break;
104+
case 2:
105+
result = (value - 32) * 5 / 9;
106+
System.out.println(value + " °F = " + result + " °C");
107+
break;
108+
case 3:
109+
result = value + 273.15;
110+
System.out.println(value + " °C = " + result + " K");
111+
break;
112+
case 4:
113+
result = value - 273.15;
114+
System.out.println(value + " K = " + result + " °C");
115+
break;
116+
default:
117+
System.out.println("Invalid choice!");
118+
}
119+
}
120+
}
121+
122+
// --- Currency Conversion Class ---
123+
class CurrencyConverter implements Convertible {
124+
public void convert(Scanner scanner) {
125+
System.out.println("--- CURRENCY CONVERSION ---");
126+
System.out.println("1. USD to GBP");
127+
System.out.println("2. GBP to USD");
128+
System.out.println("3. USD to JPY");
129+
System.out.println("4. JPY to USD");
130+
System.out.print("Choose conversion: ");
131+
int choice = scanner.nextInt();
132+
133+
System.out.print("Enter amount: ");
134+
double value = scanner.nextDouble();
135+
double result;
136+
137+
// Example static rates
138+
double usdToGbp = 0.78;
139+
double gbpToUsd = 1.28;
140+
double usdToJpy = 150.35;
141+
double jpyToUsd = 1 / 150.35;
142+
143+
switch (choice) {
144+
case 1:
145+
result = value * usdToGbp;
146+
System.out.println(value + " USD = " + result + " GBP");
147+
break;
148+
case 2:
149+
result = value * gbpToUsd;
150+
System.out.println(value + " GBP = " + result + " USD");
151+
break;
152+
case 3:
153+
result = value * usdToJpy;
154+
System.out.println(value + " USD = " + result + " JPY");
155+
break;
156+
case 4:
157+
result = value * jpyToUsd;
158+
System.out.println(value + " JPY = " + result + " USD");
159+
break;
160+
default:
161+
System.out.println("Invalid choice!");
162+
}
163+
}
164+
}
165+
166+
// --- Main Program ---
167+
public class AdvancedConversions {
168+
public static void main(String[] args) {
169+
Scanner scanner = new Scanner(System.in);
170+
Convertible converter;
171+
int choice;
172+
173+
do {
174+
System.out.println("===== ADVANCED CONVERSIONS =====");
175+
System.out.println("1. Length Converter");
176+
System.out.println("2. Weight Converter");
177+
System.out.println("3. Temperature Converter");
178+
System.out.println("4. Currency Converter");
179+
System.out.println("0. Exit");
180+
System.out.print("Choose converter: ");
181+
choice = scanner.nextInt();
182+
183+
switch (choice) {
184+
case 1:
185+
converter = new LengthConverter();
186+
converter.convert(scanner);
187+
break;
188+
case 2:
189+
converter = new WeightConverter();
190+
converter.convert(scanner);
191+
break;
192+
case 3:
193+
converter = new TemperatureConverter();
194+
converter.convert(scanner);
195+
break;
196+
case 4:
197+
converter = new CurrencyConverter();
198+
converter.convert(scanner);
199+
break;
200+
case 0:
201+
System.out.println("Thank you for using the converter. Goodbye!");
202+
break;
203+
default:
204+
System.out.println("Invalid option!");
205+
}
206+
207+
System.out.println();
208+
209+
} while (choice != 0);
210+
211+
scanner.close();
212+
}
213+
}

0 commit comments

Comments
 (0)