diff --git a/Dateien/.DS_Store b/Dateien/.DS_Store new file mode 100644 index 0000000..8b26fbb Binary files /dev/null and b/Dateien/.DS_Store differ diff --git a/Dateien/.classpath b/Dateien/.classpath new file mode 100644 index 0000000..6922345 --- /dev/null +++ b/Dateien/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Dateien/.project b/Dateien/.project new file mode 100644 index 0000000..bd56c3d --- /dev/null +++ b/Dateien/.project @@ -0,0 +1,17 @@ + + + Dateien + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Dateien/Console.java b/Dateien/Console.java new file mode 100644 index 0000000..dd348ab --- /dev/null +++ b/Dateien/Console.java @@ -0,0 +1,21 @@ +import java.util.Scanner; + +public class Console { + Scanner scan = new Scanner(System.in); + + public String readString() { + String eingabeString = scan.nextLine(); + return eingabeString; + } + public char [] readCharArray() { + String text = scan.nextLine(); + return text.toCharArray(); + } + public boolean readBoolean() { + return scan.nextBoolean(); + + } + + + +} diff --git a/Dateien/DemoConsole.java b/Dateien/DemoConsole.java new file mode 100644 index 0000000..dab503d --- /dev/null +++ b/Dateien/DemoConsole.java @@ -0,0 +1,19 @@ +public class DemoConsole { + public static void main(String[] args) throws Exception { + Console console = new Console(); + System.out.println("Text eingeben: "); + String text = console.readString(); + System.out.println("Gelesener Text: " + text); + + System.out.println("Text eingeben: "); + char [] ca = console.readCharArray(); + System.out.println("Gelesenes char-Feld: "); + for(char celement: ca) + System.out.print(celement); + System.out.println(); + + System.out.println("Boolean eingeben: "); + boolean b = console.readBoolean(); + System.out.println("Gelesener Wert: " + b); + } +} diff --git a/Dateien/Indexverwaltung/.DS_Store b/Dateien/Indexverwaltung/.DS_Store new file mode 100644 index 0000000..82d8914 Binary files /dev/null and b/Dateien/Indexverwaltung/.DS_Store differ diff --git a/Dateien/Indexverwaltung/.classpath b/Dateien/Indexverwaltung/.classpath new file mode 100644 index 0000000..f029363 --- /dev/null +++ b/Dateien/Indexverwaltung/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Dateien/Indexverwaltung/.project b/Dateien/Indexverwaltung/.project new file mode 100644 index 0000000..8f9aea7 --- /dev/null +++ b/Dateien/Indexverwaltung/.project @@ -0,0 +1,17 @@ + + + Indexverwaltung + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Dateien/Indexverwaltung/.settings/org.eclipse.core.resources.prefs b/Dateien/Indexverwaltung/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/Dateien/Indexverwaltung/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/Dateien/Indexverwaltung/.settings/org.eclipse.jdt.core.prefs b/Dateien/Indexverwaltung/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..062ed70 --- /dev/null +++ b/Dateien/Indexverwaltung/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,14 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=19 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=19 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=19 diff --git a/Dateien/Indexverwaltung/bin/.gitignore b/Dateien/Indexverwaltung/bin/.gitignore new file mode 100644 index 0000000..c7979b8 --- /dev/null +++ b/Dateien/Indexverwaltung/bin/.gitignore @@ -0,0 +1,11 @@ +/.DS_Store +/.classpath +/.project +/Console.class +/Datei.class +/DemoConsole.class +/Index.class +/IndexUI.class +/Indexverwaltung/ +/Zaehler.png +/ZaehlerUI.class diff --git a/Dateien/Indexverwaltung/src/Datei.java b/Dateien/Indexverwaltung/src/Datei.java new file mode 100644 index 0000000..5e85194 --- /dev/null +++ b/Dateien/Indexverwaltung/src/Datei.java @@ -0,0 +1,4 @@ + +public class Datei { + +} diff --git a/Dateien/Indexverwaltung/src/Index.java b/Dateien/Indexverwaltung/src/Index.java new file mode 100644 index 0000000..c660977 --- /dev/null +++ b/Dateien/Indexverwaltung/src/Index.java @@ -0,0 +1,93 @@ +import java.util.*; +import java.io.*; + +public class Index { + // Attribute + private final int MAX = 10; + private String dateiname = "Indexdatei.txt"; + private int indextabelle[]; // 0 .. MAX-1 + private RandomAccessFile eineIndexDatei; + + // Konstruktor + public Index() + { + indextabelle = new int[MAX]; + // Initialisierung der indextabelle + for(int i = 0; i < MAX; i++) indextabelle[i] = -1; + // Kein Datensatz zu Schluessel vorhanden + } + + // Methoden + public void erzeugeEintrag(int schluessel, int index) throws IOException + { + /** Speichert zu einen Schluessel den zugehoerigen + * Datensatz-Index in der indextabelle + */ + if(schluessel < MAX) + indextabelle[schluessel] = index; + // Aktualisieren der Indexdatei, + // d. h. Abspeichern der Datei + aktualisiereIndexDatei(schluessel); + } + + public int gibIndexZuSchluessel(int schluessel) + { + // Gibt zu dem Schluessel den gefundenen + // Datensatz-Index zurueck + if(schluessel < MAX) + return indextabelle[schluessel]; + // oder -1, wenn Schluessel zu gross ist + else + return -1; + } + + public void ladeIndexDatei() throws IOException + { + /** Liest die Indextabelle vollstaendig aus einer Datei + * Dies geschieht nur beim Start des Programms + */ + eineIndexDatei = new RandomAccessFile(dateiname, "r"); + int index; + for(int schluessel = 0; schluessel < MAX; schluessel++) + { + index = eineIndexDatei.readInt(); + indextabelle[schluessel] = index; + } + eineIndexDatei.close(); + } + + public void speichereIndexDatei() throws IOException + { + /** Speichert die Indextabelle vollstaendig in einer Datei + * Dies geschlieht beim beenden des Programs + */ + eineIndexDatei = new RandomAccessFile(dateiname, "rw"); + for(int schluessel = 0; schluessel < MAX; schluessel++) + eineIndexDatei.writeInt(indextabelle[schluessel]); + eineIndexDatei.close(); + } + + private void aktualisiereIndexDatei(int schluessel) throws IOException + { + /** Aktualisiert die indextabelle in der Indexdatei + * Dies geschliet beim Hinzufuegen eines neuen + * Indexes oder Aendern eines alten Indexes + */ + eineIndexDatei = new RandomAccessFile(dateiname, "rw"); + // eine int-Zahl belegt 4 Bytes + eineIndexDatei.seek((long)(schluessel * 4)); + eineIndexDatei.writeInt(indextabelle[schluessel]); + eineIndexDatei.close(); + } + + // Zum Testen + public void gibIndextabelleAus() + { + int schluessel = 0; + for(int element : indextabelle) + { + System.out.println(schluessel + " " + element); + schluessel++; + } + } +} diff --git a/Dateien/Indexverwaltung/src/IndexUI.java b/Dateien/Indexverwaltung/src/IndexUI.java new file mode 100644 index 0000000..fa116a2 --- /dev/null +++ b/Dateien/Indexverwaltung/src/IndexUI.java @@ -0,0 +1,9 @@ + +public class IndexUI { + + public static void main(String[] args) { + // TODO Auto-generated method stub + + } + +} diff --git a/Dateien/Zaehler.png b/Dateien/Zaehler.png new file mode 100644 index 0000000..159cef0 Binary files /dev/null and b/Dateien/Zaehler.png differ diff --git a/Dateien/ZaehlerUI.java b/Dateien/ZaehlerUI.java new file mode 100644 index 0000000..d2a0527 --- /dev/null +++ b/Dateien/ZaehlerUI.java @@ -0,0 +1,49 @@ +public class ZaehlerUI { + public static void main(String[] args) throws Exception { + Zaehler einZaehler, klonZaehler = null; + + Verbraucher einVerbraucher = new Verbraucher("Schulz"); + einZaehler = new Zaehler("Elektro", einVerbraucher, 123); + + try + { + klonZaehler = einZaehler.clone(); + } + catch(CloneNotSupportedException e) + { + System.out.println("Fehler"); + } + + System.out.println("Zählerstand =" + einZaehler.getZaehlerstand() + + " gehört zu Verbraucher " + einZaehler.getMeinVerbraucher().getName()); + + System.out.println("Geklonter Zähler Zählerstand = " + klonZaehler.getZaehlerstand() + + " gehört zu Verbraucher " + klonZaehler.getMeinVerbraucher().getName()); + + if(einZaehler.getMeinVerbraucher() == klonZaehler.getMeinVerbraucher()) + System.out.println("Verbraucher identisch"); + else + System.out.println("Verbraucher nicht identisch"); + + Unterzaehler nochEinZaehler = new Unterzaehler("Gas", einVerbraucher, 500); + + System.out.println("Zählerstand = " + nochEinZaehler.getZaehlerstand() + + " Unterzählerstand: " + nochEinZaehler.getUnterzaehlerstand() + + " gehört zu Verbraucher " + nochEinZaehler.getMeinVerbraucher().getName()); + + Unterzaehler klonUnterzaehler = null; + + try + { + klonUnterzaehler = nochEinZaehler.clone(); + } + catch(CloneNotSupportedException e) + { + System.out.println("Fehler"); + } + + System.out.println("Geklonter Unterzähler: Zählerstand = " + klonUnterzaehler.getZaehlerstand() + + " Unterzählerstand: " + klonUnterzaehler.getUnterzaehlerstand() + + " gehört zu Verbraucher " + klonUnterzaehler.getMeinVerbraucher().getName()); + } +} diff --git a/übung2/.project b/übung2/.project index bd5f8fb..6919c55 100644 --- a/übung2/.project +++ b/übung2/.project @@ -1,6 +1,6 @@ - übung2 + Mein_git