From 9423f657c4d9e1360a7b2725987a35c1a15af41f Mon Sep 17 00:00:00 2001 From: vincent Date: Mon, 13 Jan 2025 16:07:39 +0100 Subject: [PATCH] hochladen --- TodoListe/.classpath | 10 +++ TodoListe/.project | 17 ++++ TodoListe/src/Semesteraufgabe/Liste.java | 77 +++++++++++++++++++ .../Semesteraufgabe/TodoDateiSchreiber.java | 58 ++++++++++++++ TodoListe/src/Semesteraufgabe/TodoMap.java | 34 ++++++++ TodoListe/src/Semesteraufgabe/Todos.java | 75 ++++++++++++++++++ .../src/Semesteraufgabe/package-info.java | 1 + TodoListe/src/module-info.java | 8 ++ 8 files changed, 280 insertions(+) create mode 100644 TodoListe/.classpath create mode 100644 TodoListe/.project create mode 100644 TodoListe/src/Semesteraufgabe/Liste.java create mode 100644 TodoListe/src/Semesteraufgabe/TodoDateiSchreiber.java create mode 100644 TodoListe/src/Semesteraufgabe/TodoMap.java create mode 100644 TodoListe/src/Semesteraufgabe/Todos.java create mode 100644 TodoListe/src/Semesteraufgabe/package-info.java create mode 100644 TodoListe/src/module-info.java diff --git a/TodoListe/.classpath b/TodoListe/.classpath new file mode 100644 index 0000000..0880a4f --- /dev/null +++ b/TodoListe/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/TodoListe/.project b/TodoListe/.project new file mode 100644 index 0000000..fbbf165 --- /dev/null +++ b/TodoListe/.project @@ -0,0 +1,17 @@ + + + TodoListe + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/TodoListe/src/Semesteraufgabe/Liste.java b/TodoListe/src/Semesteraufgabe/Liste.java new file mode 100644 index 0000000..9de9e3d --- /dev/null +++ b/TodoListe/src/Semesteraufgabe/Liste.java @@ -0,0 +1,77 @@ +package Semesteraufgabe; + +import java.util.Scanner; + + +public class Liste { + + public static void main(String[] args) { + + Scanner scanner = new Scanner(System.in); + TodoMap verwaltung = new TodoMap(); + boolean running = true; + + try { + System.out.println("Lege einen Namen für die Todo-Liste fest"); + String dateiname = scanner.nextLine().replaceAll("[ ,.]", "_"); + TodoDateiSchreiber todoDatei = new TodoDateiSchreiber(dateiname); + while (running) { + + + System.out.print("Was willst du tun? \nSchreibe 'help' für mehr informationen.\n"); + String input = scanner.nextLine(); + + switch(input) { + + case "neue Todo" : + System.out.println("Titel der Todo: \n"); + String titel = scanner.nextLine(); + System.out.println("Was muss erledigt werden? \n"); + String beschreibung = scanner.nextLine(); + verwaltung.addTodo(new Todos(titel, beschreibung)); + break; + + case "Todo anzeigen" : + System.out.print("Welche Nr.? \n"); + System.out.println(verwaltung.openOneTodo(scanner.nextInt())); + break; + + case "Alle Todos anzeigen" : + System.out.println(verwaltung.openAllTodos()); + break; + + case "Todo abhaken" : + System.out.println("Welche Nr.? \n"); + int zahl = scanner.nextInt(); + verwaltung.todoAbhacken(zahl); + break; + case "liste speichern" : + todoDatei.TodoSchreiben(verwaltung.openAllTodos()); + break; + case "zurück" : + System.out.println("Programm wird beendet"); + running = false; + break; + + case "help" : + System.out.println("Befehle: \n" + + " 'neue Todo': legt ein neues Todo an. \n" + + " 'Todo anzeigen': Zeige eine bestimmte Todo \n" + + " 'Alle Todos anzeigen: Zeige alle Todos \n" + + " 'Todo abhaken: Setzt den Status der Todo auf 'erledigt' \n" + + " 'liste speichern': speichert alle Todos in eine Textdatei \n" + + " 'zurück': beendet das Programm \n"); + break; + + default: System.out.println("Falsche Eingabe. Versuche es nochmal. \n"); + ; + } + } + } + catch (Exception e) { + System.out.println("Ungültige Eingabe"); + } + scanner.close(); + } +} + diff --git a/TodoListe/src/Semesteraufgabe/TodoDateiSchreiber.java b/TodoListe/src/Semesteraufgabe/TodoDateiSchreiber.java new file mode 100644 index 0000000..d028821 --- /dev/null +++ b/TodoListe/src/Semesteraufgabe/TodoDateiSchreiber.java @@ -0,0 +1,58 @@ +package Semesteraufgabe; + +import java.io.FileWriter; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.TreeMap; + +public class TodoDateiSchreiber { + private FileWriter writer; + private Date Datum = new Date(); + private SimpleDateFormat DatumFormat = new SimpleDateFormat("dd-MM-yyyy HH-mm"); + private String todoDatum = DatumFormat.format(Datum); + + + public TodoDateiSchreiber(String dateiname) { + try { + this.writer = new FileWriter("src/dateien/" + dateiname + ".txt"); + System.out.println("Todoliste wird erstellt... \n"); + + } + catch (IOException e) { + System.out.println ("Fehler beim erstellen der Datei:"); + } + } + + + + public void TodoSchreiben (TreeMap treeMap) { + try { + try { + System.out.println(todoDatum); + for (Todos todo : treeMap.values()) { + writer.write(todo.toString() + "\n"); + System.out.println("todo wird bearbeitet"); + } + } + catch (IOException e) { + System.out.println("Fehler beim Dateibearbeiten"); + + } + writer.close(); + } catch (IOException ee) { + System.out.println("fehler beim speichern der datei"); + } + finally { + try { + if (writer != null) { + writer.close(); + System.out.println("Datei wurde geschlossen."); + } + } catch (IOException e) { + System.out.println("Fehler beim Schließen der Datei."); + e.printStackTrace(); + } + } + } +} diff --git a/TodoListe/src/Semesteraufgabe/TodoMap.java b/TodoListe/src/Semesteraufgabe/TodoMap.java new file mode 100644 index 0000000..61ba3ea --- /dev/null +++ b/TodoListe/src/Semesteraufgabe/TodoMap.java @@ -0,0 +1,34 @@ +package Semesteraufgabe; + +import java.util.TreeMap; + +public class TodoMap { + + private TreeMap liste; + + public TodoMap () { + liste = new TreeMap<>(); + } + + public void addTodo (Todos todo) { + liste.put(todo.getTodoNr(), todo); + } + public TreeMap openAllTodos () { + return liste; + } + public Todos openOneTodo (int nummer) { + return liste.get(nummer); + } + public void todoAbhacken(int nummer) { + if (liste.containsKey(nummer)) { + liste.get(nummer).setStatus(true); + } else { + System.out.println("To-Do mit dieser Nummer existiert nicht."); + } + } + + } + + + + diff --git a/TodoListe/src/Semesteraufgabe/Todos.java b/TodoListe/src/Semesteraufgabe/Todos.java new file mode 100644 index 0000000..3ada856 --- /dev/null +++ b/TodoListe/src/Semesteraufgabe/Todos.java @@ -0,0 +1,75 @@ +package Semesteraufgabe; + +public class Todos { + + private String titel; + private String beschreibung; + private int todoNr; + private boolean status; + private static int counter = 1; + + public Todos () { + + titel = "To-do hat noch keinen Titel"; + beschreibung = "To-do hat noch keine Beschreibung"; + status = false; + todoNr++; + } + public Todos (String titel, String beschreibung) { + + this.titel = titel; + this.beschreibung = beschreibung; + this.status = false; + this.todoNr = counter++; +} + public Todos (String titel, String beschreibung, String status) { + this.titel = titel; + this.beschreibung = beschreibung; + if ( status == "noch nicht erledigt" ) { + this.status = false; + } + else { + this.status = true; + } + } + + public String toDoZustand(boolean status) { + if (this.status == false) { + return "noch nicht erledigt"; + } + else { + return "Erledigt"; + } + } + + public String getTitel() { + return titel; + } + public void setTitel(String titel) { + this.titel = titel; + } + public String getBeschreibung() { + return beschreibung; + } + public void setBeschreibung(String beschreibung) { + this.beschreibung = beschreibung; + } + public int getTodoNr() { + return todoNr; + } + public void setTodoNr(int todoNr) { + this.todoNr = todoNr; + } + public boolean isStatus() { + return status; + } + public void setStatus(boolean status) { + this.status = status; + } + @Override + public String toString() { + return "Titel:" + titel + ", Beschreibung:" + beschreibung + ", To-Do Nr.: " + this.todoNr + ", Status: " + + toDoZustand(status); + } + +} \ No newline at end of file diff --git a/TodoListe/src/Semesteraufgabe/package-info.java b/TodoListe/src/Semesteraufgabe/package-info.java new file mode 100644 index 0000000..6407f47 --- /dev/null +++ b/TodoListe/src/Semesteraufgabe/package-info.java @@ -0,0 +1 @@ +package Semesteraufgabe; \ No newline at end of file diff --git a/TodoListe/src/module-info.java b/TodoListe/src/module-info.java new file mode 100644 index 0000000..8383ed7 --- /dev/null +++ b/TodoListe/src/module-info.java @@ -0,0 +1,8 @@ +/** + * + */ +/** + * + */ +module TodoListe { +} \ No newline at end of file