Zum Forum springen
Benachrichtigungen
Alles löschen

Programmieraufgabe Java

37 Beiträge
12 Benutzer
365 Reactions
3,643 Ansichten
Ratskrone
Beigetreten: 10.02.2020

Guten Tag,

ich bräuchte Hilfe bei einer Programmieraufgabe in Java. Es müsste in den nächsten 3 Tagen fertig werden. Selber werde ich es wohl nicht mehr schaffen. Es ist keine langwierige Aufgabe. Mir fehlt allerdings das nötige Wissen um es jetzt noch zu schaffen. Es geht um einen kleinen Anwendungsfall mit EventSourcing, REST und CRUD-Repository.
Kann zwar nicht viel zahlen, aber ich hoffe man wird sich einig.


Antwort
Zitat
36 Antworten
Sulu
Beigetreten: 21.04.2006

Und den Schein nächstes Semester machen?


Antwort
Zitat
Ratskrone
Beigetreten: 10.02.2020

Hab ich keine Nerven für. Aber scheinbar wird es so kommen.


Antwort
Zitat
SunnySam
Beigetreten: 07.08.2007

Ich kann dir wohl nicht helfen, aber mich würde die genaue Aufgabe interessieren, falls du sie hier preisgeben möchtest.


Antwort
Zitat
Serdna777
Beigetreten: 15.01.2010

Bis wann muss die Aufgabe gemacht werden.
ich muss Java für mein Studium wiederholen,wenn du 1 Woche noch warten kannst,könnte ich sie dir machen.


Antwort
Zitat
Ratskrone
Beigetreten: 10.02.2020

Bis zum 22.02. hast du noch Zeit.


Antwort
Zitat
Sulu
Beigetreten: 21.04.2006

Original von Ratskrone
Bis zum 22.02. hast du noch Zeit.

ohne Worte


Antwort
Zitat
Serdna777
Beigetreten: 15.01.2010

Schreib mir dann,was gemacht werden muss.
ich könnte zumindest die Aufgabe zum Teil lösen.


Antwort
Zitat
Ratskrone
Beigetreten: 10.02.2020

Für das Veranstaltungsmanagement soll erfasst werden, welche Teilnehmer (Vortragender, Zuhörer,
Helfer) zu erwarten sind. Außerdem sollen auch Zeitabschnitte erfasst werden, in denen
Diskussionen, Kurz- oder Langvorträge stattfinden.
Beschreibung Datenmodell
Für jeden Teilnehmer soll erfasst werden:
• Name
• Vorname
• Wohnort
Weitere Details müssen für den Teilnehmer nicht erfasst werden. Vortragende, Zuhörer und Helfer
sollen ebenfalls erfasst werden. Dementsprechend sollen für diese speziellen Teilnehmer zusätzlich
noch spezifische Eigenschaften erfasst werden. Diese sind für Vortragender:
• Unternehmen
• Anzahl der bisher insgesamt gehaltenen Vorträge
• Beschreibung (kurzer Text, um den Vortragenden zu beschreiben)
Für Zuhörer sollen die folgenden zusätzlichen Eigenschaften erfasst werden:
• Anzahl der Jahre Berufserfahrung
• Interessensgebiete (z. B. Java, C, Python, Scrum)
Für Helfer sollen ebenfalls zusätzliche Eigenschaften erfasst werden:
• Maximale Anzahl gleichzeitig getragener Klaviere
Für jeden Teilnehmer soll außerdem eine ID erzeugt werden, die aus einer Zeichenkombination (z. B.
JAVALAND) und einer fortlaufenden, für jeden Teilnehmer einzigartigen Nummer besteht. Das
könnte zum Beispiel zu der ID „JAVALAND-0034“ führen.
Außerdem sollen die Zeitabschnitte für die Veranstaltung erfasst werden können, wobei in jedem
Zeitabschnitt entweder ein Kurzvortrag, ein Langvortrag oder eine Diskussion stattfinden kann. Zu
jedem Zeitabschnitt soll eine Kurzbeschreibung erfasst werden können. Es solle auch vermerkt
werden, welche Art von Vortrag oder Diskussion tatsächlich in dem Zeitabschnitt stattfindet.
Klasse mit verschiedenen Zuständen
Jeder Teilnehmer soll einen bestimmten Status hinsichtlich seiner Anmeldung haben. Es können
dadurch drei verschiedene Zustände erreicht werden: ANGEMELDET, ANGEMELDETBEZAHLT,
ABGEMELDET.
Ereignisse / Zustände
Jeder Wechsel des Zustandes eines Teilnehmers führt zu einem Ereignis. Zu Beginn befindet sich der
Teilnehmer im Zustand ANGEMELDET. Wenn das Ereignis „Zahlung“ auftritt, dann wird der
Teilnehmer in den Zustand ANGEMELDETBEZAHLT gesetzt. Wenn danach das Ereignis „Abmeldung“
auftritt, dann wird der Teilnehmer in den Zustand ABGEMELDET überführt.
Repository
Das Repository soll zusätzlich zu den CRUD-Methoden zurückgeben können, welche Teilnehmer sich
im Zustand ANGEMELDETBEZAHLT befinden.

