From 05e90e66c153e0fc3091c23f264a436ab51ec696 Mon Sep 17 00:00:00 2001 From: schrom01 Date: Sat, 9 Oct 2021 16:17:02 +0200 Subject: [PATCH] =?UTF-8?q?Aufgabe=20durchgef=C3=BChrt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Nummernanzeige.ctxt | 19 +++++++++++++++++++ Uhrenanzeige.ctxt | 22 ++++++++++++++++++++++ Uhrenanzeige.java | 22 +++++++++++++++------- package.bluej | 39 +++++++++++++++++++++------------------ 4 files changed, 77 insertions(+), 25 deletions(-) create mode 100644 Nummernanzeige.ctxt create mode 100644 Uhrenanzeige.ctxt diff --git a/Nummernanzeige.ctxt b/Nummernanzeige.ctxt new file mode 100644 index 0000000..14feb0e --- /dev/null +++ b/Nummernanzeige.ctxt @@ -0,0 +1,19 @@ +#BlueJ class context +comment0.target=Nummernanzeige +comment0.text=\r\n\ Die\ Klasse\ Nummernanzeige\ repr\u00E4sentiert\ Darstellungen\ von\r\n\ digitalen\ Werten,\ die\ von\ null\ bis\ zu\ einem\ vorgegebenen\ Limit\r\n\ reichen\ k\u00F6nnen.\ Das\ Limit\ wird\ definiert,\ wenn\ eine\ Nummernanzeige\r\n\ erzeugt\ wird.\ Die\ darstellbaren\ Werte\ reichen\ von\ null\ bis\ Limit-1.\r\n\ Wenn\ beispielsweise\ eine\ Nummernanzeige\ f\u00FCr\ die\ Sekunden\ einer\r\n\ digitalen\ Uhr\ verwendet\ werden\ soll,\ w\u00FCrde\ man\ ihr\ Limit\ auf\ 60\r\n\ setzen,\ damit\ die\ dargestellten\ Werte\ von\ 0\ bis\ 59\ reichen.\r\n\ Wenn\ der\ Wert\ einer\ Nummernanzeige\ erh\u00F6ht\ wird,\ wird\ bei\ Erreichen\r\n\ des\ Limits\ der\ Wert\ automatisch\ auf\ null\ zur\u00FCckgesetzt.\r\n\ \r\n\ @author\ Michael\ K\u00F6lling\ und\ David\ J.\ Barnes\r\n\ @version\ 31.07.2011\r\n +comment1.params=anzeigeLimit +comment1.target=Nummernanzeige(int) +comment1.text=\r\n\ Konstruktor\ f\u00FCr\ Exemplare\ der\ Klasse\ Nummernanzeige.\r\n\ Setzt\ das\ Limit,\ bei\ dem\ die\ Anzeige\ zur\u00FCckgesetzt\ wird.\r\n +comment2.params= +comment2.target=int\ gibWert() +comment2.text=\r\n\ Liefere\ den\ aktuellen\ Wert\ als\ int.\r\n +comment3.params= +comment3.target=java.lang.String\ gibAnzeigewert() +comment3.text=\r\n\ Liefere\ den\ Anzeigewert,\ also\ den\ Wert\ dieser\ Anzeige\ als\r\n\ einen\ String\ mit\ zwei\ Ziffern.\ Wenn\ der\ Wert\ der\ Anzeige\r\n\ kleiner\ als\ zehn\ ist,\ wird\ die\ Anzeige\ mit\ einer\ f\u00FChrenden\r\n\ null\ einger\u00FCckt.\r\n +comment4.params=ersatzwert +comment4.target=void\ setzeWert(int) +comment4.text=\r\n\ Setze\ den\ Wert\ der\ Anzeige\ auf\ den\ angegebenen\ 'ersatzwert'.\r\n\ Wenn\ der\ angegebene\ Wert\ unter\ null\ oder\ \u00FCber\ dem\ Limit\ liegt,\r\n\ tue\ nichts.\r\n +comment5.params= +comment5.target=void\ erhoehen() +comment5.text=\r\n\ Erh\u00F6he\ den\ Wert\ um\ eins.\ Wenn\ das\ Limit\ erreicht\ ist,\ setze\r\n\ den\ Wert\ wieder\ auf\ null.\r\n +numComments=6 diff --git a/Uhrenanzeige.ctxt b/Uhrenanzeige.ctxt new file mode 100644 index 0000000..0a6c8ae --- /dev/null +++ b/Uhrenanzeige.ctxt @@ -0,0 +1,22 @@ +#BlueJ class context +comment0.target=Uhrenanzeige +comment0.text=\r\n\ Die\ Klassen\ Uhrenanzeige\ implementiert\ die\ Anzeige\ einer\ Digitaluhr.\r\n\ Die\ Anzeige\ zeigt\ Stunden\ und\ Minuten.\ Der\ Anzeigebereich\ reicht\ von\r\n\ 00\:00\ (Mitternacht)\ bis\ 23\:59\ (eine\ Minute\ vor\ Mitternacht).\r\n\r\n\ Eine\ Uhrenanzeige\ sollte\ min\u00FCtlich\ "Taktsignale"\ (\u00FCber\ die\ Operation\r\n\ "taktsignalGeben")\ erhalten,\ damit\ sie\ die\ Anzeige\ aktualisieren\ \r\n\ kann.\ Dies\ geschieht,\ wie\ man\ es\ bei\ einer\ Uhr\ erwartet\:\ Die\ \r\n\ Stunden\ erh\u00F6hen\ sich,\ wenn\ das\ Minutenlimit\ einer\ Stunde\ erreicht\r\n\ ist.\r\n\ \r\n\ @author\ Michael\ K\u00F6lling\ und\ David\ J.\ Barnes\r\n\ @version\ 31.07.2011\r\n +comment1.params= +comment1.target=Uhrenanzeige() +comment1.text=\r\n\ Konstruktor\ f\u00FCr\ ein\ Exemplar\ von\ Uhrenanzeige.\r\n\ Mit\ diesem\ Konstruktor\ wird\ die\ Anzeige\ auf\ 00\:00\ initialisiert.\r\n +comment2.params=stunde\ minute\ sekunde +comment2.target=Uhrenanzeige(int,\ int,\ int) +comment2.text=\r\n\ Konstruktor\ f\u00FCr\ ein\ Exemplar\ von\ Uhrenanzeige.\r\n\ Mit\ diesem\ Konstruktor\ wird\ die\ Anzeige\ auf\ den\ Wert\r\n\ initialisiert,\ der\ durch\ 'stunde'\ und\ 'minute'\ \r\n\ definiert\ ist.\r\n +comment3.params= +comment3.target=void\ taktsignalGeben() +comment3.text=\r\n\ Diese\ Operation\ sollte\ einmal\ pro\ Minute\ aufgerufen\ werden\ -\r\n\ sie\ sorgt\ daf\u00FCr,\ dass\ diese\ Uhrenanzeige\ um\ eine\ Minute\r\n\ weiter\ gestellt\ wird.\r\n +comment4.params=stunde\ minute\ sekunde +comment4.target=void\ setzeUhrzeit(int,\ int,\ int) +comment4.text=\r\n\ Setze\ die\ Uhrzeit\ dieser\ Anzeige\ auf\ die\ gegebene\ 'stunde'\ und\r\n\ 'minute'.\r\n +comment5.params= +comment5.target=java.lang.String\ gibUhrzeit() +comment5.text=\r\n\ Liefere\ die\ aktuelle\ Uhrzeit\ dieser\ Uhrenanzeige\ im\ Format\ SS\:MM.\r\n +comment6.params= +comment6.target=void\ anzeigeAktualisieren() +comment6.text=\r\n\ Aktualisiere\ die\ interne\ Zeichenkette,\ die\ die\ Zeitanzeige\ h\uFFFDlt.\r\n +numComments=7 diff --git a/Uhrenanzeige.java b/Uhrenanzeige.java index ed31285..cd5004b 100644 --- a/Uhrenanzeige.java +++ b/Uhrenanzeige.java @@ -17,6 +17,7 @@ public class Uhrenanzeige { private Nummernanzeige stunden; private Nummernanzeige minuten; + private Nummernanzeige sekunden; private String zeitanzeige; // simuliert die tatsächliche Anzeige /** @@ -27,6 +28,7 @@ public class Uhrenanzeige { stunden = new Nummernanzeige(24); minuten = new Nummernanzeige(60); + sekunden = new Nummernanzeige(60); anzeigeAktualisieren(); } @@ -36,11 +38,12 @@ public class Uhrenanzeige * initialisiert, der durch 'stunde' und 'minute' * definiert ist. */ - public Uhrenanzeige(int stunde, int minute) + public Uhrenanzeige(int stunde, int minute, int sekunde) { stunden = new Nummernanzeige(24); minuten = new Nummernanzeige(60); - setzeUhrzeit(stunde, minute); + sekunden = new Nummernanzeige(60); + setzeUhrzeit(stunde, minute, sekunde); } /** @@ -50,9 +53,12 @@ public class Uhrenanzeige */ public void taktsignalGeben() { - minuten.erhoehen(); - if(minuten.gibWert() == 0) { // Limit wurde erreicht! - stunden.erhoehen(); + sekunden.erhoehen(); + if(sekunden.gibWert() == 0) { + minuten.erhoehen(); + if (minuten.gibWert() == 0) { // Limit wurde erreicht! + stunden.erhoehen(); + } } anzeigeAktualisieren(); } @@ -61,10 +67,11 @@ public class Uhrenanzeige * Setze die Uhrzeit dieser Anzeige auf die gegebene 'stunde' und * 'minute'. */ - public void setzeUhrzeit(int stunde, int minute) + public void setzeUhrzeit(int stunde, int minute, int sekunde) { stunden.setzeWert(stunde); minuten.setzeWert(minute); + sekunden.setzeWert(sekunde); anzeigeAktualisieren(); } @@ -82,6 +89,7 @@ public class Uhrenanzeige private void anzeigeAktualisieren() { zeitanzeige = stunden.gibAnzeigewert() + ":" - + minuten.gibAnzeigewert(); + + minuten.gibAnzeigewert() + ":" + + sekunden.gibAnzeigewert(); } } diff --git a/package.bluej b/package.bluej index 5054dfd..7fef3ea 100644 --- a/package.bluej +++ b/package.bluej @@ -2,40 +2,43 @@ dependency1.from=Uhrenanzeige dependency1.to=Nummernanzeige dependency1.type=UsesDependency -package.editor.height=460 -package.editor.width=776 -package.editor.x=163 -package.editor.y=30 +editor.fx.0.height=1416 +editor.fx.0.width=2576 +editor.fx.0.x=3432 +editor.fx.0.y=-8 +objectbench.height=340 +objectbench.width=1893 +package.divider.horizontal=0.5555555555555556 +package.divider.vertical=0.736322188449848 +package.editor.height=962 +package.editor.width=3326 +package.editor.x=0 +package.editor.y=0 +package.frame.height=1416 +package.frame.width=3456 package.numDependencies=1 package.numTargets=2 package.showExtends=true package.showUses=true project.charset=UTF-8 -readme.editor.height=526 -readme.editor.width=748 -readme.editor.x=0 -readme.editor.y=0 -target1.editor.height=797 -target1.editor.width=936 -target1.editor.x=693 -target1.editor.y=111 +readme.height=58 +readme.name=@README +readme.width=47 +readme.x=10 +readme.y=10 target1.height=50 target1.name=Nummernanzeige target1.naviview.expanded=false target1.showInterface=false target1.type=ClassTarget -target1.width=120 +target1.width=140 target1.x=190 target1.y=100 -target2.editor.height=731 -target2.editor.width=764 -target2.editor.x=516 -target2.editor.y=22 target2.height=50 target2.name=Uhrenanzeige target2.naviview.expanded=false target2.showInterface=false target2.type=ClassTarget -target2.width=100 +target2.width=110 target2.x=70 target2.y=40