Реализация класса Dictionary

Рейтинг: -3Ответов: 2Опубликовано: 28.11.2014

Условие:

Карточка иностранного слова представляет собой структуру, содержащую иностранное слово и его перевод. Для моделирования электронного словаря иностранных слов реализовать класс Dictionary. Данный класс имеет поле-название словаря и содержит массив структур Wordcard, представляющие собой карточки иностранного слова.
Название словаря задается при создании нового словаря, но должна быть предоставлена возможность его изменения во время работы. Карточки прилагаются в словарь и удаляются из него.
Реализовать поиск определенного слова как отдельный метод. Аргументом операции индексирования должно быть иностранное слово. В словаре не должно быть карточек-дублей.
Реализовать операции объединения, пересечения и разницу словарей. При реализации должен создаваться новый словарь, а выходные словари не должны меняться. При объединении новый словарь должен содержать без повторений все слова, содержащиеся в обоих словниках-операндах. При пересечении новый словарь должен состоять только из слов, которые есть в обоих словарях-операндах. При разнице новый словарь должен содержать слова первого словаря-операнда, отсутствуют в другом.

Как довести до полного рабочего состояния?
Код по условию немного не доработан, можете дописать?

Мой исходник:

#include <iostream>
#include <cstdio>
#include <conio.h>

using namespace std;

struct WordCard
{
    char word[100];
    char trans;
};

class Dictionary
{
      public:
      char name[];
      WordCard card[100];
      friend istream &operator>>(istream &stream, Dictionary &ob);
      Dictionary(char);
      void greate();
      void show();
      void search();
      Dictionary operator+(Dictionary ob);
      Dictionary operator-(Dictionary ob);
      Dictionary operator/(Dictionary ob);
};

Dictionary::Dictionary(char n[])
{     
    strcpy(this->name,n);
}

istream &operator>>(istream &stream, Dictionary &ob)
{     
    cout << "Enter the name of your new dictionary:"<<endl;
    stream >> ob.name;
}

void Dictionary::greate()
{
     cout<<"Enter name of your new dictionary"<<endl;
     cin>>name;
}

void Dictionary::show()
{
     cout<<"Your Dictionaries:"<<endl;
     cout<<name<<":"<<endl;
 }

void Dictionary::search()
{

}

int main()
{
    char ch;
    Dictionary d("First");
    Dictionary a("Second");
    Dictionary b("Third");
    for(;;)
    {
        cout<<"Menu:\n";
        cout<<"1.Greate new dictionary\n";
        cout<<"2.Show dictionaries\n";
        cout<<"3.Exit\n";     
        cout<<"Your choise: ";
        cin>>ch; 
        switch(ch)
        {
            case '1':a.greate();break;
            case '2':a.show(); break;
            case '3':exit(0);
        }
    }
    return 0;
}

Ответы

▲ 1Принят

@lixod96,

Код по условию немного не доработан, можете дописать?

Можем. Но не будем. Согласно правилам форума, вопросы не должны сводиться к решению либо завершению учебных заданий за учащихся. К тому же код не "немного не доработан", отсутствует большая и самая сложная его часть, а уже сделанное настолько элементарно, что не может считаться сколь-нибудь значимой самостоятельной работой. Если у вас есть конкретные вопросы по реализации необходимого функционала - пожалуйста, задавайте. Но не просите сделать за вас вашу работу.

▲ 1

@lixod96, если от Вас не требуется самостоятельная реализация "низкоуровневых" алгоритмов, то можете взять за основу

http://www.cplusplus.com/reference/map/map и реализовать надстройку.

В противном случае попробуйте ознакомиться, например, с этим

http://web.mit.edu/~emin/www.old/source_code/red_black_tree/index.html кодом.