Was läuft schief ?

Status
Nicht offen für weitere Antworten.

Bladerunner

Mitglied
Code:
import java.io.*;

public class CDSammlung{  
    public static void main(String[] args)
    throws IOException
    {int Durchlauf = 0,Anzahllieder = 0;
     int Titelanzahl = 0;
     String x =" ";
     String[] CDName;
     String[][] CDInterpret;
     String[][] CDTitel;
     CDName = new String[999];
     CDInterpret = new String [999][Anzahllieder];
     CDTitel = new String [999][Anzahllieder]; 
     BufferedReader din = new BufferedReader(new InputStreamReader(System.in));
     System.out.println("*CD-Datenbank*");
     System.out.println();
        while(!(x.equals("Nein") )) {
                if (Durchlauf >= 1 ) {
                    System.out.print("weitere CD hinzufügen Ja/Nein: " ); 
                    x = din.readLine(); 
                    System.out.println();
                    if(x.equals("Nein")) break;
                    if(x.equals("Ja")); } 
                System.out.print("Anzahl der Titel auf der CD : ");   
                Anzahllieder = Integer.parseInt(din.readLine());
                CDInterpret = new String [999][Anzahllieder];
                CDTitel = new String [999][Anzahllieder];               
                    System.out.println();
                    System.out.print("Bitte geben die Namen der CD ein: ");
                    CDName[Durchlauf] = din.readLine();  
                for ( int i = 0; i < Anzahllieder; i++){
                    System.out.println();
                        System.out.print("Bitte geben Sie den Interpreten des "+(i+1)+". Liedes ein: ");
                        CDInterpret[Durchlauf][i] = din.readLine();
                    System.out.println(); 
                        System.out.print("Bitte geben Sie den Titel des "+(i+1)+". Liedes ein: ");
                        CDTitel[Durchlauf][i] = din.readLine();
                    System.out.println();             
                    }
                Durchlauf++;     
                }              
        System.out.println("Drücken Sie (1) für Daten anzeigen (2) um die Suche nach Interpreten zu starten");
        System.out.println("Drücken Sie (3) um Daten zu ändern (4) um eine beliebige CD zu löschen ");
        x = din.readLine(); 
        if(x.equals("1")){
            System.out.println("Ausgabe von allen Daten erfolgt nun ");
            for ( int i = 0 ; i < Durchlauf ; i++){
                System.out.println(CDName[i]);
                    for ( int a = 0; a < Anzahllieder; a++)
                        System.out.println(CDInterpret[i][a] + " - " + CDTitel[i][a]);
            }  
        if(x.equals("2")){      // Suche nach Interpreten
            }
        if(x.equals("3")){      // Daten ändern
        }
        if(x.equals("4")){      // CD löschen
            }
        }
    }    
}

