2013-12-07 3 views
0

Я пытаюсь сделать преобразователь температуры различными способами. Теперь, я немного застрял в данный момент. Я создаю переключатель внутри метода, который имеет char, double и еще один символ в качестве параметров, а те 3 представляют собой преобразование темпа, фактическую температуру и температуру, которую пользователь хочет преобразовать. Я пытался создать этот переключатель, но до сих пор мне не повезло. Может быть, я недостаточно понимаю. Сожалею!! Я думаю, что я должен сказать, что я новичок, и это домашнее задание. Я не прошу получить весь код, а всего лишь пару советов, чтобы снова вернуться на круги своя. Большое спасибо! :-)Переключатель и методы

Это метод, в котором я хочу, чтобы переключатель в, но мне нужна информация из другого метода, который я выложу ниже этого один

public static double convertTemp(char uFrom, double temp, char uTo){   

} 

Этот метод будет делать фактическое конверсия от целина до кельвина или Фаренгейта.

public static double convFromCelsius(double value, char unitTo){ 


} 

Еще раз спасибо!

Вот что я получил до сих пор.

импорт java.util.Scanner;

класс mainAssignment {

// Main Method 
public static void main(String[] args){ 

    char scaleFrom = ' '; // From which temperature scale to convert from 
    char scaleTo = ' '; // To which temperature scale to convert to 

    double tempFrom = 0.0; // Temperature value to be converted 
    double tempTo = 0.0; // Temperature value converted 
    double result = 0.0; // Result of the conversion 

    // Loop to repeat the menu until option chosen is "x" 
    // do { 

     /* 
      Method to display the menu and store the scale from 
       which the temperature will be converted from 
     */ 
     scaleFrom = displayMenu(scaleFrom); 

     /* 
      Only asks user to input more information, 
      if scaleFrom is different than "x" (x = Exit) 
     */ 
     //if (scaleFrom != 'x'){ 

      /* 
       Method to get the temperature value to be 
        converted and store the value entered by user 
      */ 
      tempFrom = getTemp(tempFrom); 

      /* 
       Method to get the scale to which the 
        temperature value will be converted to 
      */ 
      scaleTo = getUnitTo(scaleTo); 

      // Method to convert the Temperature 
      //result = convertTemp(scaleFrom, tempFrom, scaleTo); 

      // Method to display the conversion to the screen 
      //displayResult(scaleFrom, tempFrom, scaleTo, result); 

     //} 
    //} while (scaleFrom != 'x'); 
} 

// Method to invoke the conversion of the temperature 
public static double convertTemp(char uFrom, double temp, char uTo){ 







} 

// Method to convert temperatures in Celsius to the other ones 
public static double convFromCelsius(double value, char unitTo){ 


} 




// Method to convert temperatures in Fahrenheit to the other ones 
//public static double convFromFahrenheit(double value, char unitTo){ 

    // body of the Method 

//}return; 




// Method to convert temperatures in Kelvin to the other ones 
//public static double convFromKelvin(double value, char unitTo){ 

    // body of the Method 

//}return; 

public static char displayMenu (char scaleFrom){ 

    Scanner ui = new Scanner (System.in); 

    System.out.println (""); 
    System.out.println ("============================"); 
    System.out.println (" Temperature Conversion"); 
    System.out.println ("=========== MENU ==========="); 
    System.out.println (""); 
    System.out.println ("a. From Celsius"); 
    System.out.println ("b. From Fahrenheit"); 
    System.out.println ("c. From Kelvin"); 
    System.out.println (""); 
    System.out.println ("x. Exit"); 
    System.out.println (""); 
    System.out.println ("============================"); 
    System.out.println ("Enter an option: "); 
    System.out.println (""); 

    scaleFrom = ui.nextLine().charAt(0); 
    return scaleFrom; 
} 

public static double getTemp (double getTemp){ 

    Scanner ui = new Scanner (System.in); 

    System.out.println (""); 
    System.out.println ("Please, enter the temperature you want to convert: "); 
    System.out.println (""); 

    getTemp = Double.parseDouble(ui.nextLine());  

    return getTemp; 
} 

public static char getUnitTo (char scaleTo){ 

    Scanner ui = new Scanner (System.in); 

    System.out.println (""); 
    System.out.println ("Please, choose the temperature you want to convert to:"); 
    System.out.println (""); 
    System.out.println ("C = To Celsius K = To Kelvin F = To Fahrenheit"); 
    System.out.println (""); 

    scaleTo = ui.nextLine().charAt(0); 
    return scaleTo; 
} 

} // Конец класса Main Назначение //

+0

Почему вам нужен 'temp' переменная вообще? Преобразование в и из Цельсия, Фаренгейта и Кельвина - это четко определенные формулы. –

+0

Просьба привести пример ввода и вывода методов. – skiwi

+0

Извините, но я не буду следовать за тобой. Не могли бы вы быть более конкретными? Приветствия. – Juancho

ответ

0

Я думаю, что вы хотите что-то вроде:

public static double convertTemp(char uFrom, double temp, char uTo){   
    switch (uFrom) { 
     case 'c': 
      return convertFromCelsius(temp, uTo); 
     case 'f': 
      return convertFromFahrenheit(temp, uTo); 
     case 'k': 
      return convertFromKelvin(temp, uTo); 
     default: 
      System.out.println("Unexpected unit"); 
      return 0; 
    } 
} 

public static double convFromCelsius(double value, char unitTo){ 
    switch (unitTo) { 
     case 'f': 
      // Code to convert from c to f 
      return value + 30; 
     case 'k': 
      // Code to convert from c to k 
      return value + 273; 
     default: 
      System.out.println("Unexpcted unit"); 
      return 0; 
    } 
} 
Смежные вопросы