Accountant

Krypton

Mitglied
Schönen guten Tag! Und zwar habe ich ein Problem dabei, einen brauchbaren Ansatz bei meiner Aufgabe zu finden. Die Aufgabe lautet wie folgt:

Überprüfen Sie in Ihrer Implementierung zunächst die Syntax des übergebenen Buchungssatzes und stellen Sie sicher, dass der Betrag auf der Soll-Seite dem Betrag auf der Haben-Seite entspricht. Werfen Sie im Fehlerfall passende Exceptions. Für die anschließende Buchung gilt:
1. Öffnen Sie zunächst alle beteiligten Konten (open)
2. Bereiten Sie die Buchung auf jedem Konto vor (credit oder debit)
3. Tritt bei keinem Konto ein Fehler auf, dann führen Sie die Buchung durch (commit)
4. Tritt ein Fehler auf (z.B. Betrag nicht ausreichend), sollen alle bisherigen Änderungen rückgängig gemacht werden (abort)
5. Abschließend sollen alle Konten in jedem Fall geschlossen werden (close)

So wie ich das verstehe enthält der String Konten und die Werte die gebucht werden. Nun wird mir aber nicht klar, was genau getan werden muss, um die Syntax zu überprüfen.

Die Vorlage gibt Folgendes her:

package ledger;

public class Accountant{

public void postEntry(String journalEntry) throws Exception{

//check syntax and import

//Ensure that debit value equals credit value

//Open Accounts

//Post entries

//Ensure that all accounts are closed

}

}

Vielen Dank im Voraus!
 

Krypton

Mitglied
Tut mir leid, das habe ich vergessen anzuhängen :D

Ein beispielhafter Buchungssatz sieht wie folgt aus:

„Equity 27, Bonds_Payable 385; Land 137, Other_Revenues 275“
 

mihe7

Top Contributor
Ja, in Summe passt das auch. Aber ich verstehe die Buchung als solche nicht. Steht da dabei, was hier gebucht werden soll?
 

mihe7

Top Contributor
OK. Dann würde ich sagen, dass der grundsätzilche Aufbau:
Code:
Soll-Buchungen;Haben-Buchungen
ist. D. h. es muss ein Semikolon enthalten sein.

Je Seite gilt:
Code:
Buchung(,Buchung)*
Und je Buchung
Code:
Konto Betrag
Wobei ich zusätzliche Whitespaces mal nicht berücksichtigt habe (die bekommst Du per trim() weg).

Deine erste Aufgabe dürfte nun darin bestehen, den String entsprechend zu prüfen und aufzuteilen.
 

Krypton

Mitglied
Super, vielen Dank. Wenn ich den String aufgeteilt habe, ist es mir dann möglich, die enthaltenden Werte miteinander zu vergleichen?
 

Krypton

Mitglied
Aaaaaah! Tausend Dank. Jetzt ist mir um einiges klarer geworden, was ich a) nicht gesehen habe und b) wie die Herangehensweise vorgesehen ist!
 

Neue Themen


Oben