Hilfe: JAVA, Histogramm erstellen.

Hallo Forumuser,

ich stehe vor folgendem Problem. Und zwar muss ich für Programmiertechnik folgendes Programm erstellen, und sitze schon verzweifelt zwei Wochen vor dem Programm und komme selbst mit Hilfslektüren nicht dahinter. Wenn ihr mir helfen könntet, wäre ich sehr dankbar.

Hier das vorgegebene Programm, an den Stellen 'TODO' muss programmiert werden.

// Histogramm.java package aufgabe2;

import java.util.Scanner;

/** * Histogramm liest ganze Zahlen zwischen 1 und 6 ein und * gibt deren Häufigkeitsverteilung als Histogramm aus. * @author TODO: Name eintragen * @version TODO: Datum eintragen */ public final class Histogramm { private Histogramm() { }

private static final Scanner EINGABE = new Scanner(System.in);

/**
 * main ist der Startpunkt des Programms.
 * @param args wird nicht verwendet.
 */
public static void main(final String[] args) {

    /* TODO: (1) hier ein Feld von Zaehlern definieren */


    //-------------------------------------------------- Zahlen einlesen
    System.out.println("Ganze Zahlen zwischen 1 und 6 eingeben "
                + "(Ende mit Strg-D):");

    while (EINGABE.hasNext()) {
        int number = EINGABE.nextInt();

        /* TODO: (2) hier Anweisungen fuer das
                     Pruefen und Zaehlen der Eingabe schreiben */



        //---------------------------------------------- Histogramm ausgeben

    /* TODO: (3) hier Anweisungen fuer die Histogrammausgabe schreiben */


}

}

Konsolenausgabe, sollte dann folgende sein:

Beispiel (Eingaben des Benutzers sind fett gedruckt: 1 2 3 ...):

Ganze Zahlen zwischen 1 und 6 eingeben (Ende mit Strg-D):
1 1 2 2 2 3 3 3 3 4 4 5 5 5 6 7
Falsche Eingabe wird ignoriert: 7
3 5 5 5 5 5 5 5 5 6
Strg-D
Histogramm:
11 (2)
222 (3)
3333$ (5)
44 (2)
5555$5555$5 (11)
66 (2)

Vielen, vielen Dank bereits im Vorfeld!

Astille

...zum Beitrag

Habe es jetzt soweit geschafft:

// Histogramm.java package aufgabe2;

import java.util.Scanner;

/** * Histogramm liest ganze Zahlen zwischen 1 und 6 ein und * gibt deren Häufigkeitsverteilung als Histogramm aus. * @author Denis Alic * @version TODO: 03.11.2014 */ public final class Histogramm { private Histogramm() { }

private static final Scanner EINGABE = new Scanner(System.in);

/**
 * main ist der Startpunkt des Programms.
 * @param args wird nicht verwendet.
 */
public static void main(final String[] args) {



    int[] counter = {0,0,0,0,0,0};


    //-------------------------------------------------- Zahlen einlesen
    System.out.println("Ganze Zahlen zwischen 1 und 6 eingeben "
                + "(Ende mit Strg-D):");

    while (EINGABE.hasNext()) {
        int number = EINGABE.nextInt();

        switch (number) {
            case 1:
                counter[0]++;
                break;
            case 2:
                counter[1]++;
                break;
            case 3:
                counter[2]++;
                break;
            case 4:
                counter[3]++;
                break;
            case 5:
                counter[4]++;
                break;
            case 6:
                counter[5]++;
                break;
            default: System.out.println("Falsche Eingabe wird ignoriert: " + number);


        }
    }

    System.out.println("Strg-D");

    System.out.println("Histogramm:");

    for(int i=0;i<6;i++){
        int j=0;
        while(j<counter[i]){
            if((j+1)%5 == 0){
                System.out.print("$");
            }
            System.out.print((i+1));
            j++;
        }
        System.out.print(" (" + counter[i] + ") " + "\n");
    }
    //---------------------------------------------- Histogramm ausgeben

}

}

Konsolenausgabe:

DenissMacBook:HTWG rebekka$ java aufgabe2.Histogramm

Ganze Zahlen zwischen 1 und 6 eingeben (Ende mit Strg-D):

1 1 2 2 2 3 3 3 3 4 4 5 5 5 6 7

Falsche Eingabe wird ignoriert: 7

3 5 5 5 5 5 5 5 5 6

Strg-D

Histogramm:

11 (2)

222 (3)

3333$3 (5)

44 (2)

5555$55555$55 (11)

66 (2)

Letztes Problem: Die Häufigkeit 5 wird mir sowohl als "$", als auch als weitere Zahl angezeigt, vielleicht jetzt eine Hilfestellung? Bzw. fett zu schreiben, verstehe ich nicht.

...zur Antwort
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.