Also bei der Eingabe von nur einer Cd funktioniert die Ausgabe perfekt aber bei der Ausgabe von mehrern Cd wird nur die letzte Cd korrekt ausgegeben.... ich weiß das meine "Anzahllieder" variable eigentlich ein Array sein muss aber leider bekomm ich das nicht geregelt da mir hier und dort immer wieder fehler entgegen geworfen werden :( ...

Zudem bräuchte ich ein paar Tips wie man Suchen/Daten ändern und löschen kann :?:
 

utnovetur

Mitglied
Hallo,

zunächst zu deinem konkreten Problem mit der Ausgabe:
Jede CD hat eine andere Anzahl von Liedern! Du merkst dir aber nur die Anzahl der Lieder der letzten CD.
Um dies zu korrigieren, musst du ein Array von int anleegen, in dem du diese Anzahl für jede CD speicherst.

Ein zweites Problem ist, dass du bei Arrays immer die Größe im voraus wissen musst.
Es gibt da im package java.util die sogenannten Collection-Klassen, mit denen das eleganter geht.
Dieses Problem kannst du jedoch zunächst ignorieren. Mit 999 CD kommst du ja erstmal zurecht.

Nun zu einem grudsätzlicheren Problem:
In keiner Programmiersprache solltest du den gesamten Code in die main-Funktion schreiben,
sondern ihn stattdessen in mehrere Funktionen aufteilen.
In einer objektorientierten Sprache solltest du den Code zusätzlich in Klassen schreiben.
In deinem Fall wären folgende Klassen sinnvoll:
Code:
class Lied {
   String titel;
   String interpret;
   // ...
}
class CD {
   int anzahlLieder;
   Lied[] lieder;
   // ...
}
class CDSammlung {
   int anzahlCDs;
   CD[] cds;
   // ...
}
 

Bladerunner

Mitglied
ich habe ein array von int angelegt nur leider krieg ich wieder diese Fehlermeldung " int cannot be dereferenced "


Code:
import java.io.*;

public class CDSammlung{  
    public static void main(String[] args)
    throws IOException
    {int Durchlauf = 0,Anzahllieder = 0;
     int[] Titelanzahl;
     Titelanzahl = new int[999];
     String x =" ";
     String[] CDName;
     String[][] CDInterpret;
     String[][] CDTitel;
     CDName = new String[999];
     BufferedReader din = new BufferedReader(new InputStreamReader(System.in));
     System.out.println("*CD-Datenbank*");
     System.out.println();
        while(!(x.equals("Nein") )) {
                if (Durchlauf >= 1 ) {
                    System.out.print("weitere CD hinzufügen Ja/Nein: " ); 
                    x = din.readLine(); 
                    System.out.println();
                    if(x.equals("Nein")) break;
                    if(x.equals("Ja")); } 
                System.out.print("Anzahl der Titel auf der CD : ");   
                Anzahllieder = Integer.parseInt(din.readLine());
                Titelanzahl[Durchlauf] = Anzahllieder;
                CDInterpret = new String [999][Anzahllieder];
                CDTitel = new String [999][Anzahllieder];               
                    System.out.println();
                    System.out.print("Bitte geben die Namen der CD ein: ");
                    CDName[Durchlauf] = din.readLine();  
                for ( int i = 0; i < Titelanzahl.length; i++){
                    System.out.println();
                        System.out.print("Bitte geben Sie den Interpreten des "+(i+1)+". Liedes ein: ");
                        CDInterpret[Durchlauf][i] = din.readLine();
                    System.out.println(); 
                        System.out.print("Bitte geben Sie den Titel des "+(i+1)+". Liedes ein: ");
                        CDTitel[Durchlauf][i] = din.readLine();
                    System.out.println();             
                    }
                Durchlauf++;     
                }              
        System.out.println("Drücken Sie (1) für Daten anzeigen (2) um die Suche nach Interpreten zu starten");
        System.out.println("Drücken Sie (3) um Daten zu ändern (4) um eine beliebige CD zu löschen ");
        x = din.readLine(); 
        if(x.equals("1")){
            System.out.println("Ausgabe von allen Daten erfolgt nun ");
            for ( int i = 0 ; i < Durchlauf ; i++){
                System.out.println(CDName[i]);
                    for ( int a = 0; a < Titelanzahl[i].length; a++)
                        System.out.println(CDInterpret[i][a] + " - " + CDTitel[i][a]);
            }  
        if(x.equals("2")){      // Suche nach Interpreten
            }
        if(x.equals("3")){      // Daten ändern
        }
        if(x.equals("4")){      // CD löschen
            }
        }
    }    
}
                                                    
CDSammlung.java [50:1] int cannot be dereferenced
                    for ( int a = 0; a < Titelanzahl[i].length; a++)
                                                    ^
1 error
Errors compiling CDSammlung.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Test läuft schief Java Basics - Anfänger-Themen 3
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
A JavaFX-Anwendung läuft nicht mit Selenium WebDriver Java Basics - Anfänger-Themen 0
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4
C Java boolean Code läuft nicht Java Basics - Anfänger-Themen 5
R CSV Reader läuft nicht richtig an Java Basics - Anfänger-Themen 8
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
SpigBin Programm läuft nicht weiter... Java Basics - Anfänger-Themen 10
OSchriever Jar-Programm läuft auf Windows aber nicht auf Linux(Raspberri Pi4) Java Basics - Anfänger-Themen 22
V Anfängerfrage: HelloWorld läuft nicht Java Basics - Anfänger-Themen 3
C java.util Timer läuft zu langsam? Java Basics - Anfänger-Themen 1
Zrebna Programm kann aus der Konsole nicht gestartet werden (in der IDE läuft es) Java Basics - Anfänger-Themen 2
A Java-Programm läuft bei installierter JDK aber nicht mit JRE? Java Basics - Anfänger-Themen 5
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
W Warum läuft mein Programm nicht? Java Basics - Anfänger-Themen 14
D Erste Schritte Java läuft nicht Java Basics - Anfänger-Themen 33
M Erste Schritte while boolean=false läuft nur bei true??? Java Basics - Anfänger-Themen 23
S Programm läuft nicht weiter, wie Code wiederholen? Java Basics - Anfänger-Themen 2
C Threads SwingWorker läuft trotz cancel weiter Java Basics - Anfänger-Themen 22
D Programm läuft plötzlich nicht weiter Java Basics - Anfänger-Themen 12
S Input/Output Programm läuft nach input-Abfrage nicht weiter. Java Basics - Anfänger-Themen 2
L do-while-Schleife läuft doppelt, try catch fehler Java Basics - Anfänger-Themen 12
J ireport Designer / CSV / Sonderzeichen was läuft falsch Java Basics - Anfänger-Themen 7
M Simpler Algorithmus läuft extrem langsam. Java Basics - Anfänger-Themen 3
K Erste Schritte Netbeans Programm läuft nicht Java Basics - Anfänger-Themen 23
J Dekrement läuft offenbar falsch Java Basics - Anfänger-Themen 6
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
P Methoden Exception läuft endlos! Java Basics - Anfänger-Themen 7
O Starte Timer, während anderer Timer noch läuft. Ruft dies Schwierigkeiten hervor? Java Basics - Anfänger-Themen 0
D 2d Array läuft nicht rund. Java Basics - Anfänger-Themen 7
F jabva 7.21 läuft nicht auf windows server 2012? Java Basics - Anfänger-Themen 9
T SQL Abfrage Läuft nicht Java Basics - Anfänger-Themen 5
C Schleife läuft unendlich Java Basics - Anfänger-Themen 2
H Umgebungsvariable In DOS-Box läuft die fehlerfreie Class-Datei nicht. Java Basics - Anfänger-Themen 5
T OOP Abstrakte Klassen und ihre Kinder: wie läuft das? Java Basics - Anfänger-Themen 3
K Runnable oder Keyadapter läuft falsch Java Basics - Anfänger-Themen 4
N .jar läuft nicht unter Windows 7 Starter Java Basics - Anfänger-Themen 4
S Programm läuft in Eclipse, aber nicht über Konsole Java Basics - Anfänger-Themen 10
A JFrame läuft ewig? Java Basics - Anfänger-Themen 2
S Konsole schließen, nachdem Jar läuft Java Basics - Anfänger-Themen 5
G Events schreiben, solange Programm läuft Java Basics - Anfänger-Themen 6
B Eingabeüberprüfung läuft nicht wie ich das will... Java Basics - Anfänger-Themen 2
K While-Schleife läuft nicht durch Java Basics - Anfänger-Themen 12
F Schleife läuft zu lang Java Basics - Anfänger-Themen 6
P Threads Wann läuft es parallel ab ? Java Basics - Anfänger-Themen 4
M Programm läuft nicht überall Java Basics - Anfänger-Themen 9
O Threads Ein Thread läuft exakt einmal Java Basics - Anfänger-Themen 4
T Programm läuft nicht mehr... Java Basics - Anfänger-Themen 3
F Prüfen ob timer läuft Java Basics - Anfänger-Themen 6
T Erste Schritte Speicher läuft voll, Diashow, Images Java Basics - Anfänger-Themen 7
F sound nur abspielen, wenn er nicht läuft Java Basics - Anfänger-Themen 6
Y Standardprogramm läuft nicht - ppt schreiben Java Basics - Anfänger-Themen 4
D Interpreter-Fehler JavaApplet läuft in der IDE aber nicht im HTML Dokument Java Basics - Anfänger-Themen 9
VfL_Freak Applikation läuft nicht unter Windows7 "platform not supported" Java Basics - Anfänger-Themen 15
A Jlayer: Wie sound stoppen der in einem Thread läuft Java Basics - Anfänger-Themen 7
C Überprüfen, ob Timer läuft Java Basics - Anfänger-Themen 3
P simples Program läuft nicht ;? Java Basics - Anfänger-Themen 9
S jProgressBar läuft nicht! Java Basics - Anfänger-Themen 13
B JavaWebStart - Anwendung läuft nur auf einem Rechner Java Basics - Anfänger-Themen 6
M Audio Stream läuft auf :connection abort: socket write error Java Basics - Anfänger-Themen 2
B Programm läuft mit 100% CPU-Last Java Basics - Anfänger-Themen 6
E Projekt fast fertig, nur es läuft nicht ;) Java Basics - Anfänger-Themen 7
R .jar läuft nicht unter Linux Java Basics - Anfänger-Themen 11
R Jar Datei läuft auf neuem Rechner nicht mehr Java Basics - Anfänger-Themen 15
Z Applet mit Mandelbrot und Juliam. läuft nicht rund Java Basics - Anfänger-Themen 6
P Java Programm läuft nicht auf MAC Java Basics - Anfänger-Themen 7
J Programm läuft in Netbeans, aber nicht in der Konsole Java Basics - Anfänger-Themen 6
L Programm läuft nicht! Warum? Java Basics - Anfänger-Themen 5
G If-Schleife läuft ohne erfüllte Bedingung Java Basics - Anfänger-Themen 13
-horn- Was passiert, wenn Zähler über Integer Max läuft? Java Basics - Anfänger-Themen 9
H Split läuft nicht wie ich will Java Basics - Anfänger-Themen 4
N Brauche dringende Hilfe Java Aplett läuft nicht! Java Basics - Anfänger-Themen 3
G Mittels Runtime prüfen ob ein Programm läuft? Java Basics - Anfänger-Themen 18
A Netbeans unter Windows/Jar läuft nicht auf Mac Java Basics - Anfänger-Themen 7
N FileClassLoader läuft nicht in Tomcat Java Basics - Anfänger-Themen 5
G Was bracuht man, damit Java läuft? Java Basics - Anfänger-Themen 6
G Eine HP mit Java läuft nicht Java Basics - Anfänger-Themen 4
B Programm läuft.aber objektorientiert genug? :( Java Basics - Anfänger-Themen 9
S classe unter windows kompiliert läuft nicht unter linux? Java Basics - Anfänger-Themen 8
G jar läuft nur in eingabeaufforderung Java Basics - Anfänger-Themen 12
P Warum läuft das nicht? Java Basics - Anfänger-Themen 6
L [gelöst] Einfache Aufgabe, läuft aber nicht. Java Basics - Anfänger-Themen 8
S "einfache Klassengeschichten" keine Fehler, läuft Java Basics - Anfänger-Themen 2
G Gauss Applet läuft nicht Java Basics - Anfänger-Themen 9
P kleine db-aufgabe läuft nur suboptimal Java Basics - Anfänger-Themen 8
K eclipse läuft nich Java Basics - Anfänger-Themen 3
M Java läuft nicht Java Basics - Anfänger-Themen 5
I Keine zwei Objekte im Fenster möglich? Was läuft falsch? Java Basics - Anfänger-Themen 5
M Lottoprog. läuft nicht Java Basics - Anfänger-Themen 6
C Applikation läuft nur, wenn sie aus Netbeans gestartet wird Java Basics - Anfänger-Themen 6
C Thread läuft und läuft, trotz interrupt() Java Basics - Anfänger-Themen 9
N läuft der thread eigentlich weiter? Java Basics - Anfänger-Themen 13
M Datenbankabfrage läuft nicht Java Basics - Anfänger-Themen 28
P jbuilder-Programm- Wie läuft es ohne jbuilder. Java Basics - Anfänger-Themen 3
B Choice läuft Amok Java Basics - Anfänger-Themen 10
D Warum läuft dieses Programm so langsam? Java Basics - Anfänger-Themen 5
A For Schleife läuft nicht :( Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben