From c4f0a994c931256cc305facebda1f9c207651b90 Mon Sep 17 00:00:00 2001 From: 3012330 <3012330@stud.hs-mannheim.de> Date: Thu, 4 Jan 2024 23:03:33 +0100 Subject: [PATCH] =?UTF-8?q?Men=C3=BC=20komplett=20=C3=BCberarbeitet!=20Ein?= =?UTF-8?q?f=C3=BCgen=20in=20Zellen=20geht=20und=20eine=20Tabelle=20einles?= =?UTF-8?q?en=20oder=20die=20aktuelle=20speichern.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../informatik/spreadsheet/Axel.java | 167 ++++++++++++------ 1 file changed, 110 insertions(+), 57 deletions(-) diff --git a/Axel/src/de/hs_mannheim/informatik/spreadsheet/Axel.java b/Axel/src/de/hs_mannheim/informatik/spreadsheet/Axel.java index dc2bf6b..e06f763 100644 --- a/Axel/src/de/hs_mannheim/informatik/spreadsheet/Axel.java +++ b/Axel/src/de/hs_mannheim/informatik/spreadsheet/Axel.java @@ -36,10 +36,10 @@ public class Axel { // TODO: You might want to put "UI loop" for entering value and formulas here resp. in some UI methods. String eingabe = ""; String merker = ""; + int auswahl = 0; + boolean weiter; - String path, startcell; - char separator; - + System.out.println(); System.out.println("Willkommen zum Spreadsheet Programm"); System.out.println(); System.out.println("Wie groß soll das Spreadsheet sein?"); @@ -53,74 +53,127 @@ public class Axel { Spreadsheet spr = new Spreadsheet(zeilen,spalten); do { + weiter = true; System.out.println(); System.out.println(spr); - System.out.println(); - System.out.print("Weitere Zelle bearbeiten?(J/N): "); - eingabe = abfrage(); - if (eingabe.equals("N") || eingabe.equals("n") || eingabe.equals("nein") ||eingabe.equals("Nein")) { - System.out.print("Dafür eine \"csv\" Datei einlesen?(J/N): "); - eingabe = abfrage(); - if (eingabe.equals("N") || eingabe.equals("n") || eingabe.equals("nein") ||eingabe.equals("Nein")) { + + auswahl = menue(spr); + + switch(auswahl){ + case 0: + System.out.println("Programm wird beendet"); + weiter = false; + break; + case 1: + zelle_bearbeiten(spr); + break; + case 2: + tabelle_einlesen(spr); + break; + case 3: + tabelle_speichern(spr); + break; + default: + System.out.println("Unbekannter Fehler - Menü wird neu geöffnet"); break; - }else { - System.out.print("Path von der csv Datei: "); - eingabe = abfrage(); - path = eingabe; - System.out.print("Separator zwischen den Zellen in der csb Datei: "); - eingabe = abfrage(); - separator = eingabe.charAt(0); - System.out.print("Obere Linke Zelle, in die Daten aus der csb-Datei eingefügt werden sollen: "); - eingabe = abfrage(); - startcell = eingabe; - - spr.readCsv(path, separator,startcell); - continue; - } } + }while(weiter); + } - do { - System.out.print("Welche Zelle?"); - System.out.print("(Buchstabe+Zahl): "); + private static void tabelle_speichern(Spreadsheet spr) throws FileNotFoundException { + System.out.print("Path von der csv Datei: "); + String path = abfrage(); + + spr.saveCsv(path); + + System.out.println("Tabelle wurde gespeichert"); + } + + private static void tabelle_einlesen(Spreadsheet spr) throws FileNotFoundException { + String eingabe, path, startcell; + char separator; + + System.out.print("Path von der csv Datei: "); + eingabe = abfrage(); + path = eingabe; + + System.out.print("Separator zwischen den Zellen in der csb Datei: "); + eingabe = abfrage(); + separator = eingabe.charAt(0); + + System.out.print("Obere Linke Zelle, in die Daten aus der csb-Datei eingefügt werden sollen: "); + eingabe = abfrage(); + startcell = eingabe; + + spr.readCsv(path, separator, startcell); + + } + + private static void zelle_bearbeiten(Spreadsheet spr) { + String eingabe; + do { + System.out.print("Welche Zelle?"); + System.out.print("(Buchstabe+Zahl): "); + eingabe = abfrage(); + eingabe = eingabe.toUpperCase(); + if (spr.zelleneingabe_pruefen(eingabe)) { + break; + } else{ + System.out.println(); + System.out.println("Fehler bei Eingabe - Zelle wurde nicht gefunden"); + System.out.println("Versuchen Sie es erneut"); + } + }while(true); + + String merker = eingabe; + + System.out.print("Was soll in Zelle " +eingabe+ " rein?:"); + eingabe = abfrage(); + + spr.put(merker, eingabe); + } + + private static int menue(Spreadsheet spr) throws FileNotFoundException { + do { + System.out.println(); + System.out.println("Auswahl Möglichkeiten:"); + System.out.println("1. Zelle bearbeiten 2. Tabelle einfügen 3. Tabelle speichern"); + + System.out.print("Ihre auswahl: "); + + String eingabe = abfrage(); + + if (eingabe.length() == 1 && eingabe.charAt(0) <= '3' && eingabe.charAt(0) >= '1') { + return Integer.parseInt(eingabe); + }else { + if (!(eingabe.equals("exit"))) { + System.out.println("Fehler bei Eingabe!"); + System.out.print("Wollen Sie das Programm beenden?(J/N): "); + + eingabe = abfrage(); + eingabe = eingabe.toUpperCase(); + if (eingabe.equals("NEIN") || eingabe.equals("N") || eingabe.equals("NO") || eingabe.equals("NE")) { + continue; + } + } + + System.out.print("Programm ohne speichern beenden?(J/N)"); eingabe = abfrage(); eingabe = eingabe.toUpperCase(); - if (spr.zelleneingabe_pruefen(eingabe)) { + if (eingabe.equals("JA") || eingabe.equals("J") || eingabe.equals("Y") || eingabe.equals("YES")) { + break; + } else { + tabelle_speichern(spr); break; - } else{ - System.out.println(); - System.out.println("Fehler bei Eingabe - Zelle wurde nicht gefunden"); - System.out.println("Versuchen Sie es erneut"); } - }while(true); - - merker = eingabe; - - System.out.print("Was soll in Zelle " +eingabe+ " rein?:"); - eingabe = abfrage(); - - spr.put(merker, eingabe); - + } }while(true); - verabschiedung(spr); + + return 0; } - private static void verabschiedung(Spreadsheet spr) throws FileNotFoundException { - System.out.println("Programm wird gleich beendet!"); - System.out.print("Wollen Sie vorher Ihre Tabelle vorher abspeichern?(J/N): "); - - String kbord = abfrage(); - kbord = kbord.toUpperCase(); - - if (kbord.equals("JA") || kbord.equals("J") || kbord.equals("Y") || kbord.equals("YES")) { - System.out.println("Tabelle wurde gespeichert"); - spr.saveCsv("C:\\Users\\flori\\IdeaProjects\\PR1-Spreadsheet\\Axel\\resources\\zahlen.csv"); //<- muss natürlich auf dem jeweiligen computer geändert werden - } - System.out.println("-Programm wurde beendet-"); - } - - private static String abfrage() { Scanner sc = new Scanner(System.in); String x = sc.nextLine();