Aufgaben
1. Datenmodell: Entwickeln Sie für das beschriebene Datenmodell geeignete Java-Klassen.
Wählen Sie dabei ein geeignetes Vorgehen für Wiederverwendung. Erstellen Sie außerdem
ein geeignetes Package, in dem das Datenmodell platziert wird. Eine toString()-Methode
kann bei der späteren Ausgabe der Klasse zum einfachen Testen genutzt werden.
Implementieren Sie eine geeignete toString()-Methode.
2. ID-Erzeugung: Implementieren Sie gegebenenfalls notwendige Methoden in den Klassen, um
beispielsweise spezielle Anforderungen an die ID-Erzeugung zu erfüllen.
3. Ereignisse: Modellieren Sie die Ereignisse, welche im Datenmodell erforderlich sind.
4. REST: Erstellen Sie eine REST-Schnittstellen für mindestens eine der vorhandenen Klassen.
Die über Beziehungen möglicherweise verbundenen Klassen müssen bei der RESTSchnittstelle nicht einbezogen werden. Es sollen die folgenden Möglichkeiten bestehen:
• /klassenname - GET-Anfragen aller Objekte, die zu dieser Klasse gehören
• /klassenname/23 - GET-Anfrage eines Objektes mit einer speziellen ID. Hierbei steht 23
stellvertretend für eine ID und kann auch eine beliebige andere, vorhandene ID sein.
• /klassenname - POST-Anfrage für das Erstellen eines neuen Objektes der Klasse
• /klassenname/42 - DELETE-Anfrage für das Löschen des Objektes mit der übergebenen
ID. Hierbei steht 42 beispielhaft für die ID des zu löschenden Objektes.
5. Repository: Erstellen Sie geeignete Repositories für die implementierten Klassen. Nutzen Sie
das CRUD-Repository als Grundlage. Realisieren Sie außerdem die geforderte Abfrage aus der
vorherigen Beschreibung des Anwendungsfalles (Abschnitt Repository).
6. Testen: Erstellen Sie einen CommandLineRunner, um die Funktionsfähigkeit Ihres
Programmcodes zu zeigen. Im CommandLineRunner sollen die folgenden Funktionalitäten
Ihrer Implementierung demonstriert werden.
• Erzeugen Sie konkrete neue Objekte aller Klassen erzeugen und der damit
möglicherweise verbundenen Klassen.
• Speichern Sie die neu erzeugten Objekte in den jeweiligen Repositories.
• Zeigen Sie die Funktionalität von mindestens zwei verschiedenen Repositories, indem Sie
eine Anfrage an das Repository stellen und die Rückgabewerte über ein einfaches
System.out oder einen Logger ausgeben.
• Zeigen Sie die Funktionalität der geforderten zusätzlichen Methode des Repositories
(Abschnitt Repository).
7. Event-Persistenz: Konzipieren und implementieren Sie eine Möglichkeit, um die Events
dauerhaft zu speichern. Zeigen Sie die Funktionsfähigkeit der Event-Persistenz durch
Implementierung in einem weiteren Teil des CommandLineRunners.


