diff --git a/Axel/src/de/hs_mannheim/informatik/spreadsheet/Axel.java b/Axel/src/de/hs_mannheim/informatik/spreadsheet/Axel.java index 360ebc1..b788197 100644 --- a/Axel/src/de/hs_mannheim/informatik/spreadsheet/Axel.java +++ b/Axel/src/de/hs_mannheim/informatik/spreadsheet/Axel.java @@ -23,10 +23,9 @@ public class Axel { spr.put("J10", "1111"); // Das Programm konnte keine Zellen mit 2 Stellen (>9) einlesen! (-> Programm macht es an Stelle 1 statt 10) spr.put("Z2", "23"); - System.out.println(spr); - - spr.saveCsv("C:\\Users\\flori\\IdeaProjects\\PR1-Spreadsheet\\Axel\\resources\\zahlen.csv"); + //System.out.println(spr); + //spr.saveCsv("C:\\Users\\flori\\IdeaProjects\\PR1-Spreadsheet\\Axel\\resources\\zahlen.csv"); //spr.readCsv("C:\\Users\\flori\\IdeaProjects\\PR1-Spreadsheet\\Axel\\resources\\zahlen2.csv", ',',"A1"); @@ -36,33 +35,54 @@ 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 = ""; - do { + do {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")) { + break; + } + 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); + + merker = eingabe; + + System.out.print("Was soll in Zelle " +eingabe+ " rein?:"); eingabe = abfrage(); - }while(weiter(eingabe)); - verabschiedung(); + spr.put(merker, eingabe); + + }while(true); + verabschiedung(spr); } - private static void verabschiedung() { + private static void verabschiedung(Spreadsheet spr) throws FileNotFoundException { System.out.println("Programm wird beendet. Wollen Sie Ihre Tabelle vorher abspeichern?"); 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"); //TODO: Tabelle soll hier in einer csv Datei gespeichert werden + 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 boolean weiter(String eingabe) { - if (eingabe.equals("exit")) { - return false; - } - return true; - } private static String abfrage() { Scanner sc = new Scanner(System.in); diff --git a/Axel/src/de/hs_mannheim/informatik/spreadsheet/Spreadsheet.java b/Axel/src/de/hs_mannheim/informatik/spreadsheet/Spreadsheet.java index f63556a..4ed4cac 100644 --- a/Axel/src/de/hs_mannheim/informatik/spreadsheet/Spreadsheet.java +++ b/Axel/src/de/hs_mannheim/informatik/spreadsheet/Spreadsheet.java @@ -9,7 +9,7 @@ import java.util.regex.Pattern; /** * A simplified spreadsheet class for the PR1 programming lab at Hochschule Mannheim. * One aspect worth mentioning is that it only supports long numbers, not doubles. - * + *p * @author Oliver Hummel */ public class Spreadsheet { @@ -93,6 +93,21 @@ public class Spreadsheet { return merker-1; } + + public boolean zelleneingabe_pruefen(String a) { + if (a.length() < 2) { //es soll eine einzelne Zelle angesprochen werde, also muss dafür die länge >2 sein + return false; + } + if (getRow(a) < 0 || getRow(a) >= cells.length) { //überprüfung ob die eingabe in die rows länge passt + return false; + } + if (getCol(a) < 0 || getCol(a) >= cells[0].length) { //überprüfung ob die eingabe in die Columns länge passt + return false; + } + return true; + } + + // ----- // business logic @@ -226,5 +241,4 @@ public class Spreadsheet { } return sb.toString(); } - } \ No newline at end of file