2017-06-04 3 views
2

Ich habe jetzt ein bisschen mit diesem Code herumgespielt und finde nicht den richtigen Weg, um das Problem zu lösen. Ich benutzte ein Programm ohne JOptionPane und es funktionierte und versuchte, die gleiche Sequenz zu verwenden, aber es hat nicht funktioniert. Muss ich noch etwas hinzufügen? Die Zuweisung besteht darin, dass der Benutzer 3 Ganzzahlen eingeben und den Durchschnitt mit Eingabe- und Ausgabedialogfeldern drucken soll. Ich habe die Dialoge "Durchschnitt" und "Input/Output" schon einmal gemacht, aber alles zusammenzufügen ist schwieriger als ich dachte.Wie finden Sie den Durchschnitt von drei Zahlen mit Eingabe- und Ausgabe-Dialogfeldern mit JAVA?

import java.util.Scanner; 
import javax.swing.JOptionPane; 
import java.text.*; 
import java.text.DecimalFormat; 
public class Number3 
{ 

    public static void main(String[] args) 
    { 
    System.out.println("Enter 3 numbers: "); 
    Scanner input = new Scanner (System.in); 
    DecimalFormat decimalFormat = new DecimalFormat("0.00##"); 

    int num1; 
    int num2; 
    int num3; 
    double avg; 

    num1=input.nextInt(); 
    num2=input.nextInt(); 
    num3=input.nextInt(); 

    avg=(double)(num1+num2+num3)/3.0; 
    System.out.println("The average is: " + decimalFormat.format(avg)); 

    } 
} 
+0

Mögliches Duplikat von [* Einfaches Popup-Java-Formular mit mindestens zwei Feldern *] (https://stackoverflow.com/q/3002787/230513). – trashgod

+0

Ich habe es nicht verstanden, sorry. Arbeitet Ihr Programm so wie es ist und Sie stattdessen "JOptionPane" verwenden möchten? Oder war es andersherum? Schreibe niemals "es hat nicht funktioniert" in einer Stack Overflow Frage. Erzählen Sie uns vielmehr genau, wie sich das Programm anders als erwartet verhalten hat. Zitieren Sie jede Fehlermeldung wörtlich. –

Antwort

2

Ich weiß nicht, was Sie hier schwer finden. Ich glaube, Sie für diese suchen:

DecimalFormat decimalFormat = new DecimalFormat("0.00##"); 
int num1; 
int num2; 
int num3; 
double avg; 

num1= Integer.valueOf(JOptionPane.showInputDialog("Enter #1")); 
num2= Integer.valueOf(JOptionPane.showInputDialog("Enter #2")); 
num3= Integer.valueOf(JOptionPane.showInputDialog("Enter #3")); 

avg=(double)(num1+num2+num3)/3.0; 
JOptionPane.showMessageDialog(null, "The average is: " + decimalFormat.format(avg)); 

Bitte beachten Sie, dass dieser Code besser geschrieben werden konnte, sondern im Interesse der Beantwortung Ich ersetzte den JOptionPane in Ihrem Code, wo Sie sie benötigen.

1

Es ist wirklich nicht so viel schwieriger. Auf der Eingangsseite ist mit einer der showInputDialog(...) Methoden von JOptionPane fast ein exakter Ersatz für input.nextInt();. Der einzige Unterschied ist, dass showInputDialog(...) die Benutzereingabe als String zurückgibt, nicht als int, also müssen Sie Integer.parseInt verwenden, um die zurückgegebene String in eine int umzuwandeln. Wie für die Ausgabe ist showMessageDialog(...) ein fast exakter Ersatz für System.out.println(...); Verwenden Sie einfach das --- als das Nachrichtentextargument.

0
public static void main(String[] args) { 
    int num, count=0; 
    double total =0, avg; 

    for(int i = 1; i <= 3; i++){ 
     num = Integer.valueOf(JOptionPane.showInputDialog("Enter number "+ count++)); 
     total += num; 
    } 

    avg = total/count; 

    JOptionPane.showMessageDialog(null, "The average is: " + (double)Math.round(avg * 100)/100); 
} 
Verwandte Themen