JAVA Array Anwendersystem

Status
Nicht offen für weitere Antworten.

sven_p

Mitglied
Hallo Java Gemeinde,

für das Informatik Praktikum in der FH muss ich ein kleines Programm in Java schreiben. So weit bin ich auch schon fertig. Leider habe ich noch zwei Fehler im Code welche ich nicht verstehe. Da ich zwar Informatik habe, aber nur 6 Doppelstunden pro Semester, habe ich leider nicht wirklich viel Ahnung von Java.

Das Programm soll Datensätze zu Messdaten erfassen, löschen, einfügen und in Datein exportieren und von Datein importieren können.
Als Orientirung dient mir ein Script meines Professors, welches allerdings nicht auf Arrays basiert sondern noch auf Vectoren.

1. Im Code für die Funktion "loescheAus" bekomme ich einen Fehler in der for-Bedinung. Das Programm soll zur Eingabe einer Identnummer auffordern und diese dann suchen und aus dem Datenbestand löschen.

Code:
// Löschen von Werten
private void loescheAus()
     {
       String vergleichsnummer="";
     try
     {
        BufferedReader ein=new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Identnummer:");

        vergleichsnummer=(String)ein.readLine();
     }
        catch(IOException ioe)
        {
            System.out.println(ioe.toString());
        }

          for(int j=0;j<vMessdatenSP.size();j++)
          if(((MessdatenSP)
          vMessdatenSP.get(j)).identnummer.compareTo(vergleichsnummer)==0)
          vMessdatenSP.remove(j);
    }

Die Fehlermeldung: "int cannot be dereferenced"
Hängt es damit zusammen das die Identnummer als Integer deklariert ist? Muss ich den Integer erst konvertieren?

2. Das Programm soll die Datensätze in eine Datei schreiben.

Code:
// Exportieren der Werte in eine Datei
private void SchreibenInDatei()
    {
        try
        {
            BufferedWriter aus=new BufferedWriter(new FileWriter("D:\\GruppeH.DAT"));
            aus.write(""+vMessdatenSP.size());
            aus.newLine();
            for (int i=0;i<vMessdatenSP.size();i++)
        {
            aus.write(((MessdatenSP)
            vMessdatenSP.get(i)).messart);
            aus.newLine();
            aus.write(((MessdatenSP)
            vMessdatenSP.get(i)).identnummer);
            aus.newLine();
            aus.write(((MessdatenSP)
            vMessdatenSP.get(i)).messwert);
            aus.newLine();
            aus.write(((MessdatenSP)
            vMessdatenSP.get(i)).einheit);
            aus.newLine();
            aus.write(((MessdatenSP)
            vMessdatenSP.get(i)).pruefername);
            aus.newLine();
            aus.write(((MessdatenSP)
            vMessdatenSP.get(i)).datum);
            aus.newLine();
            }
            aus.close();
        }

         catch(IOException ioe)
   {
       System.out.println(ioe.toString());
   }}

Das Problem tritt bei

Code:
aus.write(((MessdatenSP)
            vMessdatenSP.get(i)).messwert);
            aus.newLine();

auf. Der Messwert ist in MessdatenSP mit einem float deklariert. Der Wert müsste dann umgewandelt werden von float nach integer, oder?
Fehlermeldung: method write(float) location: class.java.io.BufferedWriter

Code:
float = i
i.Float.IntegerValue();

Bitte verzeiht mir meine Javakenntnisse. Sicher hat der ein oder andere etwas zu schmunzeln! :D

Ich kann gerne auch auf Wunsch den kompletten Sourcecode posten!

Vielen Dank und einen schönen Sonntagabend,

Sven.
 

Fenixx

Aktives Mitglied
Zu 1.)

Setz mal Klammern für den Schleifendurchlauf der for-Schleife. Auch ein korrektes Klammern der if-Bedingung kann nicht schaden:

Code:
for(int j=0;j<vMessdatenSP.size();j++)
{
          if(MessdatenSP)
          {
               if(vMessdatenSP.get(j).identnummer.compareTo(vergleichsnummer)==0))
               {
                    vMessdatenSP.remove(j);
               }
          }
}

Falls es das ist, was du meinst.

Edit: Was soll MessdatenSP sein? Ein boolean?
 

sven_p

