1
0
Fork 0

Menü verbessert, man kann nun Strings in gewünschten Zellen (mit Scanner) eintragen.

In Spreadsheet.java wird auch überprüft, ob die Eingabe korrekt ist! (also Zelle vorhanden ist)
main
Florian Hörner 2024-01-03 21:57:55 +01:00
parent ccf2d38603
commit 4f38207c3b
2 changed files with 50 additions and 16 deletions

View File

@ -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("J10", "1111"); // Das Programm konnte keine Zellen mit 2 Stellen (>9) einlesen! (-> Programm macht es an Stelle 1 statt 10)
spr.put("Z2", "23"); spr.put("Z2", "23");
System.out.println(spr); //System.out.println(spr);
spr.saveCsv("C:\\Users\\flori\\IdeaProjects\\PR1-Spreadsheet\\Axel\\resources\\zahlen.csv");
//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"); //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. // TODO: You might want to put "UI loop" for entering value and formulas here resp. in some UI methods.
String eingabe = ""; String eingabe = "";
String merker = "";
do { do {System.out.println(spr);
System.out.println();
System.out.print("Weitere Zelle bearbeiten?(J/N): ");
eingabe = abfrage(); eingabe = abfrage();
if (eingabe.equals("N") || eingabe.equals("n") || eingabe.equals("nein") ||eingabe.equals("Nein")) {
}while(weiter(eingabe)); break;
verabschiedung();
} }
private static void verabschiedung() { 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();
spr.put(merker, eingabe);
}while(true);
verabschiedung(spr);
}
private static void verabschiedung(Spreadsheet spr) throws FileNotFoundException {
System.out.println("Programm wird beendet. Wollen Sie Ihre Tabelle vorher abspeichern?"); System.out.println("Programm wird beendet. Wollen Sie Ihre Tabelle vorher abspeichern?");
String kbord = abfrage(); String kbord = abfrage();
kbord = kbord.toUpperCase(); kbord = kbord.toUpperCase();
if (kbord.equals("JA") || kbord.equals("J") || kbord.equals("Y") || kbord.equals("YES")) { 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-"); System.out.println("-Programm wurde beendet-");
} }
private static boolean weiter(String eingabe) {
if (eingabe.equals("exit")) {
return false;
}
return true;
}
private static String abfrage() { private static String abfrage() {
Scanner sc = new Scanner(System.in); Scanner sc = new Scanner(System.in);

View File

@ -9,7 +9,7 @@ import java.util.regex.Pattern;
/** /**
* A simplified spreadsheet class for the PR1 programming lab at Hochschule Mannheim. * 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. * One aspect worth mentioning is that it only supports long numbers, not doubles.
* *p
* @author Oliver Hummel * @author Oliver Hummel
*/ */
public class Spreadsheet { public class Spreadsheet {
@ -93,6 +93,21 @@ public class Spreadsheet {
return merker-1; 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 // business logic
@ -226,5 +241,4 @@ public class Spreadsheet {
} }
return sb.toString(); return sb.toString();
} }
} }