Aufgabe 1 fertig!

This commit is contained in:
cmerkens 2024-05-06 23:50:11 +02:00
parent a11a03f692
commit 1313918745
8 changed files with 296 additions and 1 deletions

View File

@ -0,0 +1,12 @@
Meier
Kaiser
Hellmann
Fuchs
Hampel
Hinz
Schmidt
Andrack
Zerlett
Novincack
Ullmann
Mayer

View File

@ -0,0 +1,25 @@
72160 Horb
70179 Stuttgart
70191 Stuttgart
70192 Stuttgart
70193 Stuttgart
70195 Stuttgart
70197 Stuttgart
70199 Stuttgart
70327 Stuttgart
72070 T<>bingen
72072 T<>bingen
72074 T<>bingen
72076 T<>bingen
72181 Starzach
72182 Eutingen
72184 Eutingen
72185 Empfingen
72186 Empfingen
72186 Weiherhof
72187 V<>hringen
72189 V<>hringen
72202 Nagold
72210 Altensteig
72213 Altensteig
72218 Wildberg

View File

@ -0,0 +1,11 @@
Hauptstr.
Dorfstr.
Rosenweg
Nelkenweg
Stuttgarter Str.
Ulmer Str.
Freiburger Str.
M<EFBFBD>nchner Str.
Goetheweg
Beethovenallee
Schillerstr.

View File

@ -0,0 +1,10 @@
Frank
Steffi
Uschi
Carola
Susanne
Marion
Ingo
Stefan
Jochen
Holger

View File