Mitglied
MessdatenSP ist die Klasse auf die MessdatenverwaltungSP zugreifen soll. Die MessdatenSP ist sozusagen die Grundlage wo verankert ist welche Typen den einzelnen Daten zugewiesen wird, wie z. B. name = String, identnummer = Integer...

Hier der komplette Code:
Code:
import java.io.*;
import java.util.*;

public class MessdatenverwaltungSP
{
private ArrayList vMessdatenSP=new ArrayList(10);
public static void main (String[] args)

    {
        MessdatenverwaltungSP a=new MessdatenverwaltungSP();
        a.waehleAus();
    }

// Auswahlmenü
private void waehleAus()
    {
        int e=0;
        BufferedReader menueEin=new BufferedReader(new InputStreamReader(System.in));
        do
        {
            System.out.println("Bitte geben Sie die gewuenschte Funktion ein:\n\n");
            System.out.println("Einfuegen           = 1");
            System.out.println("Loeschen            = 2");
            System.out.println("Ausgabe             = 3");
            System.out.println("Eingabe             = 4");
            System.out.println("Eingabe aus Datei   = 5");
            System.out.println("Ausgabe in Datei    = 6");
            System.out.println("Verlassen           = 7");
            System.out.println("->\n");
            try
            {
                e=Integer.valueOf(menueEin.readLine()).intValue();
            }
            catch(IOException ioe)
            {
                System.out.println(ioe.toString());
            }
            switch (e)
            {
                case 1:this.fuegeEin();break;
                case 2:this.loescheAus();break;
                case 3:this.gebeAus();break;
                case 4:this.gebeEin();break;
                case 5:this.SchreibenInDatei();break;
                case 6:this.LesenAusDatei();break;
                case 7:System.exit(0);break;

                default: System.out.println("Ungueltige Eingabe!\n");
            }
        }while(e!=7);

    }

// Einfügen von neuen Werten an einer Stelle
private void fuegeEin()
{
    int stelle=0;
    MessdatenSP pdMesswert=new MessdatenSP();
    try
        {
        BufferedReader ein=new BufferedReader (new InputStreamReader(System.in));
        System.out.print("Einfuegestelle:");
        stelle=Integer.valueOf(ein.readLine()).intValue();
        }
    catch(IOException ioe)
    {
        System.out.println(ioe.toString());
    }
        vMessdatenSP.add(stelle, pdMesswert);
}

// Löschen von Werten
private void loescheAus()
     {
       String vergleichsnummer="";
     try
     {
        BufferedReader ein=new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Identnummer:");

        vergleichsnummer=(String)ein.readLine();
     }
        catch(IOException ioe)
        {
            System.out.println(ioe.toString());
        }

          for(int j=0;j<vMessdatenSP.size();j++)
          if(((MessdatenSP)

          vMessdatenSP.get(j)).identnummer.compareTo(vergleichsnummer)==0)
          vMessdatenSP.remove(j);
    }

// Ausgabe der Werte auf dem Bildschirm
private void gebeAus()
    {
        for(int k=0;k<vMessdatenSP.size();k++)
        ((MessdatenSP)
        vMessdatenSP.get(k)).GebeAufBildschirmAus();
    }

// Eingabe neuer Werte
private void gebeEin()
    {
    MessdatenverwaltungSP pdMesswert=new MessdatenverwaltungSP();
    vMessdatenSP.add(pdMesswert);
    }

// Exportieren der Werte in eine Datei
private void SchreibenInDatei()
    {
        try
        {
            BufferedWriter aus=new BufferedWriter(new FileWriter("D:\\GruppeH.DAT"));
            aus.write(""+vMessdatenSP.size());
            aus.newLine();
            for (int i=0;i<vMessdatenSP.size();i++)
        {
            aus.write(((MessdatenSP)
            vMessdatenSP.get(i)).messart);
            aus.newLine();
            aus.write(((MessdatenSP)
            vMessdatenSP.get(i)).identnummer);
            aus.newLine();
            aus.write(((MessdatenSP)
            vMessdatenSP.get(i)).messwert);
            aus.newLine();
            aus.write(((MessdatenSP)
            vMessdatenSP.get(i)).einheit);
            aus.newLine();
            aus.write(((MessdatenSP)
            vMessdatenSP.get(i)).pruefername);
            aus.newLine();
            aus.write(((MessdatenSP)
            vMessdatenSP.get(i)).datum);
            aus.newLine();
            }
            aus.close();
        }

         catch(IOException ioe)
   {
       System.out.println(ioe.toString());
   }}

//Lesen der Werte aus einer Datei
private void LesenAusDatei()
        {
            try
            {
                BufferedReader ein=new BufferedReader (new FileReader("D:\\GruppeH.DAT"));
                int n=Integer.valueOf(ein.readLine()).intValue();
                for (int i=0;i<n;i++)
                {
                    String messart=(String)ein.readLine();
                    int identnummer=Integer.valueOf(ein.readLine()).intValue();
                    float messwert=Integer.valueOf(ein.readLine()).intValue();
                    String einheit=(String)ein.readLine();
                    String pruefername=(String)ein.readLine();
                    int datum=Integer.valueOf(ein.readLine()).intValue();
                    MessdatenSP pdMesswert=new MessdatenSP (messart, identnummer, messwert, einheit, pruefername, datum);
                    vMessdatenSP.add(pdMesswert);
                  }
                ein.close();
            }
   catch(IOException ioe)
   {
       System.out.println(ioe.toString());
   }

}}

