2015-05-20 16 views
6

Jestem nowicjuszem w Javie, rozpoczętym dwa tygodnie temu i mam problemy ze zrozumieniem tego problemu. Mam problem z zajęciami, które podejmuję wcześniej. Konwersja kilogramów na funty i zaokrąglenie do drugiego miejsca po przecinku.Wejście/wyjście - równanie arytmetyczne

Potrafię utworzyć stronę wejściową i wyświetlić okno dialogowe z monitem o podanie wagi. Mogę również utworzyć wyjście, które wykorzystuje równanie, które zrobiłem, aby wypisać odpowiedź w oknie dialogowym.

Moje pytanie brzmi: w jaki sposób mogę pobierać dane wejściowe i używać ich do przeliczania z kilogramów na funty?

Przeczytałem moją książkę i przeszukałem internet, próbując znaleźć odpowiedź i myślę, że mogę przestać o tym myśleć. Dzięki za pomoc.

Input.java:

//This program asks a user to input a weight in kilograms. 

package module2; 

import javax.swing.*; 

public class Input { 

    public static void main(String[] args) { 

     String weight; 

     weight = JOptionPane.showInputDialog("Enter weight in kilograms"); 
    } 
} 

Output.java:

//This program outputs a converted weight from kilograms to pounds. 

package module2; 

import javax.swing.JOptionPane; 

public class Output { 

    public static void main(String[] args) { 

     double kg = 75.5; 
     double lb = 2.2; 
     double sum; 

     sum = (kg * lb); 

     JOptionPane.showMessageDialog(null,sum, "Weight Conversion", JOptionPane.INFORMATION_MESSAGE); 
    } 
} 
+0

Na początek nie można mieć dwóch głównych metod. – RichN

+0

@RichN można, ale tylko jeden byłby uruchomiony na instancję. Zawsze możesz przywoływać drugą, ale to jest złe. – Obicere

+1

@Obicere Ah tak, oczywiście. Zakładałem "normalny" sposób używania "głównych" metod. A poza tym, jeśli masz wystarczającą wiedzę, aby to zrobić, prawdopodobnie nie napisałbyś ich jako "głównych" metod. – RichN

Odpowiedz

6

Teraz masz 2 główne sposoby. Oba są punktami wejścia do programu. Ponieważ muszą dzielić się informacjami, nie ma sensu, abyś miał jedno i drugie.

Co polecam to zmienić główną metodę Output na metodę instancji, biorąc jeden parametr: weight z Input.

tak:

public void printOutput(final double weight){ 
    //... 
} 

Następnie można nazwać od głównej metodzie Input jest tak:

public static void main(String[] args) { 

    String weight; 

    weight = JOptionPane.showInputDialog("Enter weight in kilograms"); 

    double kg = Double.parseDouble(weight); // Be sure to parse the weight to a number 
    Output output = new Output(); // Create a new instance of the Output class 

    output.printOutput(kg); // Call our method to display the output of the conversion 
} 

Inną rzeczą jest to, że od Output jest obecnie tylko użyty dla tej jednej metody, możesz rozważyć przeniesienie tej metody do Input.

+0

Dziękuję bardzo za pomoc. Te rzeczy związane z Javą to dużo do zrobienia i uporządkowania. Co to znaczy, gdy mówisz Double.parseDouble (waga) konkretnie parseDouble? Jeszcze raz dziękuję za pomoc. – Ph1shPhryd

+0

@ Ph1shPhryd 'weight' to' String'. Tylko lista postaci. Nie można tak naprawdę dodawać, mnożyć ani dzielić z tym, jak gdyby był to numer. Zamiast tego możesz wywołać bibliotekę Java, aby pobrać ten ciąg i przeanalizować go. To zwraca 'double', który jest liczbą. Więc możesz go użyć jako takiego. – Obicere

+0

ma to sens. Więc kiedy uruchomię program teraz odpowiedź zawsze pozostaje taka sama, bez względu na to, co wprowadzę. Próbuję zrozumieć problem, ale wydaje się, że utknąłem. Jakieś pomysły, dlaczego tak się dzieje? – Ph1shPhryd

0
// addition of two integers using JOptionPane 
import javax.swing.JOptionPane; 

public class Addition 

{ 

    public static void main(String[] args) 

    { 

    String firstNumber = JOptionPane.showInputDialog("Input <First Integer>"); 
    String secondNumber = JOptionPane.showInputDialog("Input <Second Integer>"); 
    int num1 = Integer.parseInt(firstNumber); 
    int num2 = Integer.parseInt(secondNumber); 
    int sum = num1 + num2; 
    JOptionPane.showMessageDialog(null, "Sum is" + sum, "Sumof two Integers", JOptionPane.PLAIN_MESSAGE); 
    } 
} 
+0

Nie pisz tylko kodu samolotu. Dodaj dodatkowe informacje do swojej odpowiedzi – RomCoo

Powiązane problemy