@ -1,4 +1,146 @@
package Semester2;
import java.io.*;
import java.util.ArrayList;
import java.util.Random;
public class Vorlesung1 {
}
// [6 Kundennummer, 20 Nachname, 20 Vorname, 20 Straße, 5 Hausnummer, 5 PLZ, 20 Ort, int Umsatz]
private ArrayList<String> nachnamen = erstelleArrays(0);
private ArrayList<String> vornamen = erstelleArrays(1);
private ArrayList<String> strassen = erstelleArrays(2);
private ArrayList<String> plzort = erstelleArrays(3);
public Vorlesung1() {
this.nachnamen = erstelleArrays(0);
this.vornamen = erstelleArrays(1);
this.strassen = erstelleArrays(2);
this.plzort = erstelleArrays(3);
}
public static void main(String[] args) {
Vorlesung1 liste = new Vorlesung1();
try {
BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
String laenge;
System.out.println("Wie viele Testsätze: ");
laenge = eingabe.readLine();
String was;
System.out.println("Als CSV?");
was = eingabe.readLine();
if (was == "1") {
liste.mitTrennzeichen(Integer.parseInt(laenge));
} else {
liste.mitLeerzeichen(Integer.parseInt(laenge));
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
private static ArrayList<String> erstelleArrays(int index) {
ArrayList<String> rueckgabe = new ArrayList<>();
String zeile;
String[] dateien = new String[]{"C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\Nachnamen.txt",
"C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\Vornamen.txt",
"C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\Strassen.txt",
"C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\PLZOrt.txt"};
try {
BufferedReader leseQuelle = new LineNumberReader(new FileReader(dateien[index]));
while ((zeile=leseQuelle.readLine()) != null) {
rueckgabe.add(zeile);
}
leseQuelle.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
return rueckgabe;
}
private static String fuelleMitLeerzeichen(ArrayList<String> liste, int laenge) {
Random random = new Random();
String neu = liste.get(random.nextInt(liste.size()));
if (neu.length() < laenge) {
neu = neu + " ".repeat(laenge - neu.length());
}
return neu;
}
public void mitTrennzeichen(int anzahl) {
try {
BufferedWriter schreibeDatei = new BufferedWriter(new FileWriter("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\trennzeichen.txt"));
Random random = new Random();
for (int i = 0; i < anzahl; i++) {
StringBuilder fertigerEintrag = new StringBuilder();
// Kundennummer
fertigerEintrag.append(String.format("%06d", i));
fertigerEintrag.append("#");
// Nachname
fertigerEintrag.append(nachnamen.get(random.nextInt(nachnamen.size())));
fertigerEintrag.append("#");
// Vorname
fertigerEintrag.append(vornamen.get(random.nextInt(vornamen.size())));
fertigerEintrag.append("#");
// Straße
fertigerEintrag.append(strassen.get(random.nextInt(strassen.size())));
fertigerEintrag.append("#");
// Hausnummer
fertigerEintrag.append(String.format("%05d", random.nextInt(99999)));
fertigerEintrag.append("#");
// PLZ Ort
fertigerEintrag.append(plzort.get(random.nextInt(plzort.size())));
fertigerEintrag.append("#");
// Umsatz
fertigerEintrag.append(String.format("%04d", random.nextInt(500, 2000)));
fertigerEintrag.append("#");
schreibeDatei.write(fertigerEintrag.toString());
schreibeDatei.newLine();
}
schreibeDatei.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public void mitLeerzeichen(int anzahl) {
try {
BufferedWriter schreibeDatei = new BufferedWriter(new FileWriter("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\festeBreite.txt"));
Random random = new Random();
for (int i = 0; i < anzahl; i++) {
StringBuilder fertigerEintrag = new StringBuilder();
// Kundennummer
fertigerEintrag.append(String.format("%06d", i));
// Nachname
fertigerEintrag.append(fuelleMitLeerzeichen(nachnamen, 20));
// Vorname
fertigerEintrag.append(fuelleMitLeerzeichen(vornamen, 20));
// Straße
fertigerEintrag.append(fuelleMitLeerzeichen(strassen, 20));
// Hausnummer
fertigerEintrag.append(String.format("%05d", random.nextInt(99999)));
// PLZ Ort
fertigerEintrag.append(fuelleMitLeerzeichen(plzort, 25));
// Umsatz
fertigerEintrag.append(String.format("%04d", random.nextInt(500, 2000)));
schreibeDatei.write(fertigerEintrag.toString());
schreibeDatei.newLine();
}
schreibeDatei.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}

95
Semester2/test.java Normal file
View File

@ -0,0 +1,95 @@
package Semester2;
import java.io.*;
import java.util.HashMap;
public class test {
// [6 Kundennummer, 20 Nachname, 20 Vorname, 20 Straße, 5 Hausnummer, 5 PLZ, 20 Ort, int Umsatz]
public static void main (String[] args) {
try {
File festeBreite = new File("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\festeBreite.txt");
File trennzeichen = new File("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\trennzeichen.txt");
festeBreite.createNewFile();
trennzeichen.createNewFile();
} catch (Exception e) {
System.out.println(e.getMessage());
System.out.println("error");
}
HashMap<String, Integer> dateien = new HashMap<>();
dateien.put("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\Nachnamen.txt", 20);
dateien.put("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\PLZOrt.txt", 20);
dateien.put("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\Strassen.txt", 20);
dateien.put("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\Vornamen.txt", 20);
try {
// eröffne leere Temp Datei
File tempDatei = File.createTempFile("temp_", ".txt");
for (String i : dateien.keySet()) {
// eröffne Zieldatei
BufferedWriter schreibeDatei = new BufferedWriter(new FileWriter("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\festeBreite.txt"));
String zeile;
String tempzeile;
// lese Quelle und Temp aus
BufferedReader leseQuelle = new LineNumberReader(new FileReader(i));
BufferedReader leseTemp = new BufferedReader(new FileReader(tempDatei));
while ((zeile=leseQuelle.readLine()) != null) {
int laenge = zeile.length();
if (laenge <= dateien.get(i)) {
// Leerzeichen hinzufügen
zeile = mitLeerzeichen(dateien.get(i)-laenge, zeile);
// Füge Quelle und Temp zusammen in Zieldatei
if ((tempzeile=leseTemp.readLine()) != null) {
schreibeDatei.write(tempzeile+zeile);
} else {
zeile = mitLeerzeichen(dateien.get(i), zeile);
schreibeDatei.write(zeile);
}
schreibeDatei.newLine();
}
}
// Füge den Rest der Tempdatei ein
while ((tempzeile=leseTemp.readLine()) != null) {
tempzeile = mitLeerzeichen(dateien.get(i), tempzeile);
schreibeDatei.write(tempzeile);
schreibeDatei.newLine();
}
schreibeDatei.close();
leseQuelle.close();
leseTemp.close();
// Lese Zieldatei und kopiere in Temp
BufferedReader leseDatei = new BufferedReader(new FileReader("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\festeBreite.txt"));
BufferedWriter schreibeTemp = new BufferedWriter(new FileWriter(tempDatei));
while ((zeile=leseDatei.readLine()) != null) {
schreibeTemp.write(zeile);
schreibeTemp.newLine();
}
schreibeTemp.close();
leseDatei.close();
}
} catch (Exception e) {
System.out.println(e.getMessage());
System.out.println("error");
}
}
public static String mitLeerzeichen(int laenge, String daten) {
for (int i = 0; i <= laenge; i++) {
daten = daten.concat(" ");
}
return daten;
}
}