diff --git a/Exercises/Testat1/Aufgabe2/Employee.java b/Exercises/Testat1/Aufgabe2/Employee.java index 0070f97..6ca0bf5 100644 --- a/Exercises/Testat1/Aufgabe2/Employee.java +++ b/Exercises/Testat1/Aufgabe2/Employee.java @@ -12,6 +12,6 @@ public class Employee extends Person{ @Override public String toString() { - return super.toString() + ", salary= " + salary; + return super.toString() + ", salary=" + salary; } } diff --git a/Exercises/Testat1/Aufgabe2/Main.java b/Exercises/Testat1/Aufgabe2/Main.java index 3b20fc3..b6eb38d 100644 --- a/Exercises/Testat1/Aufgabe2/Main.java +++ b/Exercises/Testat1/Aufgabe2/Main.java @@ -1,7 +1,63 @@ package Testat1.Aufgabe2; + +import java.io.FileReader; +import java.io.LineNumberReader; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; + public class Main { public static void main(String[] args) { + ArrayList people = new ArrayList<>(); + try (LineNumberReader reader = new LineNumberReader(new FileReader("Exercises/Testat1/Aufgabe2/people"))){ + String line; + boolean isOddLine = true; + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy"); + while((line = reader.readLine()) != null) { + if(isOddLine) { + String[] parts = line.split("\\s+"); + LocalDate date = LocalDate.parse(parts[1], formatter); + String name = parts[2]; + int age = Integer.parseInt(parts[3]); + double size = Double.parseDouble(parts[4].replace(',', '.')); + if(parts[0].equals("Person")) { + people.add(new Person(date, name, age, size)); + } + else if(parts[0].equals("Student")) { + String subject = parts[5]; + people.add(new Student(date, name, age, size, subject)); + } + else if(parts[0].equals("Employee")) { + double salary = Double.parseDouble(parts[5]); + people.add(new Employee(date, name, age, size, salary)); + } + else if(parts[0].equals("Teacher")) { + String field = parts[5]; + people.add(new Teacher(date, name, age, size, field)); + } + + } + isOddLine = !isOddLine; + } + } catch (Exception e) { + e.printStackTrace(); + } + for (Person person : people) { + System.out.println(person.toString()); + } + System.out.printf("Durchschnittsalter: %s\n", Main.durchschnittRechner(people)); } + public static double durchschnittRechner (ArrayList people) { + if(people.isEmpty() || people == null) { + return 0.0; + } + int summe = 0; + for (Person person : people) { + summe = summe + person.getAge(); + } + return (double) summe/people.size(); + } + } diff --git a/Exercises/Testat1/Aufgabe2/Person.java b/Exercises/Testat1/Aufgabe2/Person.java index 1595942..ae26d3c 100644 --- a/Exercises/Testat1/Aufgabe2/Person.java +++ b/Exercises/Testat1/Aufgabe2/Person.java @@ -17,9 +17,10 @@ public class Person { @Override public String toString() { - return "Person: dateOfEm=" + dateOfEm + ", name=" + name + ", age=" + age + ", size=" + size; + return getClass().getName().split("\\.")[2] + ": dateOfEm=" + dateOfEm + ", name=" + name + ", age=" + age + ", size=" + size; } public int getAge() { + return age; } diff --git a/Exercises/Testat1/Aufgabe2/Teacher.java b/Exercises/Testat1/Aufgabe2/Teacher.java index 7fe9353..0cf5eec 100644 --- a/Exercises/Testat1/Aufgabe2/Teacher.java +++ b/Exercises/Testat1/Aufgabe2/Teacher.java @@ -10,6 +10,6 @@ public class Teacher extends Person{ this.fach = fach; } public String toString() { - return super.toString() + ", fach" + fach; + return super.toString() + ", fach=" + fach; } } diff --git a/Exercises/Testat1/Aufgabe2/people b/Exercises/Testat1/Aufgabe2/people index 6adfbfb..25434f0 100644 --- a/Exercises/Testat1/Aufgabe2/people +++ b/Exercises/Testat1/Aufgabe2/people @@ -1,6 +1,6 @@ -Person 15.05.2017 Max 25 1.75 +Person 15.05.2017 Max 25 1.75 xxxxxxxxxxxxxxxxxxxx -Student 12.09.2020 Lisa 20 1.60 Physics +Student 12.09.2020 Lisa 20 1.60 Physics xxxxxxxxxxxxxxxxxxxx Employee 04.04.2010 John 30 1.80 50000 yyyyyyyyyyyyyyyyyyyy diff --git a/Exercises/Testat1/Tutor_Aufgaben/Aufgabenstellungen b/Exercises/Testat1/Tutor_Aufgaben/Aufgabenstellungen index 57fc806..7952884 100644 --- a/Exercises/Testat1/Tutor_Aufgaben/Aufgabenstellungen +++ b/Exercises/Testat1/Tutor_Aufgaben/Aufgabenstellungen @@ -13,9 +13,11 @@ Testen Sie, ob Ihre Implementierung korrekt funktioniert, indem Sie die vorhande Damit die Tests laufen können, müssen Sie die Kommentarzeichen entfernen. 3. BufferedWriter/Reader: -Schreiben Sie die Datei Mondnacht.txt per BufferedWriter in Java und Lesen Sie die Datei Mondnacht.txt zeilenweise ein und geben +Schreiben Sie die Datei Mondnacht.txt per BufferedWriter in Java und +Lesen Sie die Datei Mondnacht.txt zeilenweise ein und geben Sie die Zeilen mit einer fortlaufenden Zeilennummer wieder aus. -Dazu soll noch die Anzahl der Wörter, Buchstaben und Zeilen am Ende ausgegeben werden. Verwenden Sie hierzu einen BufferedReader. +Dazu soll noch die Anzahl der Wörter, Buchstaben und Zeilen am Ende ausgegeben werden. +Verwenden Sie hierzu einen BufferedReader. 4. Serialisierung: Serialisieren Sie die Klasse Produkt und testen Sie ob die Serialisierung funktioniert hat. diff --git a/Exercises/Testat1/Tutor_Aufgaben/Buffered/Buffered.java b/Exercises/Testat1/Tutor_Aufgaben/Buffered/Buffered.java new file mode 100644 index 0000000..1e3350d --- /dev/null +++ b/Exercises/Testat1/Tutor_Aufgaben/Buffered/Buffered.java @@ -0,0 +1,40 @@ +package Testat1.Tutor_Aufgaben.Buffered; + +import java.io.BufferedWriter; +import java.io.FileWriter; + +public class Buffered { + public static void main(String[] args) { + String[] data = { + "Mondnacht", + "Es war, als hätt' der Himmel", + "Die Erde still geküsst,", + "Dass sie im Blütenschimmer", + "Von ihm nun träumen müsst."}; + int linesNum = data.length; + int wordsNum = 0; + int charsNum = 0; + for (String line : data) { + String[] words = line.split("\\s+"); + wordsNum += words.length; + for (String word : words) { + charsNum += word.length(); + } + } + System.out.println("Anzahl der Wörter: " + wordsNum); + System.out.println("Anzahl der Buchstaben: " + charsNum); + System.out.println("Anzahl der Zeilen: " + linesNum); + } + public void write (String[] lines, String data) { + try(BufferedWriter writer = new BufferedWriter(new FileWriter(data))){ + + for (String line : lines) { + writer.write(line); + writer.newLine(); + } + }catch(Exception e) { + e.printStackTrace(); + } + + } +} diff --git a/Exercises/Testat1/Tutor_Aufgaben/Clone/AlienCloneTest.java b/Exercises/Testat1/Tutor_Aufgaben/Clone/AlienCloneTest.java index 73a6158..fc6823f 100644 --- a/Exercises/Testat1/Tutor_Aufgaben/Clone/AlienCloneTest.java +++ b/Exercises/Testat1/Tutor_Aufgaben/Clone/AlienCloneTest.java @@ -6,6 +6,8 @@ import static org.junit.jupiter.api.Assertions.assertNotSame; import org.junit.jupiter.api.Test; +import Lernen.Person; + /** * Test für die Clone-Methoden. */ @@ -20,7 +22,7 @@ public class AlienCloneTest { @Test void testClone() throws CloneNotSupportedException { // TODO: Einkommentieren (strg+shift+c) - Raumanzug r1 = new Raumanzug(); + Raumanzug r1 = new Raumanzug(new Person()); Alien a1 = new Alien("Predator", r1); Alien a2 = (Alien) a1.clone(); diff --git a/Exercises/Testat1/Tutor_Aufgaben/Clone/Raumanzug.java b/Exercises/Testat1/Tutor_Aufgaben/Clone/Raumanzug.java index 60720b7..8c7088e 100644 --- a/Exercises/Testat1/Tutor_Aufgaben/Clone/Raumanzug.java +++ b/Exercises/Testat1/Tutor_Aufgaben/Clone/Raumanzug.java @@ -2,6 +2,8 @@ package Testat1.Tutor_Aufgaben.Clone; import java.io.Serializable; +import Lernen.Person; + /** * Ein Raumanzug. */ @@ -11,12 +13,13 @@ import java.io.Serializable; * Sauerstoffvorrat, der noch im Raumanzug ist. */ private double sauerstoffVorrat; - + private Person person; /** * Ertzeugt einen neuen Raumanzug. */ - public Raumanzug() { + public Raumanzug(Person person) { sauerstoffVorrat = Math.random(); + this.person = person; } /** @@ -27,7 +30,9 @@ import java.io.Serializable; public double getSauerstoffVorrat() { return sauerstoffVorrat; } - + public Person getPerson() { + return person; + } /** * Tankt den Anzug auf. */ @@ -70,8 +75,10 @@ import java.io.Serializable; return Double.doubleToLongBits(sauerstoffVorrat) == Double.doubleToLongBits(other.sauerstoffVorrat); } + public Raumanzug clone() throws CloneNotSupportedException { Raumanzug r = (Raumanzug) super.clone(); + r.person = (Person) this.person.clone(); return r; } diff --git a/Exercises/Testat1/Tutor_Aufgaben/DateFormatter/DateConverter.java b/Exercises/Testat1/Tutor_Aufgaben/DateFormatter/DateConverter.java new file mode 100644 index 0000000..39595a7 --- /dev/null +++ b/Exercises/Testat1/Tutor_Aufgaben/DateFormatter/DateConverter.java @@ -0,0 +1,27 @@ +package Testat1.Tutor_Aufgaben.DateFormatter; + + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +public class DateConverter { + public static String convertDate(String inputDate) { + + DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy"); + + DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + + LocalDate date = LocalDate.parse(inputDate, inputFormatter); + + + String formattedDate = date.format(outputFormatter); + + return formattedDate; + } + + public static void main(String[] args) { + String inputDate = "20.04.2024"; + String convertedDate = convertDate(inputDate); + System.out.println("Konvertiertes Datum: " + convertedDate); + } +} diff --git a/Exercises/Testat1/Tutor_Aufgaben/Serialisierung/Main.java b/Exercises/Testat1/Tutor_Aufgaben/Serialisierung/Main.java index 9b669cd..105c986 100644 --- a/Exercises/Testat1/Tutor_Aufgaben/Serialisierung/Main.java +++ b/Exercises/Testat1/Tutor_Aufgaben/Serialisierung/Main.java @@ -10,22 +10,26 @@ public class Main { public static void main(String[] args) { // Erstelle ein Produkt Product product = new Product("Handy", "ruft an", 299.99); - + Product product2 = new Product("fdfl", "dfd", 34); // Dateiname für die Serialisierung String dateiname = "serializedProduct.xml"; // Serialisierung Main.serialize(product, dateiname); + Main.serialize(product2, dateiname); // Deserialisierung und Ausgabe Product decodedProduct = Main.deserialize(product, dateiname); + Product decodedProduct1 = Main.deserialize(product2, dateiname); System.out.printf("Name: %s\nDes: %s\nPrice: %s", decodedProduct.getName(),decodedProduct.getDescription(),decodedProduct.getPrice()); + System.out.printf("Name: %s\nDes: %s\nPrice: %s", decodedProduct1.getName(),decodedProduct1.getDescription(),decodedProduct1.getPrice()); } // Methode zur Serialisierung eines Produkts public static void serialize (Product product, String dateiname) { try (XMLEncoder encoder = new XMLEncoder(new FileOutputStream(dateiname))){ encoder.writeObject(product); + } catch (IOException e) { e.printStackTrace(); } diff --git a/Lernen/CloneMitArrayList.java b/Lernen/CloneMitArrayList.java new file mode 100644 index 0000000..49cbd18 --- /dev/null +++ b/Lernen/CloneMitArrayList.java @@ -0,0 +1,70 @@ +package Lernen; + +import java.util.ArrayList; + +import Testat1.Tutor_Aufgaben.Clone.Raumanzug; + +class Person1 implements Cloneable { + private String name; + private ArrayList hobbies; + private Raumanzug raumanzug; + + public Person1(String name, ArrayList hobbies, Raumanzug raumanzug) { + this.name = name; + this.hobbies = hobbies; + this.raumanzug = raumanzug; + } + + // Override clone method to provide deep copy + @Override + public Object clone() throws CloneNotSupportedException { + Person1 cloned = (Person1) super.clone(); + // Deep copy the ArrayList + cloned.hobbies = (ArrayList) this.hobbies.clone(); + cloned.raumanzug = (Raumanzug) this.raumanzug.clone(); + return cloned; + } + + public ArrayList getHobbies(){ + return hobbies; + } + public Raumanzug getAnzug() { + return raumanzug; + } + + @Override + public String toString() { + return "Person{" + + "name='" + name + '\'' + + ", hobbies=" + hobbies + + '}'; + } +} + +public class CloneMitArrayList { + public static void main(String[] args) { + ArrayList hobbies = new ArrayList<>(); + hobbies.add("Reading"); + hobbies.add("Swimming"); + + Person1 original = new Person1("Alice", hobbies, new Raumanzug(new Person("amin", "samin", 33))); + + try { + Person1 cloned = (Person1) original.clone(); + + // Modify the hobbies list in the cloned object + cloned.getHobbies().add("Hiking"); + cloned.getAnzug().setSauerstoffVorrat(3.0); + cloned.getAnzug().getPerson().setName("samir"); + System.out.println("Original: " + original); + System.out.println(original.getAnzug().getSauerstoffVorrat()); + System.out.println(original.getAnzug().getPerson().getName()); + System.out.println("Cloned: " + cloned); + System.out.println(cloned.getAnzug().getSauerstoffVorrat()); + System.out.println(cloned.getAnzug().getPerson().getName()); + } catch (CloneNotSupportedException e) { + e.printStackTrace(); + } + } +} + diff --git a/Lernen/DemoSeekMethode.java b/Lernen/DemoSeekMethode.java new file mode 100644 index 0000000..42ce4a6 --- /dev/null +++ b/Lernen/DemoSeekMethode.java @@ -0,0 +1,27 @@ +package Lernen; +import java.io.*; +import java.util.Arrays; +public class DemoSeekMethode { + public static void main(String[] args) { + // Datei erstellen und Daten schreiben + try (RandomAccessFile file = new RandomAccessFile("example.txt", "rw")) { + // Daten in die Datei schreiben + file.writeBytes("Dies ist ein Beispieltext."); + int laenge = "Dies ist ein Beispieltext.".length(); + System.out.println(laenge); + // Den Dateizeiger (Cursor) auf eine bestimmte Position setzen + file.seek(0); // Cursor auf die 11. Position setzen (Positionen beginnen bei 0) + + // Daten lesen + byte[] buffer = new byte[26]; // Puffer zum Lesen der Daten + file.read(buffer); // Daten von der aktuellen Position in den Puffer lesen + + // Daten in eine Zeichenkette konvertieren und ausgeben + String text = new String(buffer); + System.out.println(text); + System.out.println(file.length()); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/Lernen/ObjectInputOutputStreamEx.java b/Lernen/ObjectInputOutputStreamEx.java index 23a3457..f9d0c2d 100644 --- a/Lernen/ObjectInputOutputStreamEx.java +++ b/Lernen/ObjectInputOutputStreamEx.java @@ -11,7 +11,7 @@ public class ObjectInputOutputStreamEx { public static void main(String[] args) { String DateiName = "test1.txt"; - Alien a1 = new Alien ("sfei", new Raumanzug()); + Alien a1 = new Alien ("sfei", new Raumanzug(new Person())); Alien a2 = a1; Raumanzug r1 = a1.getAnzug(); diff --git a/Lernen/Person.java b/Lernen/Person.java index f33ff29..76beee4 100644 --- a/Lernen/Person.java +++ b/Lernen/Person.java @@ -1,6 +1,6 @@ package Lernen; -public class Person { +public class Person implements Cloneable{ private String name; private String vorname; private int alter; @@ -32,7 +32,10 @@ public class Person { public int getAlter() { return alter; } - + public Person clone() throws CloneNotSupportedException{ + Person p = (Person) super.clone(); + return p; + } public void setAlter(int alter) { this.alter = alter; } diff --git a/Lernen/Test.java b/Lernen/Test.java index 85552cf..db08768 100644 --- a/Lernen/Test.java +++ b/Lernen/Test.java @@ -6,17 +6,17 @@ import Testat1.Tutor_Aufgaben.Clone.Raumanzug; public class Test { public static void main(String[] args) throws CloneNotSupportedException { - Alien a1 = new Alien("Sirat", new Raumanzug()); - Raumanzug r = a1.getAnzug(); - r.auftanken(); - System.out.println(r); + Alien a1 = new Alien("Sirat", new Raumanzug(new Person())); + Raumanzug r1 = a1.getAnzug(); + r1.auftanken(); + System.out.println(r1); System.out.println(a1.toString()); Alien a2 = a1.clone(); Raumanzug r2 = a2.getAnzug(); r2.setSauerstoffVorrat(2); - System.out.println(a2.getAnzug()); - System.out.println(r); + System.out.println(r2); + System.out.println(r1); System.out.println(a2.toString()); } diff --git a/Lernen/WordCounter.java b/Lernen/WordCounter.java new file mode 100644 index 0000000..a3fe0c6 --- /dev/null +++ b/Lernen/WordCounter.java @@ -0,0 +1,95 @@ +package Lernen; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.*; + +public class WordCounter { + public static void main(String[] args) { + // Dateipfad zur gedichte.txt + String filePath = "gedichte.txt"; + + // TreeMap zur Speicherung der Wörter und ihrer Häufigkeiten + TreeMap wordCountMap = new TreeMap<>(); + + // Zähle die Wörter in der Datei und finde das längste Wort + int longestWordLength = countWords(filePath, wordCountMap); + + // Sortiere die TreeMap nach den Häufigkeiten + List> sortedWordList = new ArrayList<>(wordCountMap.entrySet()); + sortedWordList.sort(Map.Entry.comparingByValue(Collections.reverseOrder())); + + // Gib die Wörter und ihre Häufigkeiten aus + System.out.println("Wortauflistung:"); + for (Map.Entry entry : sortedWordList) { + System.out.println("'" + entry.getKey() + "' kommt " + entry.getValue() + "-mal vor"); + } + + // Gib die Anzahl der verschiedenen Wörter aus + System.out.println("Es sind " + wordCountMap.size() + " verschiedene Worte"); + + // Gib das häufigste Wort aus + System.out.println("Das häufigste Wort ist '" + sortedWordList.get(0).getKey() + "', es kommt " + + sortedWordList.get(0).getValue() + "-mal vor"); + + // Gib das längste Wort aus + System.out.println("Das längste Wort hat eine Länge von " + longestWordLength + " Zeichen"); + } + + public static int countWords(String filePath, TreeMap wordCountMap) { + int longestWordLength = Integer.MIN_VALUE; // Initialisiere mit dem kleinsten möglichen Wert + + try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) { + String line; + while ((line = reader.readLine()) != null) { + String[] words = line.split("\\s+"); + for (String word : words) { + word = word.toLowerCase().replaceAll("[^a-zA-ZäöüÄÖÜß]", ""); // Entferne Sonderzeichen + if (!word.isEmpty()) { + wordCountMap.put(word, wordCountMap.getOrDefault(word, 0) + 1); + longestWordLength = Math.max(longestWordLength, word.length()); // Aktualisiere die maximale Wortlänge + } + } + } + } catch (IOException e) { + e.printStackTrace(); + } + + return longestWordLength; + } +} +//Ohne Sortierung +//Dateipfad zur gedichte.txt +/*String filePath = "gedichte.txt"; + +// HashMap zur Speicherung der Wörter und ihrer Häufigkeiten +HashMap wordCountMap = new HashMap<>(); + +// Zähle die Wörter in der Datei und finde das längste Wort +int longestWordLength = countWords(filePath, wordCountMap); + +// Gib die Wörter und ihre Häufigkeiten aus +System.out.println("Wortauflistung:"); +for (String word : wordCountMap.keySet()) { + int count = wordCountMap.get(word); + System.out.println("'" + word + "' kommt " + count + "-mal vor"); +} + +// Gib die Anzahl der verschiedenen Wörter aus +System.out.println("Es sind " + wordCountMap.size() + " verschiedene Worte"); + +// Gib das häufigste Wort aus +String mostFrequentWord = ""; +int maxFrequency = 0; +for (String word : wordCountMap.keySet()) { + int count = wordCountMap.get(word); + if (count > maxFrequency) { + maxFrequency = count; + mostFrequentWord = word; + } +} +System.out.println("Das häufigste Wort ist '" + mostFrequentWord + "', es kommt " + maxFrequency + "-mal vor"); + +// Gib das längste Wort aus +System.out.println("Das längste Wort hat eine Länge von " + longestWordLength + " Zeichen");*/ \ No newline at end of file diff --git a/Moodle_Uebungen/Uebung3_Buchungen/Buchung.java b/Moodle_Uebungen/Uebung3_Buchungen/Buchung.java index cc682be..614f1a2 100644 --- a/Moodle_Uebungen/Uebung3_Buchungen/Buchung.java +++ b/Moodle_Uebungen/Uebung3_Buchungen/Buchung.java @@ -1,15 +1,15 @@ package Uebung3_Buchungen; -import java.util.Date; +import java.time.LocalDate; public class Buchung { int buchungsnummer; - Date Buchungsdatum; + LocalDate Buchungsdatum; String buchungskonto; private double buchungsbetrag; - private Buchung(int buchungsnummer, Date buchungsdatum, String buchungskonto, double buchungsbetrag) { + public Buchung(int buchungsnummer, LocalDate buchungsdatum, String buchungskonto, double buchungsbetrag) { this.buchungsnummer = buchungsnummer; Buchungsdatum = buchungsdatum; this.buchungskonto = buchungskonto; diff --git a/Moodle_Uebungen/Uebung3_Buchungen/BuchungenAufgabe.java b/Moodle_Uebungen/Uebung3_Buchungen/BuchungenAufgabe.java index 88000d3..660034b 100644 --- a/Moodle_Uebungen/Uebung3_Buchungen/BuchungenAufgabe.java +++ b/Moodle_Uebungen/Uebung3_Buchungen/BuchungenAufgabe.java @@ -1,40 +1,47 @@ package Uebung3_Buchungen; import java.io.BufferedReader; +import java.io.FileNotFoundException; import java.io.FileReader; +import java.io.IOException; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Arrays; -import java.util.Date; -import java.util.List; public class BuchungenAufgabe { - public static void main(String[] args) { + public static void main(String[] args) throws FileNotFoundException, IOException { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy"); + ArrayList under1000 = new ArrayList<>(); + ArrayList over1000 = new ArrayList<>(); - ArrayList overEqual100 = new ArrayList<>(); - ArrayList lessEqual100 = new ArrayList<>(); - String dateiName = "buchungen.text"; - try (BufferedReader reader = new BufferedReader(new FileReader(dateiName))){ + try(BufferedReader reader = new BufferedReader(new FileReader("buchungen2.text"))){ String line; - while (( line = reader.readLine()) != null) { -// String[] split1 = line.split("\""); -// String [] split2 = split1[0].split(" "); -// String [] zsm = {split2[0], split2[1], split1[1], split1[2]}; - // Buchung buchung = new Buchung("..."); - ArrayList data = splitIgnoringQuotes(line); - if (Double.parseDouble(data.get(3)) < 1000) { - lessEqual100.add(data); - }else { - overEqual100.add(data); + while((line = reader.readLine()) != null){ + String[] parts = line.split("\""); + String[] numsParts = parts[0].split("\\s+"); + int bnummer = Integer.parseInt(numsParts[0]); + LocalDate date = LocalDate.parse(numsParts[1], formatter); + String name = parts[2]; + double value = Double.parseDouble(parts[2]); + + if(value >= 1000.00) { + over1000.add(new Buchung(bnummer, date, name, value)); + }else if(value < 1000.00) { + under1000.add(new Buchung(bnummer, date, name, value)); } } - - - } catch (Exception e) { - e.printStackTrace(); - } - for (ArrayList arrayList : lessEqual100) { - System.out.println(arrayList.toString()); + double gesammtSumme = 0.0; + for ( Buchung buchung : under1000) { + System.out.println(buchung.toString()); + gesammtSumme += buchung.getBuchungsbetrag(); + } + for ( Buchung buchung : over1000) { + System.out.println(buchung.toString()); + gesammtSumme += buchung.getBuchungsbetrag(); + } + System.out.println("Gesammte Summe: " + gesammtSumme); } } public static ArrayList splitIgnoringQuotes(String input) { diff --git a/Moodle_Uebungen/Uebung3_Buchungen/Reader.java b/Moodle_Uebungen/Uebung3_Buchungen/Reader.java deleted file mode 100644 index 7de6bf3..0000000 --- a/Moodle_Uebungen/Uebung3_Buchungen/Reader.java +++ /dev/null @@ -1,63 +0,0 @@ -package Uebung3_Buchungen; - -import java.io.BufferedReader; -import java.io.FileReader; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; - -public class Reader { - - public static void main(String[] args) { - int buchungsnummer; - Date Buchungsdatum; - String buchungskonto; - double buchungsbetrag; - ArrayList overEqual100 = new ArrayList<>(); - ArrayList lessEqual100 = new ArrayList<>(); - String dateiName = "buchungen.text"; - try (BufferedReader reader = new BufferedReader(new FileReader(dateiName))){ - String line; - while (( line = reader.readLine()) != null) { - ArrayList data = splitIgnoringQuotes(line); - if (Double.parseDouble(data.get(3)) < 1000) { - lessEqual100.add(data); - }else { - overEqual100.add(data); - } - } - - - } catch (Exception e) { - e.printStackTrace(); - } - for (ArrayList arrayList : lessEqual100) { - System.out.println(arrayList.toString()); - } - } - public static ArrayList splitIgnoringQuotes(String input) { - ArrayList parts = new ArrayList<>(); - StringBuilder sb = new StringBuilder(); - boolean insideQuotes = false; - - for (char c : input.toCharArray()) { - if (c == '\"') { - insideQuotes = !insideQuotes; - } else if (c == ' ' && !insideQuotes) { - parts.add(sb.toString()); - sb.setLength(0); - } else { - sb.append(c); - } - } - - if (sb.length() > 0) { - parts.add(sb.toString()); - } - - return parts; - } -} - - diff --git a/bin/.gitignore b/bin/.gitignore index cc72566..8ce2e9c 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -1,11 +1,7 @@ -/.classpath -/.project -/Testat1/ -/buchungen.text -/test.txt +/Collection/ +/Generics_Grundlagen/ /Lernen/ +/Testat1/ /Uebung1_Vererbung/ /Uebung2_IO/ /Uebung3_Buchungen/ -/Generics_Grundlagen/ -/Collection/ diff --git a/bin/Lernen/ObjectInputOutputStreamEx.class b/bin/Lernen/ObjectInputOutputStreamEx.class index 4627cac..0b7e40f 100644 Binary files a/bin/Lernen/ObjectInputOutputStreamEx.class and b/bin/Lernen/ObjectInputOutputStreamEx.class differ diff --git a/bin/Lernen/Person.class b/bin/Lernen/Person.class index 069cb77..eae165b 100644 Binary files a/bin/Lernen/Person.class and b/bin/Lernen/Person.class differ diff --git a/bin/Lernen/Test.class b/bin/Lernen/Test.class index 356f581..32f415f 100644 Binary files a/bin/Lernen/Test.class and b/bin/Lernen/Test.class differ diff --git a/bin/Testat1/Aufgabe2/Employee.class b/bin/Testat1/Aufgabe2/Employee.class index 72b4179..95ed9a4 100644 Binary files a/bin/Testat1/Aufgabe2/Employee.class and b/bin/Testat1/Aufgabe2/Employee.class differ diff --git a/bin/Testat1/Aufgabe2/Main.class b/bin/Testat1/Aufgabe2/Main.class index 9ac3765..381f32d 100644 Binary files a/bin/Testat1/Aufgabe2/Main.class and b/bin/Testat1/Aufgabe2/Main.class differ diff --git a/bin/Testat1/Aufgabe2/Person.class b/bin/Testat1/Aufgabe2/Person.class index 0b90546..703a012 100644 Binary files a/bin/Testat1/Aufgabe2/Person.class and b/bin/Testat1/Aufgabe2/Person.class differ diff --git a/bin/Testat1/Aufgabe2/Teacher.class b/bin/Testat1/Aufgabe2/Teacher.class index 468bc1e..1b492f6 100644 Binary files a/bin/Testat1/Aufgabe2/Teacher.class and b/bin/Testat1/Aufgabe2/Teacher.class differ diff --git a/bin/Testat1/Aufgabe2/people b/bin/Testat1/Aufgabe2/people index 6adfbfb..25434f0 100644 --- a/bin/Testat1/Aufgabe2/people +++ b/bin/Testat1/Aufgabe2/people @@ -1,6 +1,6 @@ -Person 15.05.2017 Max 25 1.75 +Person 15.05.2017 Max 25 1.75 xxxxxxxxxxxxxxxxxxxx -Student 12.09.2020 Lisa 20 1.60 Physics +Student 12.09.2020 Lisa 20 1.60 Physics xxxxxxxxxxxxxxxxxxxx Employee 04.04.2010 John 30 1.80 50000 yyyyyyyyyyyyyyyyyyyy diff --git a/bin/Testat1/Tutor_Aufgaben/Aufgabenstellungen b/bin/Testat1/Tutor_Aufgaben/Aufgabenstellungen index 57fc806..7952884 100644 --- a/bin/Testat1/Tutor_Aufgaben/Aufgabenstellungen +++ b/bin/Testat1/Tutor_Aufgaben/Aufgabenstellungen @@ -13,9 +13,11 @@ Testen Sie, ob Ihre Implementierung korrekt funktioniert, indem Sie die vorhande Damit die Tests laufen können, müssen Sie die Kommentarzeichen entfernen. 3. BufferedWriter/Reader: -Schreiben Sie die Datei Mondnacht.txt per BufferedWriter in Java und Lesen Sie die Datei Mondnacht.txt zeilenweise ein und geben +Schreiben Sie die Datei Mondnacht.txt per BufferedWriter in Java und +Lesen Sie die Datei Mondnacht.txt zeilenweise ein und geben Sie die Zeilen mit einer fortlaufenden Zeilennummer wieder aus. -Dazu soll noch die Anzahl der Wörter, Buchstaben und Zeilen am Ende ausgegeben werden. Verwenden Sie hierzu einen BufferedReader. +Dazu soll noch die Anzahl der Wörter, Buchstaben und Zeilen am Ende ausgegeben werden. +Verwenden Sie hierzu einen BufferedReader. 4. Serialisierung: Serialisieren Sie die Klasse Produkt und testen Sie ob die Serialisierung funktioniert hat. diff --git a/bin/Testat1/Tutor_Aufgaben/Clone/AlienCloneTest.class b/bin/Testat1/Tutor_Aufgaben/Clone/AlienCloneTest.class index 7973070..ced5288 100644 Binary files a/bin/Testat1/Tutor_Aufgaben/Clone/AlienCloneTest.class and b/bin/Testat1/Tutor_Aufgaben/Clone/AlienCloneTest.class differ diff --git a/bin/Testat1/Tutor_Aufgaben/Clone/Raumanzug.class b/bin/Testat1/Tutor_Aufgaben/Clone/Raumanzug.class index a6ef246..57ed587 100644 Binary files a/bin/Testat1/Tutor_Aufgaben/Clone/Raumanzug.class and b/bin/Testat1/Tutor_Aufgaben/Clone/Raumanzug.class differ diff --git a/bin/Testat1/Tutor_Aufgaben/Serialisierung/Main.class b/bin/Testat1/Tutor_Aufgaben/Serialisierung/Main.class index 4744fc0..c783b1d 100644 Binary files a/bin/Testat1/Tutor_Aufgaben/Serialisierung/Main.class and b/bin/Testat1/Tutor_Aufgaben/Serialisierung/Main.class differ diff --git a/bin/Uebung3_Buchungen/Buchung.class b/bin/Uebung3_Buchungen/Buchung.class index 7720b4a..9a8a2ff 100644 Binary files a/bin/Uebung3_Buchungen/Buchung.class and b/bin/Uebung3_Buchungen/Buchung.class differ diff --git a/bin/Uebung3_Buchungen/BuchungenAufgabe.class b/bin/Uebung3_Buchungen/BuchungenAufgabe.class index 10539c7..7df7d56 100644 Binary files a/bin/Uebung3_Buchungen/BuchungenAufgabe.class and b/bin/Uebung3_Buchungen/BuchungenAufgabe.class differ diff --git a/bin/Uebung3_Buchungen/Reader.class b/bin/Uebung3_Buchungen/Reader.class deleted file mode 100644 index 34ec5e4..0000000 Binary files a/bin/Uebung3_Buchungen/Reader.class and /dev/null differ diff --git a/bin/buchungen2.text b/bin/buchungen2.text new file mode 100644 index 0000000..b64acdc --- /dev/null +++ b/bin/buchungen2.text @@ -0,0 +1,7 @@ +1 22.03.2024 "Einzahlung" 1000.00 +2 22.03.2024 "Einzahlung" 50.00 +3 23.03.2024 "Einkauf Edeka" -45.45 +4 24.03.2024 "Gehalt" 1200.00 +5 31.03.2024 "Mietzins Wohnung" -1100.00 +6 31.03.2024 "Nebenkostenpauschale Wohnung" -250.00 +7 04.04.2024 "Einkauf Netto" 42.02 diff --git a/bin/gedichte.txt b/bin/gedichte.txt new file mode 100644 index 0000000..cfab7ed --- /dev/null +++ b/bin/gedichte.txt @@ -0,0 +1,145 @@ +die zwei gesellen + +es zogen zwei ruestge gesellen +zum erstenmal von haus +so jubelnd recht in die hellen +klingenden singenden wellen +des vollen fruehlings hinaus + +die strebten nach hohen dingen +die wollten trotz lust und schmerz +was rechts in der welt vollbringen +und wem sie voruebergingen +dem lachten sinn und herz + +der erste der fand ein liebchen +die schwieger kauft hof und haus +der wiegte gar bald ein buebchen +und sah aus heimlichem stuebchen +behaglich ins feld hinaus + +dem zweiten sangen und logen +die tausend stimmen im grund +verlockend sirenen und zogen +ihn in der buhlenden wogen +farbig klingenden schlund + +und wie er auftaucht vom schlunde +da war er muede und alt +sein schifflein das lag im grunde +so still wars rings in der runde +und ueber die wasser wehts kalt + +es singen und klingen die wellen +des fruehlings wohl ueber mir +und seh ich so kecke gesellen +die traenen im auge mir schwellen +ach gott fuehr mich liebreich zu dir + + + + +mondnacht + +es war als haett der himmel +die erde still gekuesst +dass sie im bluetenschimmer +von ihm nun traeumen muesst + +die luft ging durch die felder +die aehren wogten sacht +es rauschten leis die waelder +so sternklar war die nacht + +und meine seele spannte +weit ihre fluegel aus +flog durch die stillen lande +als floege sie nach haus + + + +die loreley + +ich weiss nicht was soll es bedeuten +dass ich so traurig bin +ein maerchen aus alten zeiten +das kommt mir nicht aus dem sinn + +die luft ist kuehl und es dunkelt +und ruhig fliesst der rhein +der gipfel des berges funkelt +im abendsonnenschein + +die schoenste jungfrau sitzet +dort oben wunderbar +ihr goldnes geschmeide blitzet +sie kaemmt ihr goldenes haar + +sie kaemmt es mit goldenem kamme +und singt ein lied dabei +das hat eine wundersame +gewaltige melodei + +den schiffer im kleinen schiffe +ergreift es mit wildem weh +er schaut nicht die felsenriffe +er schaut nur hinauf in die hoeh + +ich glaube die wellen verschlingen +am ende schiffer und kahn +und das hat mit ihrem singen +die loreley getan + + + +nachtgedanken + +denk ich an deutschland in der nacht +dann bin ich um den schlaf gebracht +ich kann nicht mehr die augen schliessen +und meine heissen traenen fliessen + +die jahre kommen und vergehn +seit ich die mutter nicht gesehn +zwoelf jahre sind schon hingegangen +es waechst mein sehnen und verlangen + +mein sehnen und verlangen waechst +die alte frau hat mich behext +ich denke immer an die alte +die alte frau die gott erhalte + +die alte frau hat mich so lieb +und in den briefen die sie schrieb +seh ich wie ihre hand gezittert +wie tief das mutterherz erschuettert + +die mutter liegt mir stets im sinn +zwoelf lange jahre flossen hin +zwoelf lange jahre sind verflossen +seit ich sie nicht ans herz geschlossen + +deutschland hat ewigen bestand +es ist ein kerngesundes land +mit seinen eichen seinen linden +werd ich es immer wiederfinden + +nach deutschland lechzt ich nicht so sehr +wenn nicht die mutter dorten waer +das vaterland wird nie verderben +jedoch die alte frau kann sterben + +seit ich das land verlassen hab +so viele sanken dort ins grab +die ich geliebt wenn ich sie zaehle +so will verbluten meine seele + +und zaehlen muss ich mit der zahl +schwillt immer hoeher meine qual +mir ist als waelzten sich die leichen +auf meine brust gottlob sie weichen + +gottlob durch meine fenster bricht +franzoesisch heitres tageslicht +es kommt mein weib schoen wie der morgen +und laechelt fort die deutschen sorgen \ No newline at end of file diff --git a/bin/serializedProduct.xml b/bin/serializedProduct.xml new file mode 100644 index 0000000..0aba9bf --- /dev/null +++ b/bin/serializedProduct.xml @@ -0,0 +1,14 @@ + + + + + dfd + + + fdfl + + + 34.0 + + + diff --git a/buchungen2.text b/buchungen2.text new file mode 100644 index 0000000..b64acdc --- /dev/null +++ b/buchungen2.text @@ -0,0 +1,7 @@ +1 22.03.2024 "Einzahlung" 1000.00 +2 22.03.2024 "Einzahlung" 50.00 +3 23.03.2024 "Einkauf Edeka" -45.45 +4 24.03.2024 "Gehalt" 1200.00 +5 31.03.2024 "Mietzins Wohnung" -1100.00 +6 31.03.2024 "Nebenkostenpauschale Wohnung" -250.00 +7 04.04.2024 "Einkauf Netto" 42.02 diff --git a/gedichte.txt b/gedichte.txt new file mode 100644 index 0000000..cfab7ed --- /dev/null +++ b/gedichte.txt @@ -0,0 +1,145 @@ +die zwei gesellen + +es zogen zwei ruestge gesellen +zum erstenmal von haus +so jubelnd recht in die hellen +klingenden singenden wellen +des vollen fruehlings hinaus + +die strebten nach hohen dingen +die wollten trotz lust und schmerz +was rechts in der welt vollbringen +und wem sie voruebergingen +dem lachten sinn und herz + +der erste der fand ein liebchen +die schwieger kauft hof und haus +der wiegte gar bald ein buebchen +und sah aus heimlichem stuebchen +behaglich ins feld hinaus + +dem zweiten sangen und logen +die tausend stimmen im grund +verlockend sirenen und zogen +ihn in der buhlenden wogen +farbig klingenden schlund + +und wie er auftaucht vom schlunde +da war er muede und alt +sein schifflein das lag im grunde +so still wars rings in der runde +und ueber die wasser wehts kalt + +es singen und klingen die wellen +des fruehlings wohl ueber mir +und seh ich so kecke gesellen +die traenen im auge mir schwellen +ach gott fuehr mich liebreich zu dir + + + + +mondnacht + +es war als haett der himmel +die erde still gekuesst +dass sie im bluetenschimmer +von ihm nun traeumen muesst + +die luft ging durch die felder +die aehren wogten sacht +es rauschten leis die waelder +so sternklar war die nacht + +und meine seele spannte +weit ihre fluegel aus +flog durch die stillen lande +als floege sie nach haus + + + +die loreley + +ich weiss nicht was soll es bedeuten +dass ich so traurig bin +ein maerchen aus alten zeiten +das kommt mir nicht aus dem sinn + +die luft ist kuehl und es dunkelt +und ruhig fliesst der rhein +der gipfel des berges funkelt +im abendsonnenschein + +die schoenste jungfrau sitzet +dort oben wunderbar +ihr goldnes geschmeide blitzet +sie kaemmt ihr goldenes haar + +sie kaemmt es mit goldenem kamme +und singt ein lied dabei +das hat eine wundersame +gewaltige melodei + +den schiffer im kleinen schiffe +ergreift es mit wildem weh +er schaut nicht die felsenriffe +er schaut nur hinauf in die hoeh + +ich glaube die wellen verschlingen +am ende schiffer und kahn +und das hat mit ihrem singen +die loreley getan + + + +nachtgedanken + +denk ich an deutschland in der nacht +dann bin ich um den schlaf gebracht +ich kann nicht mehr die augen schliessen +und meine heissen traenen fliessen + +die jahre kommen und vergehn +seit ich die mutter nicht gesehn +zwoelf jahre sind schon hingegangen +es waechst mein sehnen und verlangen + +mein sehnen und verlangen waechst +die alte frau hat mich behext +ich denke immer an die alte +die alte frau die gott erhalte + +die alte frau hat mich so lieb +und in den briefen die sie schrieb +seh ich wie ihre hand gezittert +wie tief das mutterherz erschuettert + +die mutter liegt mir stets im sinn +zwoelf lange jahre flossen hin +zwoelf lange jahre sind verflossen +seit ich sie nicht ans herz geschlossen + +deutschland hat ewigen bestand +es ist ein kerngesundes land +mit seinen eichen seinen linden +werd ich es immer wiederfinden + +nach deutschland lechzt ich nicht so sehr +wenn nicht die mutter dorten waer +das vaterland wird nie verderben +jedoch die alte frau kann sterben + +seit ich das land verlassen hab +so viele sanken dort ins grab +die ich geliebt wenn ich sie zaehle +so will verbluten meine seele + +und zaehlen muss ich mit der zahl +schwillt immer hoeher meine qual +mir ist als waelzten sich die leichen +auf meine brust gottlob sie weichen + +gottlob durch meine fenster bricht +franzoesisch heitres tageslicht +es kommt mein weib schoen wie der morgen +und laechelt fort die deutschen sorgen \ No newline at end of file diff --git a/serializedProduct.xml b/serializedProduct.xml new file mode 100644 index 0000000..0aba9bf --- /dev/null +++ b/serializedProduct.xml @@ -0,0 +1,14 @@ + + + + + dfd + + + fdfl + + + 34.0 + + +