Antwort
Zitat
Serdna777
Beigetreten: 15.01.2010

OK.
1)Ich mach zuerst ein Klassendiagram mithilfe von UML.
2)Dann implementiere ich das.

Muss man für die EIngabe/AUsgabe Java Graphics benutzen?
Weil ich die Graphics vergessen haben.


Antwort
Zitat
Ratskrone
Beigetreten: 10.02.2020

Nein keine Graphics. Wenn sowas erwünscht wäre, würde es in der Aufgabenbeschreibung stehen.

Klassendiagramm brauch ich nicht.


Antwort
Zitat
Serdna777
Beigetreten: 15.01.2010

ok.ich mach zuerst das,was ich machen kann.
Manche Sachen kenne ich nicht,wenn es zeitlich gehen würde,schalge ich sie noch nach.
Bis später


Antwort
Zitat
Serdna777
Beigetreten: 15.01.2010

Für jeden Teilnehmer soll außerdem eine ID erzeugt werden, die aus einer Zeichenkombination (z. B.
JAVALAND) und einer fortlaufenden, für jeden Teilnehmer einzigartigen Nummer besteht. Das
könnte zum Beispiel zu der ID „JAVALAND-0034“ führen.

WIrd die Zahl 0034 zufällig erzeugt,oder zeigt sie,dass der Betrachtere Teilnehmer sich als 34 ter angemeldet hat?


Antwort
Zitat
Ratskrone
Beigetreten: 10.02.2020

Es steht doch da, dass die ID fortlaufend erzeugt wird.

Mir bringt es nichts wenn du nur 2-3 Teilaufgaben machst. Wenn du denkst du schaffst einige Sachen nicht, dann lass es bitte bleiben.
Ich bedanke mich für deine Mühe.


Antwort
Zitat
Serdna777
Beigetreten: 15.01.2010

Kein Problem.
ich werde wahrscheinlich dann die AUfgabe als Übung entspannt machen,wenn du willst sag ich dir morgen bescheid ,wie viel ich geschafft hab.
Es ist auch so,dass die AUfgabestellung sehr unübersichtlich ist,was den Verständniss erschwert.

PS Das ID fortlaufen erzeugt wird,hab ich verstanden .
Ich wollte wissen,nur wie man ID erzeugen wird/ob es vorgegeben wurde,wie man ID erzeugen soll.
Wahrscheinlich wurde es nicht vorgegeben und ich hab eine freie Wahl.


Antwort
Zitat
topspit
Beigetreten: 07.02.2008

Wie langst hattest du für diese Aufgabe(n) denn Zeit? Ganz so trivial ist das ja alles nicht.


Antwort
Zitat
Ratskrone
Beigetreten: 10.02.2020

Es ist keine Aufgabe mit Abgabedatum. Es ist eine typische Prüfungsaufgabe. Ich hab zuviel Zeit mit den anderen Prüfungen verschwendet und dann keine Zeit mehr für das hier gehabt.


Antwort
Zitat
topspit
Beigetreten: 07.02.2008

Axo... Du hast am 23.02. eine Prüfung und brauchst eine Musterlösung weil am 23.02. höchstwahrscheinlich eine (fast) identische Aufgabe geprüft wird.
Was studierst du aktuell?


Antwort
Zitat
Ratskrone
Beigetreten: 10.02.2020

Wirtschaftsinformatik


Antwort
Zitat
topspit
Beigetreten: 07.02.2008

Cooler Studiengang. Bist du mehr der BWLer oder Techniker, woran hast du mehr Spaß?


Antwort
Zitat