MessdatenSP und Messdatenverwaltung sind getrennte Klassen. Die Messdatenverwaltung greift aber auf MessdatenSP zu.
 
Zuletzt bearbeitet:

Fenixx

Aktives Mitglied
Code:
for (int j=0; j<vMessdatenSP.size(); j++)
{
   MessdatenSP messdaten = vMessdatenSP.get(j);
   if(messdaten.getIdentnummer().compareTo(Integer.valueOf(vergleichsnummer))==0)
   {
      vMessdatenSP.remove(j);
   }
}
 

Fenixx

Aktives Mitglied
Schöner wärs, wenn du in deiner ArrayList auch nen Typ angeben würdest. Dann kannst du über ne for-each-Schleife arbeiten.
Code:
aus.write(String.valueOf((MessdatenSP) vMessdatenSP.get(i).messwert));
 

sven_p

Mitglied
Danke für deine Tipps, aber irgendwie komm ich damit nicht weiter. Wenn ich die Vorschläge anwende ändern sich lediglich die Fehler. :)
Ich bin schon kurz vorm durchdrehen.

Code:
aus.write(String.valueOf((MessdatenSP)
            vMessdatenSP.get(i)).messwert);

führt zu "cannot find symbol"
symbol : variable messwert
location: class java.lang.String
vMessdatenSP.get(i)).messwert);

Da der Messwert ein float ist, kann man den nicht zu einem integer umwandeln?
 

sven_p

Mitglied
Alle Fehler sind soweit behoben. Nur dadurch hat sich ein neuer ergeben:
Code:
// Löschen von Werten
private void loescheAnStelle()
{
       Integer vergleichsnummer=0;
       try
        {
            BufferedReader ein=new BufferedReader(new InputStreamReader(System.in));
            System.out.print("Identnummer:");
            vergleichsnummer=Integer.valueOf(ein.readLine()).intValue();
        }
        catch (IOException ioe)
        {
            System.out.println(ioe.toString());
        }
        for(int j=0;j<vMessdaten.size(); j++)

        if(((MessdatenSP)
        vMessdaten.get(j)).identnummer=vergleichsnummer)
        vMessdaten.remove(j);
        
}

Bei "if(((MessdatenSP)" stellt sich NetBeans quer und will einen boolean haben bevor er das Programm ausführt! Vielleicht hat jemand eine Idee?

Grüße,

Sven.
 

Schandro

Top Contributor
Ich zitier dich mal:
MessdatenSP ist die Klasse auf die MessdatenverwaltungSP zugreifen soll. Die MessdatenSP ist sozusagen die Grundlage wo verankert ist welche Typen den einzelnen Daten zugewiesen wird, wie z. B. name = String, identnummer = Integer...
Wie soll Java entscheiden, ob EINE KLASSE true oder false ist?? ? :autsch:


Du hast dir die Frage eigentlich schon selber beantwortet: "if" erwartet einen boolean als Parameter. Also geb ihn einen boolean. Es gibt keine andere Lösung.

