Aufgabe 10

Wir arbeiten mit der Standard Template Library und verwenden einen Vector of <wstring> zur Programmierung der Klasse lexikon

Verwenden Sie bei Schleifen grundsätzlich nur ITERATOREN, testen Sie auch auto getypte Iteratoren

Schreiben Sie ein C++ Programm, das nach Wörter über von der Konsole einliest und sie in einer Worliste words speichert, sortiert und die ersten n-Worte ausgeben kann. Dazu definieren Sie sich eine Klasse lexikon.
Die Idee ist, dass diese Klasse in einem wstring Vector alle Wörter des Lexikons speichert.

 

  1. Definieren Sie eine Klasse lexikon.
    Im ihrem private Bereich soll ein Vector definiert werden, der Wörter speichern kann.

    public:
              bool is_element(wstring); 
              void insert(wstring);
              void sort_me()
              void print_number_of_words();
              void head(int n);
             
         private:
    void rm_punct(wstring&); vector<wstring> words; int number_of_words;

  2. Die Klasse lexikon 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)
  3. Die Klasse lexikon definiert eine public Methode bool is_element(wstring word), die testet, ob der eingebene wstring word schon im Lexikon vorkommt. (Entfernen Sie innerhalb dieser Methode zuerst mit rm_punct(wstring&) alle Punktuationszeichen am Anfang und Ende des eingegebenen Strings und verwenden Sie dann die STL-Routine find). Falls das Wort nicht vorkommt, wird der Wert true zurückgeliefert, ansonsten false.
  4. Schreiben Sie eine public Methode bool insert(wstring Wort), die zuerst alle Punktuationszeichen am Anfang und Ende des eingegebenen Worts entfernt (verwenden Sie die private Methoden) und das Wort nur dann im Container vector words speichert, wenn es noch nicht vorkommt. Wenn das Wort eingefügt wird, liefern Sie den Wert true zurück.
  5. Schreiben Sie eine Methode print_anzahl_wörter() die ausgibt, wieviele Wörter im Lexikon sind.
  6. Schreiben Sie eine Methode sort_me() die das Lexikon alphabetisch sortiert. (verwenden Sie STL-Routine sort())
  7. Schreiben Sie eine Methode void head(int n) die Elemente im Container sortiert und die ersten n Elemente des sortierten Lexikons ausdruckt.

Zusatzaufgabe