Hallo.
Wer kann mir helfen und mir eine mögliche Lösung für dieses Problem liefern?
Wäre sehr dankbar...danke im voraus
mfg
pep0
---
Schreiben Sie ein Programm ProcessArticles2, das eine Datei einliest, die eine Folge von 0 oder mehr Kommandos der folgenden Form enthält (in Wirklichkeit steht jeder Teil eines Kommandos in einer eigenen Zeile):
changeprice Id price
addsale Id sales
printturnover Id
resetsales Id
Das Kommando changeprice setzt den Preis des Artikels Id auf price; das Kommando addSale registriert sales Verkäufe des Artikels Id; das Kommando printturnover druckt den aktuellen Umsatz des Artikels Id; das Kommando resetsales setzt die Verkaufszahlen des Artikels Id auf Null zurück (lässt aber seinen Preis unverändert).
Ihr Programm soll drei Artikel mit den Bezeichnungen “A”, “B”, und “C” verwalten und Kommandodateien wie die folgende verarbeiten:
changeprice A 5.5
changeprice B 2.4
addsale A 4
addsale B 3
addsale A 5
printturnover A
printturnover B
printturnover C
resetturnover A
addsale A 5
changeprice B 1.5
addsale B 2
addsale C 3
printturnover A
printturnover B
printturnover C
Dabei soll Ihr Programm eine Klasse Article mit der folgenden Schnittstelle implementieren und verwenden:
class Article
{
Article(String id);
void setPrice(float price);
boolean void addSale(int n);
boolean printTurnover();
void resetSales();
}
Der Konstruktor Article legt einen neuen Artikel mit der entsprechenden Bezeichnung an. Die Methode addSale überprüft, ob bereits ein Preis für den Artikel gesetzt wurde. Wenn ja, wird der Umsatz des Artikels entsprechend erhöht, und die Funktion liefert als Ergebnis true. Wenn nein, bleibt der Umsatz unverändert und die Funktion liefert als Ergebnis false. Entsprechend liefert die Methode printTurnover als Ergebnis false (und druckt nichts), wenn noch kein Preis für den Artikel gesetzt wurde; ansonsten druckt die Methode eine Zeile der Form
Artikel Id (Preis: Einzelpreis, Verkäufe: Verkäufe): Umsatz
Das Programm soll die Kommandos von einer Textdatei einlesen, deren Namen als Programmargument übergeben wird (siehe Übung 9). Treten bei der Bearbeitung eines Kommandos Fehler auf, soll eine Meldung ausgedruckt werden (und das Programm mit dem nächsten Kommando fortfahren).
Es gelten die üblichen Entwicklungs-, Programmier- und Testrichtlinien; testen Sie das Programm auch mit der oben gezeigten Kommandodatei.
Hinweis: der Ausdruck s0.equals(s1) mit den String-Objekten s0 und s1 liefert true, wenn der Inhalt von s0 dem Inhalt von s1 gleicht (String-Objekte können nicht mit dem Operator == auf inhaltliche Gleichheit getestet werden).
Wer kann mir helfen und mir eine mögliche Lösung für dieses Problem liefern?
Wäre sehr dankbar...danke im voraus
mfg
pep0
---
Schreiben Sie ein Programm ProcessArticles2, das eine Datei einliest, die eine Folge von 0 oder mehr Kommandos der folgenden Form enthält (in Wirklichkeit steht jeder Teil eines Kommandos in einer eigenen Zeile):
changeprice Id price
addsale Id sales
printturnover Id
resetsales Id
Das Kommando changeprice setzt den Preis des Artikels Id auf price; das Kommando addSale registriert sales Verkäufe des Artikels Id; das Kommando printturnover druckt den aktuellen Umsatz des Artikels Id; das Kommando resetsales setzt die Verkaufszahlen des Artikels Id auf Null zurück (lässt aber seinen Preis unverändert).
Ihr Programm soll drei Artikel mit den Bezeichnungen “A”, “B”, und “C” verwalten und Kommandodateien wie die folgende verarbeiten:
changeprice A 5.5
changeprice B 2.4
addsale A 4
addsale B 3
addsale A 5
printturnover A
printturnover B
printturnover C
resetturnover A
addsale A 5
changeprice B 1.5
addsale B 2
addsale C 3
printturnover A
printturnover B
printturnover C
Dabei soll Ihr Programm eine Klasse Article mit der folgenden Schnittstelle implementieren und verwenden:
class Article
{
Article(String id);
void setPrice(float price);
boolean void addSale(int n);
boolean printTurnover();
void resetSales();
}
Der Konstruktor Article legt einen neuen Artikel mit der entsprechenden Bezeichnung an. Die Methode addSale überprüft, ob bereits ein Preis für den Artikel gesetzt wurde. Wenn ja, wird der Umsatz des Artikels entsprechend erhöht, und die Funktion liefert als Ergebnis true. Wenn nein, bleibt der Umsatz unverändert und die Funktion liefert als Ergebnis false. Entsprechend liefert die Methode printTurnover als Ergebnis false (und druckt nichts), wenn noch kein Preis für den Artikel gesetzt wurde; ansonsten druckt die Methode eine Zeile der Form
Artikel Id (Preis: Einzelpreis, Verkäufe: Verkäufe): Umsatz
Das Programm soll die Kommandos von einer Textdatei einlesen, deren Namen als Programmargument übergeben wird (siehe Übung 9). Treten bei der Bearbeitung eines Kommandos Fehler auf, soll eine Meldung ausgedruckt werden (und das Programm mit dem nächsten Kommando fortfahren).
Es gelten die üblichen Entwicklungs-, Programmier- und Testrichtlinien; testen Sie das Programm auch mit der oben gezeigten Kommandodatei.
Hinweis: der Ausdruck s0.equals(s1) mit den String-Objekten s0 und s1 liefert true, wenn der Inhalt von s0 dem Inhalt von s1 gleicht (String-Objekte können nicht mit dem Operator == auf inhaltliche Gleichheit getestet werden).