€dit: Ok, hab wegen der blöden Einrückung nicht gesehen das die Bedingung in der nächsten Zeile weitergeht.. Dann musses natürlich == statt = sein
 
Zuletzt bearbeitet:

0815

Mitglied
fals
Java:
((MessdatenSP) vMessdaten.get(j)).identnummerv=vergleichsnummer)

n vergleich sein soll: "=="

denn vergleicht er auch und gibt n boolean zurück.

bei dir isses ne zuweisung
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
M Java Array Java Basics - Anfänger-Themen 8
t2im Java Array-Länge ändern? Java Basics - Anfänger-Themen 22
G Java 2-dimensionalen int-Array Summe Java Basics - Anfänger-Themen 2
Splayfer Java Array Probleme Java Basics - Anfänger-Themen 3
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
I Java zweidimensionales array befüllen mit for-schleife Java Basics - Anfänger-Themen 2
M Quiz in Java programmieren mit Array Java Basics - Anfänger-Themen 8
L Java Int-Array, Zahlen sortieren Java Basics - Anfänger-Themen 8
T Java: Array monat absteigend sortieren? Java Basics - Anfänger-Themen 1
S Java Array Länge aus anderer Klasse lesen Java Basics - Anfänger-Themen 1
X Java zweidimensionales Array Java Basics - Anfänger-Themen 5
X Array List geordnet ausgeben. (JSF und JAVA) Java Basics - Anfänger-Themen 1
S Array Java erweitern Java Basics - Anfänger-Themen 27
M Wie kann ich im JAVA-GUI im Textfeld ein Array speichern Java Basics - Anfänger-Themen 4
B Java Array Fakultät Function Java Basics - Anfänger-Themen 5
E Wie wird in Java ein Char-Array terminiert ? Java Basics - Anfänger-Themen 15
kilopack15 Java Array Skalarprodukt testen Java Basics - Anfänger-Themen 21
T Variablen PHP Array jetzt für Java Java Basics - Anfänger-Themen 1
W Erste Schritte füllen Attribute java Klasse in for Schleife und Array Java Basics - Anfänger-Themen 16
X wie kann ich in bluej/java einene 2d array mit zahlen fuellen, so dass sich diese in der der zeilen Java Basics - Anfänger-Themen 2
J Java Array Zeichnung Skalieren und verschieben Java Basics - Anfänger-Themen 5
P Java : Array Fehler Java Basics - Anfänger-Themen 4
B Java rekursion minimum von ein array Java Basics - Anfänger-Themen 2
U JAVA - Ungerade Zahlen Array Java Basics - Anfänger-Themen 9
B Input/Output Formatierter Text aus PDF als Array auswerten in JAVA möglich ? Java Basics - Anfänger-Themen 8
T Erste Schritte Java ein Array Feld[index] zurueckgeben? Java Basics - Anfänger-Themen 20
U Kann man in Java ein Array zum Teil vorbelegen? Java Basics - Anfänger-Themen 4
J Java-Array abwechselnd Gross- und Kleinbuchstaben Java Basics - Anfänger-Themen 5
M Java spuckt Exeption bei Array aus Java Basics - Anfänger-Themen 2
T Collections Java Anfänger - Array-Struktur vollkommen unklar Java Basics - Anfänger-Themen 2
S Java Array Basic Java Basics - Anfänger-Themen 5
M java.util.ArrayList to java.sql.Array Java Basics - Anfänger-Themen 4
K Java Array Problem Java Basics - Anfänger-Themen 3
M Java Array - Durchschnitt Java Basics - Anfänger-Themen 7
S java array Java Basics - Anfänger-Themen 7
K java.lang.NullPointerException in Array bei Arraylistübergabe Java Basics - Anfänger-Themen 7
A Anfängerfrage - array required, but java.lang.String found Java Basics - Anfänger-Themen 7
J Ringpuffer als Array in Java ;-) Java Basics - Anfänger-Themen 3
B Java Array List größe auslesen zur Suchfunktion Java Basics - Anfänger-Themen 5
C Bäume in Java. Knoten in Array speichern Java Basics - Anfänger-Themen 3
C Java Array wie in PHP? Java Basics - Anfänger-Themen 9
S Java - Double-Array-Wertzuweisung erfolgt nicht Java Basics - Anfänger-Themen 4
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
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
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben