OOP Statisitik anzeigen

pisco

Bekanntes Mitglied
Hey Leute

ich möchte so eine grafik für die Konsole coden:

Java:
Gefällt
6|                    x
5|                xxxxx    
4|        x   x xxxxxxx
3|    xxxxxxxxxxxxxxxx
2| xxxxxxxxxxxxxxxxxx
1|xxxxxxxxxxxxxxxxxxx
0|-------------------------------------------------------------Zeit
   123456789 Stunde

Also ich hätte mir überlegt ein 2Dimensionales Array. Mein Problem ist aber ich möchte den Graphen in diesem Programm verändern nur die Achsen bleiben gleich...

Meine Zeitachse geht auch irgendwie ned..

Wie erstell ich das am besten?

Habt ihr vll Ideen?

gruss und dank euch schonmal für eure Antwort

PS.: Vll gibts ja auch was anderes als die Konsole, so ein Java Graphen SDK^^
 
Zuletzt bearbeitet:

AmunRa

Gesperrter Benutzer
Natürlich gibt es auch was anderes wie die Konsole. Du kannst ein Programm mit einem Fenster programmieren, dazu kannst du die z.B java swing ansehen.

Das ist aber nicht ganz leicht (da musst du dir zumindest ein bisschen Zeit nehmen dich einzulesen).
Ansonsten muss ich sagen hab ich nocht nicht ganz verstanden was du vor hast.
 

pisco

Bekanntes Mitglied
hey erstmal danke für deine Antwort

also mein Programm hat eine x und eine y Achse innerhalb dieser Achsen möchte ich einen Graphen darstellen in Ascii-Form

Die Graphen werden einfach mir Punkten gefüllt die man zuvor eingibt, oder als Statistische Daten einlies(scanner)

Meine Frage ist nun: Wie kann ich das am besten realisieren?

Mein erster Gedanke ist ein 2Dimensionales array wo ich alles hineingebe.

Wie ich den Graphen zeichne ist mir noch unklar...

lg
 
Zuletzt bearbeitet:

AmunRa

Gesperrter Benutzer
naja ich weis jetzt grad nicht ob das das ist was du wolltest, aber ich hab mal ein kurzes Programm geschreiben das vl das macht was du möchtest.

Da für brauchst du aber kein zwei Dimensionales Array.

Java:
   public static void main (String[] args) {
    	
    	
    	int [] daten = {4,5,7,8,10};
    	int max=0;
    	System.out.println(" X");
    	System.out.println(" ^");
    	for ( int x =0; x<daten.length;x++){
    		System.out.print(x+"|");
    		for (int y=0;y<daten[x];y++){
    			if (daten[x]>max){
    				max=daten[x];
    			}
    			System.out.print("x");
    		}
    		System.out.println();
    	}
    	System.out.print(" -");
    	for (int y=0;y<max;y++){
    		System.out.print("-");
    	}
    	System.out.println(">Y");
    }
 

darekkay

Bekanntes Mitglied
Die obere Lösung vertauscht leider die Achsen.
Auch finde ich, sollte man die Funktion von print kapseln - hier jedenfalls mein Ansatz:
Java:
        int [] daten = {3,2,4,6};     // hier kommen die Y-Werte rein (für x=1, x=2, ...)
        String output = "";
        int max = 6; 					// maximaler Y-Wert
	        
        for(int i=max; i>0; i--){
        	output += i + "|";
        	for(int j=0; j<daten.length; j++){
        		if (i <= daten[j])
        			output += "x";
        		else
        			output += " ";
        	}
        	output += "\n";
        }
        
        System.out.print(output);
 

pisco

Bekanntes Mitglied
Hey Leute,
habs gelöst wie ichs wollte ;D schaut selbst:

meine Ausgabe:

Java:
  ^
10|                    
9 |        x           
8 |        x           
7 |      x x           
6 |    x x x           
5 |    x x x   x     x 
4 |  x x x x   x     x 
3 |  x x x x   x x   x 
2 |  x x x x x x x   x 
1 |x x x x x x x x x x 
  -- - - - - - - - - - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  >Zeit
  |0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24



Java:
public class Statistic_Main {
	
