reformating code
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
||||
#Equivalent
|
||||
# Equivalent
|
||||
|
||||
### Text.java Index method
|
||||
|
||||
|
||||
+41
-18
@@ -2,7 +2,8 @@
|
||||
|
||||
## Aufgabe
|
||||
|
||||
Programmieren Sie eine einfache Textverarbeitung mit Ein- und Ausgabe über die Konsole. Diese soll als eigenständige Anwendung laufen und über den folgenden Befehlssatz gesteuert werden:
|
||||
Programmieren Sie eine einfache Textverarbeitung mit Ein- und Ausgabe über die Konsole. Diese soll als eigenständige
|
||||
Anwendung laufen und über den folgenden Befehlssatz gesteuert werden:
|
||||
|
||||
| Befehl | Beschreibung |
|
||||
| :--- | :--- |
|
||||
@@ -19,19 +20,29 @@ Programmieren Sie eine einfache Textverarbeitung mit Ein- und Ausgabe über die
|
||||
## Anforderungen
|
||||
|
||||
- Ihre Anwendung muss eigenständig laufen, also durch Aufruf von main() und ohne BlueJ.
|
||||
- Schreiben Sie Rückmeldungen zu Fehlern (z.B. «Unbekanntes Kommando») statt auf die Standardausgabe (System.out) auf die Standardfehlerausgabe (Sytem.err). Die Syntax ist analog zu der von System.out bekannten ("System.err.println").
|
||||
- Sie dürfen alle in der Vorlesung bis zur Abgabe durchgenommenen Konstrukte benutzen, jedoch nur diese. Dies schliesst insbesondere ein: Allen Stoff im BlueJ-Buch bis und mit Kapitel 9, JUnit Testing, Packages zur Verwaltung Ihres Codes. Es schliesst insbesondere aus: Vererbung, Einbindung von Paketen ausserhalb java.util.*
|
||||
- Als "Absatz" definieren wir eine über die unten beschriebene Scanner.nextline() - Methode eingelesenen String. Validieren Sie den erhaltenen Input und filtern Sie alle Sonderzeichen (d.h. der in die Anwendung übernommene Text darf nur Buchstaben, Zahlen, Leerzeichen und Satzzeichen enthalten).
|
||||
- Schreiben Sie Rückmeldungen zu Fehlern (z.B. «Unbekanntes Kommando») statt auf die Standardausgabe (System.out) auf
|
||||
die Standardfehlerausgabe (Sytem.err). Die Syntax ist analog zu der von System.out bekannten ("System.err.println").
|
||||
- Sie dürfen alle in der Vorlesung bis zur Abgabe durchgenommenen Konstrukte benutzen, jedoch nur diese. Dies schliesst
|
||||
insbesondere ein: Allen Stoff im BlueJ-Buch bis und mit Kapitel 9, JUnit Testing, Packages zur Verwaltung Ihres Codes.
|
||||
Es schliesst insbesondere aus: Vererbung, Einbindung von Paketen ausserhalb java.util.*
|
||||
- Als "Absatz" definieren wir eine über die unten beschriebene Scanner.nextline() - Methode eingelesenen String.
|
||||
Validieren Sie den erhaltenen Input und filtern Sie alle Sonderzeichen (d.h. der in die Anwendung übernommene Text
|
||||
darf nur Buchstaben, Zahlen, Leerzeichen und Satzzeichen enthalten).
|
||||
- Das Einlesen und Abspeichern von Dateien ist in diesem Projekt nicht notwendig.
|
||||
- Ihr Code ist in Javadoc (mindestens für Klassen und Public Methods und zusätzlich für Konstruktoren, jedoch generell ohne Getter/Setter) und wo sinnvoll in Zeilenkommentaren zur Funktionalität dokumentiert. Ihr Klassendiagramm ist auf GitHub abgelegt. Die zur Übersetzung und Start nötigen Aufrufe sind separat im README für Ihr Repo dokumentiert.
|
||||
- Definieren Sie Unit Tests für die Index-Funktionalität, implementieren Sie diese in JUnit und führen Sie sie aus. Dokumentieren Sie die Tests.
|
||||
- Ihr Code ist in Javadoc (mindestens für Klassen und Public Methods und zusätzlich für Konstruktoren, jedoch generell
|
||||
ohne Getter/Setter) und wo sinnvoll in Zeilenkommentaren zur Funktionalität dokumentiert. Ihr Klassendiagramm ist auf
|
||||
GitHub abgelegt. Die zur Übersetzung und Start nötigen Aufrufe sind separat im README für Ihr Repo dokumentiert.
|
||||
- Definieren Sie Unit Tests für die Index-Funktionalität, implementieren Sie diese in JUnit und führen Sie sie aus.
|
||||
Dokumentieren Sie die Tests.
|
||||
- Wenden Sie die relevanten Abschnitte im Clean-Code-Handbuch an.
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Achten Sie beim Klassenentwurf auf Kohäsion und Kopplung und beachten Sie auch die Hinweise im Clean-Code-Handbuch.
|
||||
- Fehlervermeidung und JUnit wird in Programmieren 1 durchgenommen. Planen Sie genügend Zeit ein, um Ihre Tests zu definieren, umzusetzen und allfällige Fehler zu korrigieren.
|
||||
- Für Management und Dokumentation von Arbeitsschritten empfehlen wir das Issue Tracking in GitHub. Andere Lösungen sind denkbar.
|
||||
- Fehlervermeidung und JUnit wird in Programmieren 1 durchgenommen. Planen Sie genügend Zeit ein, um Ihre Tests zu
|
||||
definieren, umzusetzen und allfällige Fehler zu korrigieren.
|
||||
- Für Management und Dokumentation von Arbeitsschritten empfehlen wir das Issue Tracking in GitHub. Andere Lösungen sind
|
||||
denkbar.
|
||||
- Eine Quelle für Blindtext ist https://lipsum.com/. Andere Texte sind möglich.
|
||||
|
||||
## Vorgehen
|
||||
@@ -48,7 +59,9 @@ Wir empfehlen, etwa folgendermassen vorzugehen:
|
||||
|
||||
## Abgabe
|
||||
|
||||
Legen Sie für das Projekt ein Repository gemäss der bereits aus Projekt 1 bekannten Anleitung an. Der von Ihnen erarbeitete Code muss zur Abgabe bis zur bekanntgegebenen Deadline dort hochgeladen werden. Abgaben auf anderen Services (github.com, OneDrive, etc.) werden nicht gewertet.
|
||||
Legen Sie für das Projekt ein Repository gemäss der bereits aus Projekt 1 bekannten Anleitung an. Der von Ihnen
|
||||
erarbeitete Code muss zur Abgabe bis zur bekanntgegebenen Deadline dort hochgeladen werden. Abgaben auf anderen
|
||||
Services (github.com, OneDrive, etc.) werden nicht gewertet.
|
||||
|
||||
## Bewertung
|
||||
|
||||
@@ -56,24 +69,32 @@ Für diese Aufgabe erhalten Sie maximal 15 Punkte. In die Bewertung fliessen fol
|
||||
|
||||
### Allgemeine Anforderung (all-or-nothing)
|
||||
|
||||
- Voraussetzung für Punkterteilung: Das Programm ist lauffähig. (Kriterium: Vorführung oder Test durch Ihre Dozierenden) Ein nicht lauffähiges Programm erhält 0 Punkte.
|
||||
Ein lauffähiges Programm wird in den folgenden beiden Bereichen beurteilt. Für Teil- oder Nichterfüllung werden Abzüge in Ansatz gebracht. Das Nichterfüllen einer Unterkategorie kann zum vollständigen Abzug in einem Bereich führen. Es werden keine Negativpunkte vergeben.
|
||||
|
||||
- Voraussetzung für Punkterteilung: Das Programm ist lauffähig. (Kriterium: Vorführung oder Test durch Ihre Dozierenden)
|
||||
Ein nicht lauffähiges Programm erhält 0 Punkte. Ein lauffähiges Programm wird in den folgenden beiden Bereichen
|
||||
beurteilt. Für Teil- oder Nichterfüllung werden Abzüge in Ansatz gebracht. Das Nichterfüllen einer Unterkategorie kann
|
||||
zum vollständigen Abzug in einem Bereich führen. Es werden keine Negativpunkte vergeben.
|
||||
|
||||
### Bereich Entwicklung
|
||||
|
||||
- Ihr Programm besitzt die geforderte Funktionalität. (Vorführung oder Test durch Ihre Dozierenden)
|
||||
- Sie halten die Vorgaben hinsichtlich einsetzbarer Konstrukte und Clean Code ein. (Codeanalyse durch Ihre Dozierenden, ggf. Erläuterung)
|
||||
- Sie haben eine gute Klassenaufteilung gefunden. Das Klassendiagramm ist auf GitHub mit hochzuladen. (Analyse durch Ihre Dozierenden, ggf. Erläuterung)
|
||||
- Sie haben sinnvolle Test Cases für die Funktion Index definiert, diese in JUnit umgesetzt und erfolgreich ausgeführt. (Dokumentation über Test Cases und erfolgreiche Tests, diese sind auf GitHub mit hochzuladen.)
|
||||
- Sie halten die Vorgaben hinsichtlich einsetzbarer Konstrukte und Clean Code ein. (Codeanalyse durch Ihre Dozierenden,
|
||||
ggf. Erläuterung)
|
||||
- Sie haben eine gute Klassenaufteilung gefunden. Das Klassendiagramm ist auf GitHub mit hochzuladen. (Analyse durch
|
||||
Ihre Dozierenden, ggf. Erläuterung)
|
||||
- Sie haben sinnvolle Test Cases für die Funktion Index definiert, diese in JUnit umgesetzt und erfolgreich
|
||||
ausgeführt. (Dokumentation über Test Cases und erfolgreiche Tests, diese sind auf GitHub mit hochzuladen.)
|
||||
|
||||
### Bereich Vorgehen und Dokumentation
|
||||
|
||||
- Ihr Code ist mit JavaDoc dokumentiert. (s.a. Hinweis unter "Anforderungen", Analyse durch Ihre Dozierenden)
|
||||
- Alle Gruppenmitglieder haben in nennenswertem Umfang Code beigetragen und auf GitHub eingecheckt. (Check durch GitHub Log)
|
||||
- Alle Gruppenmitglieder haben in nennenswertem Umfang Code beigetragen und auf GitHub eingecheckt. (Check durch GitHub
|
||||
Log)
|
||||
|
||||
## Beispielcode zum Konsoleneingabe
|
||||
Die Eingabe von Text ist im BlueJ-Buch, Kapitel 6 erwähnt und in Kapitel 14.9. genauer beschrieben. Wenn Sie Probleme bei der Anwendung der Texteingabe haben, wenden Sie sich an Ihre Dozierenden. Die Anwendung der Scanner-Klasse sollte nach dem gegebenen Muster jedoch einfach gelingen.
|
||||
|
||||
Die Eingabe von Text ist im BlueJ-Buch, Kapitel 6 erwähnt und in Kapitel 14.9. genauer beschrieben. Wenn Sie Probleme
|
||||
bei der Anwendung der Texteingabe haben, wenden Sie sich an Ihre Dozierenden. Die Anwendung der Scanner-Klasse sollte
|
||||
nach dem gegebenen Muster jedoch einfach gelingen.
|
||||
|
||||
In der Grundfunktionalität sieht sie folgendermassen aus:
|
||||
|
||||
@@ -115,4 +136,6 @@ public class InputReaderMod {
|
||||
}
|
||||
```
|
||||
|
||||
**Quelle**: Anpassung von InputReader.java (englischsprachige Fassung der im Buch in Kap. 6 erwähnten Klasse EingabeLeser.java) aus dem Unterverzeichnis projects/chapter06/ tech-support-complete im Archiv https://bluej.org/objects-first/resources/projects.zip)
|
||||
**Quelle**: Anpassung von InputReader.java (englischsprachige Fassung der im Buch in Kap. 6 erwähnten Klasse
|
||||
EingabeLeser.java) aus dem Unterverzeichnis projects/chapter06/ tech-support-complete im
|
||||
Archiv https://bluej.org/objects-first/resources/projects.zip)
|
||||
|
||||
Reference in New Issue
Block a user