1
0
Fork 0

More error handling and loop improvements.

pull/1/head
selim 2023-12-27 18:06:58 +01:00
parent 6b0c7d3ad8
commit 2b95af08d1
2 changed files with 28 additions and 6 deletions

View File

@ -1,6 +1,7 @@
package de.hs_mannheim.informatik.spreadsheet; package de.hs_mannheim.informatik.spreadsheet;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.util.InputMismatchException;
import java.util.Scanner; import java.util.Scanner;
/** /**
@ -11,12 +12,24 @@ import java.util.Scanner;
public class Axel { public class Axel {
public static void main(String[] args) throws FileNotFoundException { public static void main(String[] args) throws FileNotFoundException {
Scanner sc = new Scanner(System.in); Spreadsheet spr = new Spreadsheet(10,10);
System.out.println("\nAxel(ExcelFakeVon2211482): "); boolean match = false;
System.out.print("\nTabellengröße(ReihenZwischen1-99 SpaltenZwischen1-26): ");
Spreadsheet spr = new Spreadsheet(sc.nextInt(), sc.nextInt());
boolean stop = false; boolean stop = false;
Scanner sc = new Scanner(System.in);
System.out.println("\nAxel(ExcelFakeVon2211482): ");
while (!match) {
try {
System.out.print("\nTabellengröße(ReihenZwischen1-99 SpaltenZwischen1-26): ");
spr = new Spreadsheet(sc.nextInt(), sc.nextInt());
match = true;
} catch(InputMismatchException i){
System.out.println("\nGeben Sie zwei Ganzzahlen mit Leerzeichen dazwischen an!");
System.out.println("\nEnter zum fortfahren.");
sc.nextLine();
sc.nextLine();
}
}
while (!stop) { while (!stop) {
try { try {
@ -39,7 +52,7 @@ public class Axel {
System.out.println("\nEinlesen: \nKOMMANDO Dateipfad Trennzeichen StartzelleObenLinks (Alles mit Leerzeichen getrennt.) e.g.:\nEINLESEN Axel/resources/zahlen.csv , A1"); System.out.println("\nEinlesen: \nKOMMANDO Dateipfad Trennzeichen StartzelleObenLinks (Alles mit Leerzeichen getrennt.) e.g.:\nEINLESEN Axel/resources/zahlen.csv , A1");
System.out.println("\nSpeichern: \nKOMMANDO Dateipfad (Mit Leerzeichen getrennt.) e.g.:\nSPEICHERN Axel/resources/zahlen.csv"); System.out.println("\nSpeichern: \nKOMMANDO Dateipfad (Mit Leerzeichen getrennt.) e.g.:\nSPEICHERN Axel/resources/zahlen.csv");
System.out.println("\nFormel Tabellenansicht: \nKOMMANDO e.g.:\nFORMELN"); System.out.println("\nFormel Tabellenansicht: \nKOMMANDO e.g.:\nFORMELN");
System.out.println("\nZellen Werte/Formeln zuweisen: \nZELLE ZUWEISUNG (Mit Leerzeichen getrennt, Zelle beginnend mit Buchstabe und Zuweisung beginnend mit =.) e.g.:\nA1 =A5+15\n" + System.out.println("\nZellen Werte/Formeln zuweisen: \nZELLE ZUWEISUNG (Mit Leerzeichen getrennt, Zelle beginnend mit Buchstabe und Zuweisung beginnend mit =; Keine Kommazahlen als Eingabe erlaubt.) e.g.:\nA1 =A5+15\n" +
"\nZELLE FORMELZUWEISUNG (Formelzuweisung mit Startzelle bis Endzelle getrennt durch :.) e.g.:" + "\nZELLE FORMELZUWEISUNG (Formelzuweisung mit Startzelle bis Endzelle getrennt durch :.) e.g.:" +
"\nA2 =SUMME(A1:H10)\t\tA3 =PRODUKT(A1:H10)\t\tA4 =MITTELWERT(A1:H10)\t\tA5 =STABW(A1:H10) (Standartabweichung)\t\tA6 =MIN(A1:H10)\t\tA7 =MAX(A1:H10)"); "\nA2 =SUMME(A1:H10)\t\tA3 =PRODUKT(A1:H10)\t\tA4 =MITTELWERT(A1:H10)\t\tA5 =STABW(A1:H10) (Standartabweichung)\t\tA6 =MIN(A1:H10)\t\tA7 =MAX(A1:H10)");
} }

View File

@ -284,7 +284,8 @@ public class Spreadsheet {
result += Double.parseDouble(cells[r][c].getValue()); result += Double.parseDouble(cells[r][c].getValue());
counter++; counter++;
} }
result /= counter; if(result!=0)
result /= counter;
return result; return result;
} }
private double standardDeviation(String startCellName, String endCellName){ private double standardDeviation(String startCellName, String endCellName){
@ -302,6 +303,9 @@ public class Spreadsheet {
avg /= counter; avg /= counter;
//average/ add cell names to list //average/ add cell names to list
if(cellNames.isEmpty())
return 0;
ArrayList<String> copyCellNames = new ArrayList<>(cellNames); ArrayList<String> copyCellNames = new ArrayList<>(cellNames);
double[] frequency = new double[cellNames.size()]; double[] frequency = new double[cellNames.size()];
Arrays.fill(frequency,1); Arrays.fill(frequency,1);
@ -348,6 +352,9 @@ public class Spreadsheet {
if(!cells[r][c].isEmpty()) if(!cells[r][c].isEmpty())
cellNames.add(getCellName(r, c)); cellNames.add(getCellName(r, c));
if(cellNames.isEmpty())
return 0;
double result = Double.parseDouble(get(cellNames.get(0))); double result = Double.parseDouble(get(cellNames.get(0)));
for(int i = 0; i< cellNames.size(); i++) for(int i = 0; i< cellNames.size(); i++)
try { try {
@ -364,6 +371,8 @@ public class Spreadsheet {
if(!cells[r][c].isEmpty()) if(!cells[r][c].isEmpty())
cellNames.add(getCellName(r, c)); cellNames.add(getCellName(r, c));
if(cellNames.isEmpty())
return 0;
double result = Double.parseDouble(get(cellNames.get(0))); double result = Double.parseDouble(get(cellNames.get(0)));
for(int i = 0; i< cellNames.size(); i++) for(int i = 0; i< cellNames.size(); i++)