From c7e0acd847ad8051429de8b6d57aba0f0e67065c Mon Sep 17 00:00:00 2001 From: rlampert Date: Sat, 11 Sep 2021 15:08:43 +0200 Subject: [PATCH 1/7] =?UTF-8?q?CommitMessig=20f=C3=BCr=20commit=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ch/ibw/java/PersonFactoryUebung.java | 29 ++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/ch/ibw/java/PersonFactoryUebung.java b/src/ch/ibw/java/PersonFactoryUebung.java index 54c7941..361a795 100644 --- a/src/ch/ibw/java/PersonFactoryUebung.java +++ b/src/ch/ibw/java/PersonFactoryUebung.java @@ -1,5 +1,7 @@ package ch.ibw.java; +import Prog1Tools.IOTools; + public class PersonFactoryUebung { public static void main(String[] args) { @@ -13,5 +15,32 @@ public static void main(String[] args) { * * Hinweis: String.split, IOTools * */ + + int anzahl = IOTools.readInt("Anzahl Personen?"); + + Person[] personen = new Person[anzahl]; + + for (int personNummer = 0; personNummer < anzahl; personNummer++) { + String eingabe = IOTools.readString("Vorname:Nachname:Alter eingeben."); + + String[] eingaben = eingabe.split(regex":"); + + + Person p = new Person(); + p.vorname = eingaben[0]; + p.nachname = eingaben[1]; + p.alter = Integer.parseInt([2]); + + personen[personNummer] = p; + + System.out.println("p.vorname "+"p.nachname "+"p.alter"); + } + + for (Person p : personen){ + System.out.println(p.vorname); + System.out.println(p.name); + System.out.println(p.alter); + } + } } From 43aca0a86412e5014a40c7664553e2a47e4741b5 Mon Sep 17 00:00:00 2001 From: rlampert Date: Sat, 11 Sep 2021 15:13:56 +0200 Subject: [PATCH 2/7] commit 2 nach uelis hilfe --- JavaGrundkurs.iml | 5 - src/Prog1Tools/IOTools.java | 339 +++++++++++++++++++ src/ch/ibw/java/GeometrieProgrammUebung.java | 2 +- src/ch/ibw/java/PersonFactoryUebung.java | 6 +- 4 files changed, 343 insertions(+), 9 deletions(-) create mode 100644 src/Prog1Tools/IOTools.java diff --git a/JavaGrundkurs.iml b/JavaGrundkurs.iml index 28ac7fd..c90834f 100644 --- a/JavaGrundkurs.iml +++ b/JavaGrundkurs.iml @@ -1,10 +1,5 @@ - - - diff --git a/src/Prog1Tools/IOTools.java b/src/Prog1Tools/IOTools.java new file mode 100644 index 0000000..bb6f943 --- /dev/null +++ b/src/Prog1Tools/IOTools.java @@ -0,0 +1,339 @@ +/* + Copyright (C) 1999 - 2018 (Jens Scheffler, Dietmar Ratz) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + + +package Prog1Tools; // (Version 2018 ff) + +import java.io.*; +import java.util.*; +import java.math.*; + +/** Diese Klasse stellt einige einfache Methoden zum Einlesen von der Tastatur + zur Verfügung. Es werden diverse Werte von der Tastatur eingelesen, die + jeweils durch ein Leerzeichen, einen Tabstop oder ein Zeilenendezeichen + getrennt sein müssen. + @author Jens Scheffler, Dietmar Ratz + @version 2.01 Neue Fassung für Grundkurs Programmieren in Java + */ +public class IOTools { + + private IOTools(){} // somit kann die Klasse nicht instanziiert werden! + private static BufferedReader in= + new BufferedReader(new InputStreamReader(System.in)); + private static StringTokenizer eingabe; + +/** Löscht alles, was sich in der momentanen Zeile befindet. + Das heißt es wird der Eingabe bis zum Zeilenende keine Beachtung mehr + geschenkt + */ + public static void flush(){ + eingabe=null; + } + +/* Private Methode, die den Tokenizer fuellt. Dies ist uebrigens eine von + zwei Methoden, die die Klasse zum Absturz bringen kann...*/ + private static void init(){ + if (eingabe!=null && eingabe.hasMoreTokens()) return; + while (eingabe==null || !eingabe.hasMoreTokens()) + eingabe=new StringTokenizer(readLine()); + } + +/* Private Methode, die eine Fehlermeldung ausgibt */ + private static void error(Exception e,String prompt) { + System.out.println("Eingabefehler "+e); + System.out.println("Bitte Eingabe wiederholen..."); + System.out.print(prompt); + } + +/** Liest eine ganze Textzeile von der Tastatur ein. Soll vorher eine + Eingabeaufforderung gemacht werden, geschieht dies durch den Parameter. + Dieser kann jedoch auch wegfallen. +@param prompt eine eventuelle Eingabeaufforderung +@return die eingelesene Zeile. + */ +/* Dies ist die zweite Methode, die die Klasse zum Absturz bringen kann.*/ + public static String readLine(String prompt){ + flush(); + String erg=""; + System.out.print(prompt); + try{ + erg=in.readLine(); + } catch(IOException e){ + System.err.println(""+e+"\n Programm abgebrochen...\n"); + System.exit(1); + } + if (erg==null) { + System.err.println("Dateiende erreicht.\nProgramm abgebrochen...\n"); + System.exit(1); + } + return erg; + } + +/** Liest eine int-Zahl von der Tastatur ein. Soll vorher eine + Eingabeaufforderung gemacht werden, geschieht dies durch den Parameter. + Dieser kann jedoch auch wegfallen. +@param prompt eine eventuelle Eingabeaufforderung +@return die eingelesene Zahl. + */ + public static int readInteger(String prompt){ + int erg; + System.out.print(prompt); + init(); + while(true){ + try{ + erg=Integer.parseInt(eingabe.nextToken()); + } catch (NumberFormatException e) { + error(e,prompt);init();continue; + } + return erg; + } + } + +/** Liest eine long-Zahl von der Tastatur ein. Soll vorher eine + Eingabeaufforderung gemacht werden, geschieht dies durch den Parameter. + Dieser kann jedoch auch wegfallen. +@param prompt eine eventuelle Eingabeaufforderung +@return die eingelesene Zahl. + */ + public static long readLong(String prompt){ + long erg; + System.out.print(prompt); + init(); + while(true){ + try{ + erg=Long.parseLong(eingabe.nextToken()); + } catch (NumberFormatException e) {error(e,prompt);init();continue;} + return erg; + } + } + +/** Liest eine double-Zahl von der Tastatur ein. Soll vorher eine + Eingabeaufforderung gemacht werden, geschieht dies durch den Parameter. + Dieser kann jedoch auch wegfallen. +@param prompt eine eventuelle Eingabeaufforderung +@return die eingelesene Zahl. + */ + public static double readDouble(String prompt){ + double erg; + System.out.print(prompt); + init(); + while(true){ + try{ + erg=Double.valueOf(eingabe.nextToken()).doubleValue(); + } catch(NumberFormatException e) {error(e,prompt);init();continue;} + return erg; + } + } + +/** Liest eine float-Zahl von der Tastatur ein. Soll vorher eine + Eingabeaufforderung gemacht werden, geschieht dies durch den Parameter. + Dieser kann jedoch auch wegfallen. +@param prompt eine eventuelle Eingabeaufforderung +@return die eingelesene Zahl. + */ + public static float readFloat(String prompt){ + float erg; + System.out.print(prompt); + init(); + while(true){ + try{ + erg=Float.valueOf(eingabe.nextToken()).floatValue(); + } catch(NumberFormatException e) {error(e,prompt);init();continue;} + return erg; + } + } + +/** Liest eine short-Zahl von der Tastatur ein. Soll vorher eine + Eingabeaufforderung gemacht werden, geschieht dies durch den Parameter. + Dieser kann jedoch auch wegfallen. +@param prompt eine eventuelle Eingabeaufforderung +@return die eingelesene Zahl. + */ + public static short readShort(String prompt){ + short erg; + System.out.print(prompt); + init(); + while(true){ + try{ + erg=Short.valueOf(eingabe.nextToken()).shortValue(); + } catch(NumberFormatException e) {error(e,prompt);init();continue;} + return erg; + } + } + +/** Liest eine byte-Zahl von der Tastatur ein. Soll vorher eine + Eingabeaufforderung gemacht werden, geschieht dies durch den Parameter. + Dieser kann jedoch auch wegfallen. +@param prompt eine eventuelle Eingabeaufforderung +@return die eingelesene Zahl. + */ + public static byte readByte(String prompt){ + byte erg; + System.out.print(prompt); + init(); + while(true){ + try{ + erg=Byte.valueOf(eingabe.nextToken()).byteValue(); + } catch(NumberFormatException e) {error(e,prompt);init();continue;} + return erg; + } + } + +/** Liest einen boolschen Wert von der Tastatur ein. Soll vorher eine + Eingabeaufforderung gemacht werden, geschieht dies durch den Parameter. + Dieser kann jedoch auch wegfallen. +@param prompt eine eventuelle Eingabeaufforderung +@return der eingelesene Wert. + */ + public static boolean readBoolean(String prompt){ + String try_this=readString(prompt); + while (!try_this.equals("true") && !try_this.equals("false")) { + error(new NumberFormatException("For input string: \"" + try_this + "\""),prompt); + try_this=readString(); + } + return try_this.equals("true"); + } + + +/** Liest ein Textwort von der Tastatur ein. Soll vorher eine + Eingabeaufforderung gemacht werden, geschieht dies durch den Parameter. + Dieser kann jedoch auch wegfallen. +@param prompt eine eventuelle Eingabeaufforderung +@return das eingelesene Wort. + */ + public static String readString(String prompt){ + System.out.print(prompt); + init(); + return eingabe.nextToken(); + } + + /** Liest ein Zeichen von der Tastatur ein. Soll vorher eine + Eingabeaufforderung gemacht werden, geschieht dies durch den Parameter. + Dieser kann jedoch auch wegfallen. +@param prompt eine eventuelle Eingabeaufforderung +@return das eingelesene Zeichen. + */ + public static char readChar(String prompt){ + String try_this=readString(prompt); + while (!(try_this.length() == 1)) { + error(new NumberFormatException("For input string: \"" + try_this + "\""),prompt); + try_this=readString(); + } + return try_this.charAt(0); + + + } + +/** Liest eine ganze Textzeile von der Tastatur ein. +@return die eingelesene Zeile. + */ + public static String readLine(){ + return readLine(""); + } + +/** Liest eine int-Zahl von der Tastqtur ein. +@return die eingelesene Zahl. + */ + public static int readInteger(){ + return readInteger(""); + } + +/** Liest eine int-Zahl von der Tastqtur ein. +@return die eingelesene Zahl. + */ + public static int readInt(){ + return readInteger(""); + } + +/** Liest eine int-Zahl von der Tastatur ein. Soll vorher eine + Eingabeaufforderung gemacht werden, geschieht dies durch den Parameter. + Dieser kann jedoch auch wegfallen. +@param prompt eine eventuelle Eingabeaufforderung +@return die eingelesene Zahl. + */ + public static int readInt(String prompt){ + return readInteger(prompt); + } + +/** Liest eine long-Zahl von der Tastatur ein. +@return die eingelesene Zahl. + */ + public static long readLong(){ + return readLong(""); + } + +/** Liest eine double-Zahl von der Tastatur ein. +@return die eingelesene Zahl. + */ + public static double readDouble(){ + return readDouble(""); + } + +/** Liest eine short-Zahl von der Tastatur ein. +@return die eingelesene Zahl. + */ + public static short readShort(){ + return readShort(""); + } + +/** Liest eine byte-Zahl von der Tastatur ein. +@return die eingelesene Zahl. + */ + public static byte readByte(){ + return readByte(""); + } + +/** Liest eine float-Zahl von der Tastatur ein. +@return die eingelesene Zahl. + */ + public static float readFloat(){ + return readFloat(""); + } + +/** Liest ein Zeichen von der Tastatur ein. +@return das eingelesene Zeichen + */ + public static char readChar(){ + return readChar(""); + } + +/** Liest ein Textwort von der Tastatur ein. +@return das eingelesene Wort. + */ + public static String readString(){ + return readString(""); + } + + /** Liest einen boolschen Wert von der Tastatur ein. +@return das eingelesene Wort. + */ + public static boolean readBoolean(){ + return readBoolean(""); + } + + /** Wandelt eine double-Zahl in einen String um. + Bei der üblichen Umwandlung von double-Werten in einen String + findet eine Rundung statt. So wird etwa die Zahl 0.1, obwohl intern + nicht darstellbar, dennoch auf dem Bildschirm ausgegeben. Diese + Methode umgeht die Rundung */ + public static String toString(double d) { + if (Double.isInfinite(d) || Double.isNaN(d)) + return ""+d; + return (new BigDecimal(d)).toString(); + } +} diff --git a/src/ch/ibw/java/GeometrieProgrammUebung.java b/src/ch/ibw/java/GeometrieProgrammUebung.java index bb40e8a..3589a63 100644 --- a/src/ch/ibw/java/GeometrieProgrammUebung.java +++ b/src/ch/ibw/java/GeometrieProgrammUebung.java @@ -41,7 +41,7 @@ public static void main(String[] args) { System.out.println(circle); - GeometrieProgrammUebung.berechnungUmfang(circle); + //GeometrieProgrammUebung.berechnungUmfang(circle); } public static void berechnungUmfang(Circle c) { diff --git a/src/ch/ibw/java/PersonFactoryUebung.java b/src/ch/ibw/java/PersonFactoryUebung.java index 361a795..226b905 100644 --- a/src/ch/ibw/java/PersonFactoryUebung.java +++ b/src/ch/ibw/java/PersonFactoryUebung.java @@ -23,13 +23,13 @@ public static void main(String[] args) { for (int personNummer = 0; personNummer < anzahl; personNummer++) { String eingabe = IOTools.readString("Vorname:Nachname:Alter eingeben."); - String[] eingaben = eingabe.split(regex":"); + String[] eingaben = eingabe.split( ":"); Person p = new Person(); p.vorname = eingaben[0]; p.nachname = eingaben[1]; - p.alter = Integer.parseInt([2]); + p.alter = Integer.parseInt(eingaben[2]); personen[personNummer] = p; @@ -38,7 +38,7 @@ public static void main(String[] args) { for (Person p : personen){ System.out.println(p.vorname); - System.out.println(p.name); + System.out.println(p.nachname); System.out.println(p.alter); } From bcbcdadaa441385f3fdb5910f5b607e861a92760 Mon Sep 17 00:00:00 2001 From: rlampert Date: Sat, 11 Sep 2021 15:46:49 +0200 Subject: [PATCH 3/7] erneuter versuch --- src/ch/ibw/java/PersonFactoryUebung.java | 29 ++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/ch/ibw/java/PersonFactoryUebung.java b/src/ch/ibw/java/PersonFactoryUebung.java index 54c7941..81d807d 100644 --- a/src/ch/ibw/java/PersonFactoryUebung.java +++ b/src/ch/ibw/java/PersonFactoryUebung.java @@ -1,5 +1,7 @@ package ch.ibw.java; +import Prog1Tools.IOTools; + public class PersonFactoryUebung { public static void main(String[] args) { @@ -13,5 +15,32 @@ public static void main(String[] args) { * * Hinweis: String.split, IOTools * */ + + int anzahl = IOTools.readInt("Anzahl Personen?"); + + Person[] personen = new Person[anzahl]; + + for (int personNummer = 0; personNummer < anzahl; personNummer++) { + String eingabe = IOTools.readString("Vorname:Nachname:Alter eingeben."); + + String[] eingaben = eingabe.split( ":"); + + + Person p = new Person(); + p.vorname = eingaben[0]; + p.nachname = eingaben[1]; + p.alter = Integer.parseInt(eingaben[2]); + + personen[personNummer] = p; + + //System.out.println("p.vorname "+"p.nachname "+"p.alter"); + } + + for (Person p : personen){ + System.out.println(p.vorname); + System.out.println(p.nachname); + System.out.println(p.alter); + } + } } From bc2cf10d2dd7875083aa6897e98a9f2557b91741 Mon Sep 17 00:00:00 2001 From: rlampert Date: Fri, 24 Sep 2021 13:42:30 +0200 Subject: [PATCH 4/7] Katze.java erster commit, neue Katzenklasse --- src/ch/ibw/java/Katze.java | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/ch/ibw/java/Katze.java diff --git a/src/ch/ibw/java/Katze.java b/src/ch/ibw/java/Katze.java new file mode 100644 index 0000000..8bfd792 --- /dev/null +++ b/src/ch/ibw/java/Katze.java @@ -0,0 +1,7 @@ +package ch.ibw.java; + +public class Katze { + public Katze (){ + + } +} From 8ea2602ca538f6a0cc17f29ea4d3cd73607dbdf3 Mon Sep 17 00:00:00 2001 From: rlampert Date: Fri, 24 Sep 2021 13:46:53 +0200 Subject: [PATCH 5/7] remove public modified --- src/ch/ibw/java/Katze.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ch/ibw/java/Katze.java b/src/ch/ibw/java/Katze.java index 8bfd792..f433930 100644 --- a/src/ch/ibw/java/Katze.java +++ b/src/ch/ibw/java/Katze.java @@ -1,7 +1,7 @@ package ch.ibw.java; public class Katze { - public Katze (){ + Katze (){ } } From 30e589627d1dcb2746493b636810e6d8fd1dc4f4 Mon Sep 17 00:00:00 2001 From: rlampert Date: Fri, 24 Sep 2021 13:49:01 +0200 Subject: [PATCH 6/7] =?UTF-8?q?add=20parameter=20f=C3=BCr=20die=20Katze?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ch/ibw/java/Katze.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ch/ibw/java/Katze.java b/src/ch/ibw/java/Katze.java index 8bfd792..4deecf4 100644 --- a/src/ch/ibw/java/Katze.java +++ b/src/ch/ibw/java/Katze.java @@ -1,7 +1,7 @@ package ch.ibw.java; public class Katze { - public Katze (){ + public Katze (String name){ } } From 4c4a422bc5c3c8fc2fdf5dbcce11fdd9c1cd402b Mon Sep 17 00:00:00 2001 From: rlampert Date: Fri, 24 Sep 2021 15:40:43 +0200 Subject: [PATCH 7/7] =?UTF-8?q?test=20-=20=C3=84nderung=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- text.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 text.txt diff --git a/text.txt b/text.txt new file mode 100644 index 0000000..2ecc42d --- /dev/null +++ b/text.txt @@ -0,0 +1,2 @@ +änderung 1 +