	public static void main(String[] args) {
		
		
		int [] daten = {2,5,7,8,10,3,6,4,2,6};
		
		System.out.println("  Gefällt");
		System.out.println("  ^");
		
		for ( int x =10; x>0; x--){//Gefällt-Achse
			
			if(x==10){
				System.out.print(x+"|");
			} else {
				System.out.print(x+" |");
			}
			
			for(int j=0; j<10; j++){//PROBLEMZEILE: Wenn ich hier ein  "=" hinmache dann funktionierts nichtmehr 
				
				if(daten[j]<=x){
					System.out.print("  ");
				} else {
					
					System.out.print("x ");
				}
			}
			System.out.println();
			
		}
		
		
		//Gibt die Zeit und die "-" aus
		System.out.print("  -");
		for (int y=0;y<=24;y++){//24 "-"
			
			if(y<10){
				System.out.print("- ");
				
			} else {
				System.out.print("-  ");
				
			}
			
		}
		System.out.println(">Zeit");
		
		System.out.print("  ");
		for (int y=0;y<=24;y++){//24 Stunden
			
			if(y<9){
				System.out.print("|" + y );
				
			} else {
				System.out.print("|" + y);
				
			}	
		}
		
		
		System.out.println();
		
		
	}
}

Ein einzigen Probleme sind:

wenn ich in dieser Zeile aus dem 10 einen 11er mache oder aus dem < ein <= dann geht das ganze nicht mehr:

Java:
for(int j=0; j<10; j++){//PROBLEMZEILE: Wenn ich hier ein  "=" hinmache dann funktionierts nichtmehr 
				
				if(daten[j]<=x){
					System.out.print("  ");
				} else {
					
					System.out.print("x ");
				}
			}

Meine Fehlermeldung:

Gefällt
^
10| Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10

und es werden im Diagramm nur zBsp ein "x" anstatt im Datensatz 2 "x" angezeigt...


Ich bedank mich schonmal für eure Hilfe und wünsch euch eine gute Nacht ;D

gruss
 

Murray

