From b0a2bdf4b621b72914436c1fbb1f512479d72d57 Mon Sep 17 00:00:00 2001 From: Christian Baltzer Date: Tue, 16 Jul 2019 16:06:45 +0200 Subject: [PATCH 1/7] Init --- .../ugsbo/com/notenSpeicher/Auswertung.java | 10 ++++++++++ .../java/ugsbo/com/notenSpeicher/Noten.java | 9 +++++++++ .../ugsbo/com/notenSpeicher/NotenKette.java | 9 +++++++++ .../ugsbo/notenSpeicher/Test_NotenChain.java | 17 +++++++++++++++++ 4 files changed, 45 insertions(+) create mode 100644 src/main/java/ugsbo/com/notenSpeicher/Auswertung.java create mode 100644 src/main/java/ugsbo/com/notenSpeicher/Noten.java create mode 100644 src/main/java/ugsbo/com/notenSpeicher/NotenKette.java create mode 100644 src/test/java/com/ugsbo/notenSpeicher/Test_NotenChain.java diff --git a/src/main/java/ugsbo/com/notenSpeicher/Auswertung.java b/src/main/java/ugsbo/com/notenSpeicher/Auswertung.java new file mode 100644 index 0000000..57b3a61 --- /dev/null +++ b/src/main/java/ugsbo/com/notenSpeicher/Auswertung.java @@ -0,0 +1,10 @@ +package ugsbo.com.notenSpeicher; + +public class Auswertung { + + public static void main(String[] args) { + // TODO Auto-generated method stub + + } + +} diff --git a/src/main/java/ugsbo/com/notenSpeicher/Noten.java b/src/main/java/ugsbo/com/notenSpeicher/Noten.java new file mode 100644 index 0000000..de5d9ca --- /dev/null +++ b/src/main/java/ugsbo/com/notenSpeicher/Noten.java @@ -0,0 +1,9 @@ +package ugsbo.com.notenSpeicher; + +public class Noten { + + public Noten() { + // TODO Auto-generated constructor stub + } + +} diff --git a/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java b/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java new file mode 100644 index 0000000..5ac9acc --- /dev/null +++ b/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java @@ -0,0 +1,9 @@ +package ugsbo.com.notenSpeicher; + +public class NotenKette { + + public NotenKette() { + // TODO Auto-generated constructor stub + } + +} diff --git a/src/test/java/com/ugsbo/notenSpeicher/Test_NotenChain.java b/src/test/java/com/ugsbo/notenSpeicher/Test_NotenChain.java new file mode 100644 index 0000000..ae08e6f --- /dev/null +++ b/src/test/java/com/ugsbo/notenSpeicher/Test_NotenChain.java @@ -0,0 +1,17 @@ +package com.ugsbo.notenSpeicher; + +import static org.junit.Assert.*; +import org.junit.Before; +import org.junit.Test; + +public class Test_NotenChain { + + @Before + public void setUp() throws Exception {} + + @Test + public void test() { + fail("Not yet implemented"); + } + +} From aeb4fa731e35c74c673b2c91db481e3566b6ff78 Mon Sep 17 00:00:00 2001 From: Christian Baltzer Date: Tue, 16 Jul 2019 16:16:38 +0200 Subject: [PATCH 2/7] Tests geschrieben --- .../ugsbo/com/notenSpeicher/NotenKette.java | 10 ++++ .../ugsbo/notenSpeicher/Test_NotenChain.java | 54 +++++++++++++++++-- 2 files changed, 60 insertions(+), 4 deletions(-) diff --git a/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java b/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java index 5ac9acc..15e320e 100644 --- a/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java +++ b/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java @@ -6,4 +6,14 @@ public class NotenKette { // TODO Auto-generated constructor stub } + public int durchschnitt() { + // TODO Auto-generated method stub + return 0; + } + + public void add(String eingabeFach, int eingabeNote) { + // TODO Auto-generated method stub + + } + } diff --git a/src/test/java/com/ugsbo/notenSpeicher/Test_NotenChain.java b/src/test/java/com/ugsbo/notenSpeicher/Test_NotenChain.java index ae08e6f..21c0155 100644 --- a/src/test/java/com/ugsbo/notenSpeicher/Test_NotenChain.java +++ b/src/test/java/com/ugsbo/notenSpeicher/Test_NotenChain.java @@ -3,15 +3,61 @@ package com.ugsbo.notenSpeicher; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; +import ugsbo.com.notenSpeicher.NotenKette; public class Test_NotenChain { + public NotenKette Workingobjekt; + @Before - public void setUp() throws Exception {} + public void setUp() throws Exception { + Workingobjekt = new NotenKette(); + } @Test - public void test() { - fail("Not yet implemented"); + public void hinzufügen() { + String eingabeFach = "Mathe"; + int eingabeNote = 2; + + int erwartet = 2; + int ergebnis; + + Workingobjekt.add(eingabeFach, eingabeNote); + ergebnis = Workingobjekt.durchschnitt(); + + assertEquals("Durchschnitt ist korrekt", erwartet, ergebnis); } - + + @Test + public void hinzufügenMehrAlsEinmal() { + String eingabeFach = "Mathe"; + int eingabeNote = 2; + int ergebnis; + int erwartet = 2; + + Workingobjekt.add(eingabeFach, eingabeNote); + Workingobjekt.add(eingabeFach, eingabeNote); + Workingobjekt.add(eingabeFach, eingabeNote); + + ergebnis = Workingobjekt.durchschnitt(); + + assertEquals("eingabe und Ergebnis sind gleich", erwartet, ergebnis); + } + + @Test + public void hinzufügenistNull() { + String eingabeFach = "Mathe"; + int eingabeNote = 2; + int eingabeNotezwei = 0; + int ergebnis; + int erwartet = 2; + + Workingobjekt.add(eingabeFach, eingabeNote); + Workingobjekt.add(eingabeFach, eingabeNotezwei); + + ergebnis = Workingobjekt.durchschnitt(); + + assertEquals("Durchscnitt hat sich nicht verändert", erwartet, ergebnis); + } + } From 72790a51798185cc1fe7cfc3cf11c734b5167cf2 Mon Sep 17 00:00:00 2001 From: Christian Baltzer Date: Tue, 16 Jul 2019 16:23:13 +0200 Subject: [PATCH 3/7] =?UTF-8?q?noten=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/ugsbo/com/notenSpeicher/Noten.java | 61 ++++++++++++++++++- 1 file changed, 59 insertions(+), 2 deletions(-) diff --git a/src/main/java/ugsbo/com/notenSpeicher/Noten.java b/src/main/java/ugsbo/com/notenSpeicher/Noten.java index de5d9ca..48f8874 100644 --- a/src/main/java/ugsbo/com/notenSpeicher/Noten.java +++ b/src/main/java/ugsbo/com/notenSpeicher/Noten.java @@ -1,9 +1,66 @@ package ugsbo.com.notenSpeicher; +import java.security.MessageDigest; + public class Noten { - public Noten() { - // TODO Auto-generated constructor stub + + String Fach; + int Note; + int durchschnitt; + Noten vorher; + + String ownHash; + String previousHash; + + public Noten(String eingabeFach, int eingabeNote) { + Fach = eingabeFach; + Note = eingabeNote; + durchschnitt = eingabeNote; + + vorher = null; + previousHash = null; + + ownHash = createNewHash(eingabeFach); } + private String createNewHash(String input) { + try { + MessageDigest digest = MessageDigest.getInstance("SHA-256"); + //Applies sha256 to our input, + byte[] hash = digest.digest(input.getBytes("UTF-8")); + StringBuffer hexString = new StringBuffer(); // This will contain hash as hexidecimal + for (int i = 0; i < hash.length; i++) { + String hex = Integer.toHexString(0xff & hash[i]); + if(hex.length() == 1) hexString.append('0'); + hexString.append(hex); + } + return hexString.toString(); + } + catch(Exception e) { + throw new RuntimeException(e); + } + } + + + public String getFach() { + return Fach; + } + + public int getNote() { + return Note; + } + + public int getDurchschnitt() { + return durchschnitt; + } + + public Noten getVorher() { + return vorher; + } + + public String getOwnHash() { + return ownHash; + } + } From 09b3fb454c1f3f29cb77a7f3f327b3b8a4f25c1e Mon Sep 17 00:00:00 2001 From: Christian Baltzer Date: Tue, 16 Jul 2019 16:30:18 +0200 Subject: [PATCH 4/7] =?UTF-8?q?bug=20in=20den=20Noten=20gel=C3=B6st?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/ugsbo/com/notenSpeicher/Noten.java | 15 +++++++++++++-- .../java/ugsbo/com/notenSpeicher/NotenKette.java | 4 +++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/ugsbo/com/notenSpeicher/Noten.java b/src/main/java/ugsbo/com/notenSpeicher/Noten.java index 48f8874..34f7ab1 100644 --- a/src/main/java/ugsbo/com/notenSpeicher/Noten.java +++ b/src/main/java/ugsbo/com/notenSpeicher/Noten.java @@ -7,7 +7,7 @@ public class Noten { String Fach; int Note; - int durchschnitt; + float durchschnitt; Noten vorher; String ownHash; @@ -23,6 +23,17 @@ public class Noten { ownHash = createNewHash(eingabeFach); } + + public Noten(String eingabeFach, int eingabeNote, String previousHash, int durchschnitt, Noten vorher) { + Fach = eingabeFach; + Note = eingabeNote; + ownHash = createNewHash(eingabeFach+previousHash); + + durchschnitt = (durchschnitt+eingabeNote)/2; + + this.vorher = vorher; + this.previousHash = previousHash; + } private String createNewHash(String input) { try { @@ -51,7 +62,7 @@ public class Noten { return Note; } - public int getDurchschnitt() { + public float getDurchschnitt() { return durchschnitt; } diff --git a/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java b/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java index 15e320e..0f8f63a 100644 --- a/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java +++ b/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java @@ -2,8 +2,10 @@ package ugsbo.com.notenSpeicher; public class NotenKette { + Noten Workingobjekt; + public NotenKette() { - // TODO Auto-generated constructor stub + Workingobjekt = new Noten("first", 0); } public int durchschnitt() { From eb70a8b7682002d3148abcc5f216edb3d4895b63 Mon Sep 17 00:00:00 2001 From: Christian Baltzer Date: Tue, 16 Jul 2019 16:41:03 +0200 Subject: [PATCH 5/7] =?UTF-8?q?Notenkette=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bug in den Tests gefixt --- .../java/ugsbo/com/notenSpeicher/Noten.java | 6 +++--- .../ugsbo/com/notenSpeicher/NotenKette.java | 10 +++++----- .../ugsbo/notenSpeicher/Test_NotenChain.java | 18 +++++++++--------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/main/java/ugsbo/com/notenSpeicher/Noten.java b/src/main/java/ugsbo/com/notenSpeicher/Noten.java index 34f7ab1..0b67063 100644 --- a/src/main/java/ugsbo/com/notenSpeicher/Noten.java +++ b/src/main/java/ugsbo/com/notenSpeicher/Noten.java @@ -7,7 +7,7 @@ public class Noten { String Fach; int Note; - float durchschnitt; + double durchschnitt; Noten vorher; String ownHash; @@ -24,7 +24,7 @@ public class Noten { ownHash = createNewHash(eingabeFach); } - public Noten(String eingabeFach, int eingabeNote, String previousHash, int durchschnitt, Noten vorher) { + public Noten(String eingabeFach, int eingabeNote, String previousHash, double durchschnitt, Noten vorher) { Fach = eingabeFach; Note = eingabeNote; ownHash = createNewHash(eingabeFach+previousHash); @@ -62,7 +62,7 @@ public class Noten { return Note; } - public float getDurchschnitt() { + public double getDurchschnitt() { return durchschnitt; } diff --git a/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java b/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java index 0f8f63a..fcdb551 100644 --- a/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java +++ b/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java @@ -8,14 +8,14 @@ public class NotenKette { Workingobjekt = new Noten("first", 0); } - public int durchschnitt() { - // TODO Auto-generated method stub - return 0; + public double durchschnitt() { + return Workingobjekt.getDurchschnitt(); } public void add(String eingabeFach, int eingabeNote) { - // TODO Auto-generated method stub - + Noten newWorkingObjekt = new Noten(eingabeFach,eingabeNote, Workingobjekt.previousHash, Workingobjekt.durchschnitt, Workingobjekt); + Workingobjekt = newWorkingObjekt; } + } diff --git a/src/test/java/com/ugsbo/notenSpeicher/Test_NotenChain.java b/src/test/java/com/ugsbo/notenSpeicher/Test_NotenChain.java index 21c0155..879908a 100644 --- a/src/test/java/com/ugsbo/notenSpeicher/Test_NotenChain.java +++ b/src/test/java/com/ugsbo/notenSpeicher/Test_NotenChain.java @@ -19,21 +19,21 @@ public class Test_NotenChain { String eingabeFach = "Mathe"; int eingabeNote = 2; - int erwartet = 2; - int ergebnis; + double erwartet = 2; + double ergebnis; Workingobjekt.add(eingabeFach, eingabeNote); ergebnis = Workingobjekt.durchschnitt(); - assertEquals("Durchschnitt ist korrekt", erwartet, ergebnis); + assertEquals(erwartet, ergebnis, 0.1); } @Test public void hinzufügenMehrAlsEinmal() { String eingabeFach = "Mathe"; int eingabeNote = 2; - int ergebnis; - int erwartet = 2; + double ergebnis; + double erwartet = 2; Workingobjekt.add(eingabeFach, eingabeNote); Workingobjekt.add(eingabeFach, eingabeNote); @@ -41,7 +41,7 @@ public class Test_NotenChain { ergebnis = Workingobjekt.durchschnitt(); - assertEquals("eingabe und Ergebnis sind gleich", erwartet, ergebnis); + assertEquals(erwartet, ergebnis, 0.1); } @Test @@ -49,15 +49,15 @@ public class Test_NotenChain { String eingabeFach = "Mathe"; int eingabeNote = 2; int eingabeNotezwei = 0; - int ergebnis; - int erwartet = 2; + double ergebnis; + double erwartet = 2; Workingobjekt.add(eingabeFach, eingabeNote); Workingobjekt.add(eingabeFach, eingabeNotezwei); ergebnis = Workingobjekt.durchschnitt(); - assertEquals("Durchscnitt hat sich nicht verändert", erwartet, ergebnis); + assertEquals(erwartet, ergebnis, 0.1); } } From 476b2e4b359c95e28325e7b7646efc7780d43ceb Mon Sep 17 00:00:00 2001 From: Christian Baltzer Date: Tue, 16 Jul 2019 16:52:11 +0200 Subject: [PATCH 6/7] bug in der berechnung des Durchschnitts behoben. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Abfrage nach einer Note 0 eingefügt tests an gegebenheiten angepasst --- src/main/java/ugsbo/com/notenSpeicher/Noten.java | 2 +- src/main/java/ugsbo/com/notenSpeicher/NotenKette.java | 6 ++++-- src/test/java/com/ugsbo/notenSpeicher/Test_NotenChain.java | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/ugsbo/com/notenSpeicher/Noten.java b/src/main/java/ugsbo/com/notenSpeicher/Noten.java index 0b67063..31f61fd 100644 --- a/src/main/java/ugsbo/com/notenSpeicher/Noten.java +++ b/src/main/java/ugsbo/com/notenSpeicher/Noten.java @@ -29,7 +29,7 @@ public class Noten { Note = eingabeNote; ownHash = createNewHash(eingabeFach+previousHash); - durchschnitt = (durchschnitt+eingabeNote)/2; + this.durchschnitt = (durchschnitt+eingabeNote)/2; this.vorher = vorher; this.previousHash = previousHash; diff --git a/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java b/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java index fcdb551..41912bc 100644 --- a/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java +++ b/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java @@ -4,8 +4,8 @@ public class NotenKette { Noten Workingobjekt; - public NotenKette() { - Workingobjekt = new Noten("first", 0); + public NotenKette(String eingabeFach, int eingabeNote) { + Workingobjekt = new Noten(eingabeFach, eingabeNote); } public double durchschnitt() { @@ -13,6 +13,8 @@ public class NotenKette { } public void add(String eingabeFach, int eingabeNote) { + if (eingabeNote == 0) return; + Noten newWorkingObjekt = new Noten(eingabeFach,eingabeNote, Workingobjekt.previousHash, Workingobjekt.durchschnitt, Workingobjekt); Workingobjekt = newWorkingObjekt; } diff --git a/src/test/java/com/ugsbo/notenSpeicher/Test_NotenChain.java b/src/test/java/com/ugsbo/notenSpeicher/Test_NotenChain.java index 879908a..241dab3 100644 --- a/src/test/java/com/ugsbo/notenSpeicher/Test_NotenChain.java +++ b/src/test/java/com/ugsbo/notenSpeicher/Test_NotenChain.java @@ -11,7 +11,7 @@ public class Test_NotenChain { @Before public void setUp() throws Exception { - Workingobjekt = new NotenKette(); + Workingobjekt = new NotenKette("first", 2); } @Test From f36108bc3cbb49b6c9b6c1756c1735e24977e3ab Mon Sep 17 00:00:00 2001 From: Christian Baltzer Date: Tue, 16 Jul 2019 17:00:20 +0200 Subject: [PATCH 7/7] =?UTF-8?q?alle=20tests=20gr=C3=BCn?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/ugsbo/com/notenSpeicher/Auswertung.java | 11 ++++++++--- .../java/ugsbo/com/notenSpeicher/NotenKette.java | 15 +++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/main/java/ugsbo/com/notenSpeicher/Auswertung.java b/src/main/java/ugsbo/com/notenSpeicher/Auswertung.java index 57b3a61..09ce0fc 100644 --- a/src/main/java/ugsbo/com/notenSpeicher/Auswertung.java +++ b/src/main/java/ugsbo/com/notenSpeicher/Auswertung.java @@ -3,8 +3,13 @@ package ugsbo.com.notenSpeicher; public class Auswertung { public static void main(String[] args) { - // TODO Auto-generated method stub - + NotenKette Work = new NotenKette("Prog 1", 1); + Work.add("Prog 2", 2); + Work.add("Wi", 3); + + System.out.println(Work.durchschnitt() + "\n"); + + System.out.print(Work.toString()); } -} +} \ No newline at end of file diff --git a/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java b/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java index 41912bc..d749bbd 100644 --- a/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java +++ b/src/main/java/ugsbo/com/notenSpeicher/NotenKette.java @@ -19,5 +19,20 @@ public class NotenKette { Workingobjekt = newWorkingObjekt; } + public String toString() { + String erg = ""; + Noten temp = Workingobjekt; + + while (true) { + erg += temp.getFach() + "\t"+ temp.getNote() +"\n"; + + temp = temp.getVorher(); + + if (temp == null) { + return erg; + } + + } + } }