// File: ConversionProject2.java
// Date: 6/27/2007
// Author: Mike Elms and Nick Duchon
import java.util.*;
public class ConversionProject2 {
// ND$ remove static from everything except main
int numberOfConversions = 0;
double myCelsius (double f) {
return (f - 32) * 5.0 / 9.0;} // end myCelsius(double f)
double myFahrenheit(double c) {
return c * 9.0 / 5.0 + 32;} // end myFahrenheit(double c)
double myMile (double k) {
return k*1.61;} // end myMile (double)
double myKilometer (double m) {
return m*0.62;} // end myKilometer (double)
int celsiusToFahrenheit(Scanner stdin)
{
double celsius;
double fahrenheit;
System.out.println("Enter the temperature in celsius: ");
celsius = stdin.nextDouble();
fahrenheit = myFahrenheit(celsius);
numberOfConversions++;
System.out.println("The temperature in fahrenheit is " + fahrenheit);
return 0;
}
int fahrenheitToCelsius(Scanner stdin)
{
double celsius;
double fahrenheit;
System.out.println("Enter the temperature in fahrenheit: ");
fahrenheit = stdin.nextDouble();
celsius = myCelsius(fahrenheit);
numberOfConversions++;
System.out.println("The temperature in celsius is " + celsius);
return 0;
}
int kilometerToMile(Scanner stdin)
{
double kilometer;
double mile;
System.out.println("Enter the distance in kilometers: ");
kilometer = stdin.nextDouble();
mile= myMile(kilometer);
numberOfConversions++;
System.out.println("The distance in miles is " + mile);
return 0;
}
int mileToKilometer(Scanner stdin)
{
double kilometer;
double mile;
System.out.println("Enter the distance in miles: ");
mile = stdin.nextDouble();
kilometer = myKilometer(mile);
numberOfConversions++;
System.out.println("The distance in kilometers is " + kilometer);
return 0;
}
// return value:
// true = continue looping on this menu, false = stop
boolean tempMenu(Scanner stdin)
// static boolean tempMenu(Scanner stdin)
{
int x;
System.out.println("Temperature:\n\n");
System.out.println("1) Celsius to Fahrenheit");
System.out.println("2) Fahrenheit to Celsius");
System.out.println("3) Menu");
x = stdin.nextInt();
if (x == 1) celsiusToFahrenheit(stdin);
else if (x == 2) fahrenheitToCelsius(stdin);
else if (x == 3)
return false;
else System.out.println("Error");
return true;
} // end tempMenu
// return value:
// true = continue looping on this menu, false = stop
boolean distMenu(Scanner stdin)
// static boolean distMenu(Scanner stdin)
{
int x;
System.out.println("Distance:\n\n");
System.out.println("1) Kilometer to Mile");
System.out.println("2) Mile to Kilometer");
System.out.println("3) Menu");
x = stdin.nextInt();
switch (x) {
case 1: kilometerToMile(stdin);
break;
case 2: mileToKilometer(stdin);
break;
case 3:
return false;
default: System.out.println("Error");
} // end switching on menu selection
return true; // ND: use return value looping
} // end distMenu
// return value:
// true = continue looping on this menu, false = stop
boolean menu(Scanner stdin) // ND$
// static boolean menu(Scanner stdin)
{
int x;
System.out.println("Metric Conversion:\n\n");
System.out.println("1) Temperature");
System.out.println("2) Distance");
System.out.println("3) Exit");
x = stdin.nextInt();
switch(x) { // use return value looping
case 1:
while (tempMenu(stdin));
break;
case 2:
while (distMenu(stdin));
break;
case 3:
return false; // no need for break!
default: System.out.println("Error");
} // end switch
return true; // ND: USE the return value
} // end menu - main menu
public static void main(String args[])
{
Scanner stdin = new Scanner(System.in);
System.out.println("Final");
// ND$ instantiate this, and use in menu call on next line
ConversionProject2 cp = new ConversionProject2 ();
while (cp.menu(stdin)); // ND: use the return value this way
System.out.print(cp.numberOfConversions + " number of conversions.");
} // end main
}