Top Contributor
Die Schleife soll doch über das Array iterieren; sinnvoll ist es dann doch nur, von Index=0 bis Index=(Länge-1) zu laufen, um so das Array vom ersten bis zum letzten Element zu durchlaufen. Daher sollte die Endbedingung auch nicht redundant als Zahlenwert codiert sein, sondern zur Laufzeit aus dem Array ermittelt werden:
Java:
for(int j=0; j<daten.length; j++){
Oder man verwendet gleich die foreach-Syntax (wenn man eine hinreichend aktuelle Java-Version verwendet)
Java:
for (int d: daten){
 

pisco

Bekanntes Mitglied
vielen dank für deine Antwort ;D

also zwei Fragen quälen mich gerade noch:

1. Frage:
nehmen wir das Diagram her:
Java:
  Gefällt
  ^
10|                    
9 |        x           
8 |        x           
7 |      x x           
6 |    x x x           
5 |    x x x   x     x 
4 |  x x x x   x     x 
3 |  x x x x   x x   x 
2 |  x x x x x x x   x 
1 |x x x x x x x x x x 
  -- - - - - - - - - - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  >Zeit
  |0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24

die Datensätze lauten:

int [] daten = {2,5,7,8,10,3,6,4,2,6};
aber wie man sieht wird nur ein x angezeigt.... Warum?

2. Frage:

könnte ich eigentlich auch jeden Punkt in diesem Koordinatensystem einzeln ansprechen so als x,y Koordinate?

Wenn ja wie würd ich das umsetzten?

gruss und dank euch schonmal für eure Antwort
 

Murray

Top Contributor
1. Frage:
nehmen wir das Diagram her:
Java:
  Gefällt
  ^
10|                    
9 |        x           
8 |        x           
7 |      x x           
6 |    x x x           
5 |    x x x   x     x 
4 |  x x x x   x     x 
3 |  x x x x   x x   x 
2 |  x x x x x x x   x 
1 |x x x x x x x x x x 
  -- - - - - - - - - - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  >Zeit
  |0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24

die Datensätze lauten:

int [] daten = {2,5,7,8,10,3,6,4,2,6};
aber wie man sieht wird nur ein x angezeigt.... Warum?

Du schreibst hier
Java:
                if(daten[j]<=x){
                    System.out.print("  ");
                } else {
                    
                    System.out.print("x ");
                }
Das "x" kommt also nur, wenn date[j] größer ist als x, nicht bei Gleichheit.
Versuch es doch mal mit
Java:
                if(daten[j]<x){
                    System.out.print("  ");
                } else {
                    
                    System.out.print("x ");
                }
oder auch verkürzt:
Java:
System.out.print( daten[j]<x ? ' ' : 'x');
 

Murray

Top Contributor
2. Frage:

könnte ich eigentlich auch jeden Punkt in diesem Koordinatensystem einzeln ansprechen so als x,y Koordinate?
Wenn Du direkt in die Konsole schreiben willst, geht das mit reinem Java nicht - man kann immer nur innerhalb der aktuellen Zeile etwas in die Konsole schreiben.
Du könntest aber pixelweise zeichnen oder auch die Daten erstmal in ein zweidemsionales boolean-Array schreiben und das Array dann am Ende mit zwei verschachtelten for-Schleifen auf die Komnsole ausgeben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
W ListView komplett anzeigen Java Basics - Anfänger-Themen 2
BeginnerJava "Weihnachtsbäume" anzeigen: Höhe als Parameter Java Basics - Anfänger-Themen 1
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
D Erste Schritte png in JFrame anzeigen? Java Basics - Anfänger-Themen 3
M PNG als Spieler im Fenster anzeigen Java Basics - Anfänger-Themen 4
M Anzahl Schleifendurchgänge nach x Sekunden anzeigen Java Basics - Anfänger-Themen 2
M Rekursives Programm zum Anzeigen von Primzahlen Java Basics - Anfänger-Themen 3
M Auf MainJFrame Panels anzeigen lassen Java Basics - Anfänger-Themen 19
Rubberduck Combobox-Werte in GUI anzeigen Java Basics - Anfänger-Themen 13
J Die größte Zahl anzeigen Java Basics - Anfänger-Themen 19
V_Fynn03 Kontostand anzeigen lassen von einer anderen Klasse Java Basics - Anfänger-Themen 3
C Erste Schritte Bilder nach Export anzeigen Java Basics - Anfänger-Themen 0
O Popoup Menü im JTable richtig anzeigen Java Basics - Anfänger-Themen 6
J Einen Buttonklick in Label anzeigen Java Basics - Anfänger-Themen 6
M jTextPane Bild anzeigen Java Basics - Anfänger-Themen 6
A ArrayList - size() nur nach bestimmtem index anzeigen lassen Java Basics - Anfänger-Themen 13
E JAvaFX: Verschiedene Panels nach Klick auf Node des TreeView anzeigen Java Basics - Anfänger-Themen 0
S ArrayListe in einer JComboBox anzeigen Java Basics - Anfänger-Themen 10
C Methoden Dateien im Ordner anzeigen Java Basics - Anfänger-Themen 12
M Vererbung Ein JLabel einer Elternklasse anzeigen Java Basics - Anfänger-Themen 8
A Jdialog nur 1x anzeigen Java Basics - Anfänger-Themen 2
J Wie kann ich Images per Tastendruck anzeigen/einfügen? Java Basics - Anfänger-Themen 3
T Positionen anzeigen Java Basics - Anfänger-Themen 6
M Probleme mit Anzeigen von String in GUI und if-Anweisung Java Basics - Anfänger-Themen 9
N Datei einlesen und grafisch anzeigen Java Basics - Anfänger-Themen 31
L Verschiedene Bilder per Knopfdruck anzeigen lassen Java Basics - Anfänger-Themen 17
N Quiz- Fragen zufällig anzeigen lassen Java Basics - Anfänger-Themen 7
binop Bild anzeigen lassen Java Basics - Anfänger-Themen 2
W Erste Schritte Zweidimensionales Array - Gerade Zahlen anzeigen lassen Java Basics - Anfänger-Themen 3
S eingegebene Matrix anzeigen Java Basics - Anfänger-Themen 4
T Kamerabild anzeigen Java Basics - Anfänger-Themen 1
J JPG in JFrame anzeigen lassen Java Basics - Anfänger-Themen 3
J Erstes Applet läßt sich nicht anzeigen Java Basics - Anfänger-Themen 2
I A0-Format in jpanel anzeigen Java Basics - Anfänger-Themen 1
A Link in der Eingabeleiste nichr anzeigen Java Basics - Anfänger-Themen 1
C Methoden aus Klassen anzeigen lassen Java Basics - Anfänger-Themen 14
T Output in CMD anzeigen lassen? Java Basics - Anfänger-Themen 1
N Input/Output Wenn kein Input, dann Fehler anzeigen lassen im JFrame Java Basics - Anfänger-Themen 6
L Videos in Java anzeigen lassen Java Basics - Anfänger-Themen 10
M Wert aus String Feld anzeigen Java Basics - Anfänger-Themen 7
C JComboBox "Hilfstext" anzeigen Java Basics - Anfänger-Themen 11
C Html in einem JEditorPane anzeigen Java Basics - Anfänger-Themen 2
D Bild im Applet anzeigen Java Basics - Anfänger-Themen 3
W Frame in anderer Klasse anzeigen lassen Java Basics - Anfänger-Themen 1
D Externe Eeite beim Mousover anzeigen Java Basics - Anfänger-Themen 0
M JSP-Einfaches Bild anzeigen Java Basics - Anfänger-Themen 4
L Über 100e Werte anzeigen Java GUI Java Basics - Anfänger-Themen 1
R File chooser Dateien in frame anzeigen lassen Java Basics - Anfänger-Themen 5
T JLabel anzeigen lassen... Java Basics - Anfänger-Themen 6
H Erste Schritte Uhrzeit anzeigen in Minuten Dezimal Java Basics - Anfänger-Themen 8
A Datum zwischen zwei Daten berechnen und in Tagen anzeigen Java Basics - Anfänger-Themen 4
B Variable im Fenster anzeigen lassen? Java Basics - Anfänger-Themen 2
L bestimmten Frame anzeigen lassen? Java Basics - Anfänger-Themen 6
P JTabel größe ändern und button anzeigen Java Basics - Anfänger-Themen 5
D Dialoge anzeigen Java Basics - Anfänger-Themen 9
M Icon laden und anzeigen Java Basics - Anfänger-Themen 2
M Auslesen - Anzeigen - Schreiben Java Basics - Anfänger-Themen 13
K wie Datum in JTable anders anzeigen lassen Java Basics - Anfänger-Themen 2
X Methode in JTextArea anzeigen lassen Java Basics - Anfänger-Themen 18
J Ladebalken anzeigen während Bilder geladen werden Java Basics - Anfänger-Themen 2
A Input/Output Hashmap in einem JPanel via JList anzeigen Java Basics - Anfänger-Themen 8
M Website anzeigen Java Basics - Anfänger-Themen 4
P Erste Schritte Image anzeigen in ausführbarer jar mit der Toolkit class Java Basics - Anfänger-Themen 8
C Button - neues Fenster - Bestellung anzeigen Java Basics - Anfänger-Themen 10
H Java Server/Client, HTML Seite anzeigen Java Basics - Anfänger-Themen 2
B JFrame - Namen anzeigen Java Basics - Anfänger-Themen 2
M Array von Personen anzeigen Java Basics - Anfänger-Themen 3
J Panel + Label anzeigen - Ich kriege es nicht hin Java Basics - Anfänger-Themen 3
G JList Objekte richtig anzeigen in JDK 6 Java Basics - Anfänger-Themen 5
G Bilder in Jar anzeigen lassen Java Basics - Anfänger-Themen 23
B jar Inhalt anzeigen Java Basics - Anfänger-Themen 5
M GUI JList - Objekte listen u. Feld anzeigen? Java Basics - Anfänger-Themen 16
M Componenten auf JPanel anzeigen Java Basics - Anfänger-Themen 2
L Fehlermeldung bei falscher Berechnung anzeigen Java Basics - Anfänger-Themen 31
N RegEx Wort anzeigen Java Basics - Anfänger-Themen 6
J JPG in einem Label einfügen und anzeigen lassen Java Basics - Anfänger-Themen 2
C JSlider und JRadioButton auf Label anzeigen? Java Basics - Anfänger-Themen 10
Y MenuBar in Application anzeigen Java Basics - Anfänger-Themen 7
B Alle Benutzer anzeigen Java Basics - Anfänger-Themen 17
B Applet anzeigen Java Basics - Anfänger-Themen 9
N Verschiedene JFrames in einem JFrame anzeigen Java Basics - Anfänger-Themen 7
A JPEG anzeigen Java Basics - Anfänger-Themen 3
L Webseiten anzeigen Java Basics - Anfänger-Themen 4
Zettelkasten Applet anzeigen ? Java Basics - Anfänger-Themen 5
T Vector-Positin anzeigen Java Basics - Anfänger-Themen 3
C Zellen in einer JTable nicht anzeigen lassen Java Basics - Anfänger-Themen 3
I JFrame anzeigen Java Basics - Anfänger-Themen 9
M JTree ohne root anzeigen Java Basics - Anfänger-Themen 5
M Aus CSV-Datei lesen und anzeigen (bitte schnell um Antwort) Java Basics - Anfänger-Themen 6
G Inhalt Jar-Files anzeigen, incl. Methoden Java Basics - Anfänger-Themen 2
I Liste von Dateien anzeigen/JTree Java Basics - Anfänger-Themen 4
S Toggle Button Array zum anzeigen auf GUI Java Basics - Anfänger-Themen 17
StrikeTom Quelltext einer Internetseite auf JTextArea anzeigen Java Basics - Anfänger-Themen 4
F.A Development In Projekt vorhandenes 2. Fenster anzeigen Java Basics - Anfänger-Themen 19
B Textlänge anzeigen Java Basics - Anfänger-Themen 10
J Tabelle in Fenster anzeigen Java Basics - Anfänger-Themen 12
A Halb gefüllten Array anzeigen lassen Java Basics - Anfänger-Themen 7
aze NullpointerException :Null Referenz anzeigen lassen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben