Schreiben Sie ein C++ Programm, das aus einer utf8 Datei Wörter liest sie in einem Lexikon speichert:
Wörter lexikon;
Das Lexikon soll wieder ausgegeben werden, die Anzahl der Wörter soll gezählt werden.
Wörter
.
Definieren Sie eine Klasse Wörter
.
Im ihrem private
Bereich
soll ein Vector definiert werden, der Wörter speichern kann.
public: bool is_element(wstring word); bool insert(wstring Wort); bool insert_keep_sorted(wstring Wort); int print_anzahl_wörter(); private: void rm_punct(wstring word); vector <wstring> words; int number_of_words;
words
definiert eine private
Methode void rm_punct(wstring word)
die alle Punktuationszeichen
am Anfang und Ende des eingegebenen Strings word
entfernt. (verwenden Sie Lösungen
aus den letzten Aufgaben)words
definiert eine public
Methode bool is_element(wstring word)
, die testet, ob der eingebene
wstring Wort
schon in den Wörtern
vorkommt. (verwenden Sie die STL-Routine find
, entfernen Sie alle Punktuationszeichen
am Anfang und Ende des eingegebenen Strings).
public
Methode bool insert(wstring Wort)
die in zuerst alle Punktuationszeichen
am Anfang und Ende des eingegebenen Wort
entfernt (verwenden Sie die private Methode und dann im vector words
speichert.
Falls Wort
nicht vorkommt, wird der Wert true
zurückgeliefert, ansonsten false
void drucke()
die alle Elemente des Vectors words
ausdruckt.print_anzahl_wörter()
die ausgibt, wieviele Wörter im vector sind.insert_keep_sorted(wstring Wort)
die alle Punktuationszeichen
am Anfang und Ende des eingegebenen wstrings
entfernt und dann das Wort im vector words
so speichert,
dass die Wörter im vector words
alphabetisch sortiert bleiben.Inhalt words: "der","sie","wenn" Eingabe: "doch" a) es wird die Einfügestelle 2 ermittelt. (eventuell eigene private Methode int find_position(wstring Wort) ) b) alle Wörter hinter der Einfügestelle werden um eine Stelle nach hinten verschoben. (eventuell eigene private Methode void shift_right(Vect_Iterator Position) ) c) das Wort wird an der Einfügestelle 2 eingefügt.