B
Bernd B
Gast
Hallo Leute!
wir müssen für Java eine Hausarbeit machen und haben eine riesen Problem. Wir bekommen immer eine Fehleranzeige in der 2. Klasse (KFZ_AUS), die Stelle habe ich rot markiert, und wissen nicht, woran es liegen kann. Vielleicht weiss es jemand von Euch....wir arbeiten mir NetBeans und die Fehlermeldung lautet:
cannot find symbol,
symbol : method getDatensätze()
location : de.Hausarbeit.KFZ.KFZ_EIN
hier mal der Code der beiden Klassen. Es gibt noch andere Klassen, aber ich glaube, dass es nur an einer der beiden liegt:
Klasse 1:
Klasse 2:
Editiert von L-ectron-X am 24.01.2006 um 19:25 Uhr
Code-Tags eingefügt, Color-Tags aus dem Code entfernt und die von Bernd B markierte Fehlerstelle per Kommentar gekennzeichnet.
wir müssen für Java eine Hausarbeit machen und haben eine riesen Problem. Wir bekommen immer eine Fehleranzeige in der 2. Klasse (KFZ_AUS), die Stelle habe ich rot markiert, und wissen nicht, woran es liegen kann. Vielleicht weiss es jemand von Euch....wir arbeiten mir NetBeans und die Fehlermeldung lautet:
cannot find symbol,
symbol : method getDatensätze()
location : de.Hausarbeit.KFZ.KFZ_EIN
hier mal der Code der beiden Klassen. Es gibt noch andere Klassen, aber ich glaube, dass es nur an einer der beiden liegt:
Klasse 1:
Code:
package de.Hausarbeit.KFZ;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class KFZ_EIN{
public static final String FILENAME = "kfz.txt";
public static final String TYP_PKW = "PKW";
public static final String TYP_LKW = "LKW";
public static final String BESTAND_VERMIETET = "0";
public static final String BESTAND_FREI = "1";
public static final int FELD_TYP = 0;
public static final int FELD_KENNZEICHEN = 1;
public static final int FELD_BEZEICHNUNG = 2;
public static final int FELD_MIETPREIS = 3;
public static final int FELD_VERMIETET = 4;
private String[][] felder;
private int anzErfasst = 0;
public KFZ_EIN() throws Exception{
felder = KFZ_AUSDatei.leseDaten(FILENAME);
anzErfasst = felder.length;
}
public KFZ_EIN(int anzahlFahrzeuge) throws Exception{
if(anzahlFahrzeuge < 0) anzahlFahrzeuge = 0;
if(anzahlFahrzeuge == 0){
konsolenEingabe();
}else{
felder = new String[anzahlFahrzeuge][5];
}
}
public KFZ_EIN(String anzahlFahrzeuge) throws Exception{
int tmpAnz = checkAnzahl(anzahlFahrzeuge);
if(tmpAnz < 0) tmpAnz = 0;
felder = new String[tmpAnz][5];
}
public KFZ_EIN(String[][] daten){
anzErfasst = daten.length;
felder = daten;
}
private void konsolenEingabe() throws Exception{
felder = new String[checkAnzahl(getEingabe("Anzahl der Fahrzeuge: "))][5];
System.out.println();
for(int i = 0; i < getDatensätze().length; i++){
System.out.println("Fahrzeug "+(i+1));
addKFZ(getEingabe ("Fahrzeugtyp: ")
,getEingabe ("Kennzeichen: ")
,getEingabe ("Bezeichnung: ")
,getEingabe ("Mietpreis: ")
,getEingabe ("Bestand: "));
System.out.println();
}
schreibeDaten();
}
private static String getEingabe(String frage) throws Exception{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try{
System.out.print(frage);
return reader.readLine();
}catch(IOException e){
throw new Exception("Eingabefehler!");
}
}
public void addKFZ(String typ, String kennZeichen, String bezeichnung, double mietPreis, String vermietet)
throws Exception{
addKFZ(typ,kennZeichen,bezeichnung,""+mietPreis,vermietet);
}
public void addKFZ(String typ, String kennZeichen, String bezeichnung, String mietPreis, String vermietet)
throws Exception{
typ = typ.toUpperCase();
kennZeichen = kennZeichen.toUpperCase();
if(!typ.equals(TYP_PKW) && !typ.equals(TYP_LKW))
throw new Exception("Falscher Fahrzeugtyp! Es darf nur '"+TYP_PKW+"' oder '"+TYP_LKW+"' eingegeben werden!");
if(!vermietet.equals(BESTAND_FREI) && !vermietet.equals(BESTAND_VERMIETET))
throw new Exception("Falscher Fahrzeugbestand! Es darf nur '"+BESTAND_FREI+"' für Vermietbar oder '"+BESTAND_VERMIETET+"' für Belegt eingegeben werden!");
if(kennZeichen.equals("")) throw new Exception("Ungültiges Kennzeichen! Das Kennzeichen muß gefüllt sein!");
if(bezeichnung.equals("")) throw new Exception("Ungültige Bezeichnung! Die Bezeichnung muß gefüllt sein!");
double tmpPreis;
try{
tmpPreis = Double.parseDouble(mietPreis);
}catch(NumberFormatException e){
throw new Exception("Der Preis muß im numerischen Fließkommabereich eingegeben werden!");
}
if(tmpPreis <= 0)throw new Exception("Mietpreis zu niedrig! der Preis muß positiv sein!");
neuerDatensatz(typ,kennZeichen,bezeichnung,Double.toString(tmpPreis),vermietet);
}
private void neuerDatensatz(String typ, String kennZeichen, String bezeichnung, String mietPreis, String vermietet)
throws Exception{
if(anzErfasst >= felder.length) throw new Exception("Mehr Fahrzeuge als angegeben. Datenüberlauf!");
felder[anzErfasst][FELD_TYP] = typ;
felder[anzErfasst][FELD_KENNZEICHEN] = kennZeichen;
felder[anzErfasst][FELD_BEZEICHNUNG] = bezeichnung;
felder[anzErfasst][FELD_MIETPREIS] = mietPreis;
felder[anzErfasst][FELD_VERMIETET] = vermietet;
anzErfasst++;
}
public void schreibeDaten() throws Exception{
KFZ_AUS. schreibeDaten(this,FILENAME);
}
public String[][] getDatensätze(){
return felder;
}
public String[] getKFZ(String kennzeichen){
for(int i = 0; i < felder.length; i++){
if(felder[i][FELD_KENNZEICHEN].equals(kennzeichen)){
return felder[i];
}
}
return null;
}
private int checkAnzahl(String value) throws Exception{
int tmpAnz = 0;
try{
tmpAnz = Integer.parseInt(value);
}catch(NumberFormatException e){
throw new Exception("Die Anzahl der Fahrzeuge muß numerisch sein!");
}
return tmpAnz;
}
public String toString(){
String tmpS = "Klasse: KFZ_EIN"
+System.getProperty("line.separator")
+"Anzahl der Fahrzeuge: "+felder.length
+System.getProperty("line.separator");
for(int i = 0; i < felder.length; i++){
tmpS += System.getProperty("line.separator");
tmpS +="Fahrzeug: "+(i+1)+System.getProperty("line.separator");
tmpS +="Fahrzeugtyp: "+felder[i][FELD_TYP]+System.getProperty("line.separator");
tmpS +="Kennzeichen: "+felder[i][FELD_KENNZEICHEN]+System.getProperty("line.separator");
tmpS +="Bezeichnung: "+felder[i][FELD_BEZEICHNUNG]+System.getProperty("line.separator");
tmpS +="Mietpreis : "+felder[i][FELD_MIETPREIS]+System.getProperty("line.separator");
if(felder[i][FELD_VERMIETET].equals("0"))
tmpS +="Vermietet : Ja"+System.getProperty("line.separator");
else
tmpS +="Vermietet : Nein"+System.getProperty("line.separator");
}
return tmpS;
}
}
Klasse 2:
Code:
package de.Hausarbeit.KFZ;
import java.io.IOException;
import java.io.RandomAccessFile;
public class KFZ_AUS{
public static void schreibeDaten(KFZ_EIN daten, String datei)
throws Exception
{
RandomAccessFile fileWriter;
try{
fileWriter = new RandomAccessFile(datei,"rw");
}catch(IOException e){
throw new Exception("Datei nicht gefunden!");
}
try{
String ausgabezeile;
String[][] datenSaetze = daten.getDatensätze(); // hier gibts den Fehler!
sortiereDaten(datenSaetze);
for(int zeile = 0; zeile < datenSaetze.length; zeile++){
String[] datenSatz = datenSaetze[zeile];
ausgabezeile = "";
for(int feld = 0; feld < datenSatz.length; feld++){
if(feld == datenSatz.length -1){
if(zeile == datenSaetze.length -1){
ausgabezeile += datenSatz[feld];
}else{
ausgabezeile += datenSatz[feld]+System.getProperty("line.separator");
}
}else{
ausgabezeile += datenSatz[feld]+";";
}
}
fileWriter.writeBytes(ausgabezeile);
}
fileWriter.close();
}catch(IOException e){
throw new Exception("In die Datei kann nicht geschrieben werden!");
}
}
private static void sortiereDaten(String[][] daten){
QuickSort(daten
,KFZ_EIN.FELD_BEZEICHNUNG
,0,daten.length-1);
}
private static void QuickSort(String array[][],int feld , int lo0, int hi0){
int lo = lo0;
int hi = hi0;
String mid;
if(hi0 > lo0){
mid = array[(lo0 + hi0) / 2][feld];
while(lo <= hi){
while((lo < hi0) && (array[lo][feld].compareTo(mid) < 0))
++lo;
while((hi > lo0) && (array[hi][feld].compareTo(mid) > 0))
--hi;
if(lo <= hi){
swap(array, lo, hi);
++lo;
--hi;
}
}
if(lo0 < hi)
QuickSort(array, feld, lo0, hi);
if(lo < hi0)
QuickSort(array, feld, lo, hi0);
}
}
private static void swap(String array[][], int i, int j){
String[] temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
Editiert von L-ectron-X am 24.01.2006 um 19:25 Uhr
Code-Tags eingefügt, Color-Tags aus dem Code entfernt und die von Bernd B markierte Fehlerstelle per Kommentar gekennzeichnet.