Program to construct a Word Dictionary

Discussion in 'Software' started by The_Lone_Wolf, Oct 30, 2005.

  1. The_Lone_Wolf

    The_Lone_Wolf Private E-2

    I trying to create a word dictionary that reads in words from a file and inputs them onto the screen e.g word followed by space and then definition all one one line and sorts them in ascending order. These are the codings i have so far. Could you help my in telling what i have to do next and whats missing from this coding and anything thing else:

    So far i have these codings:

    //keyValue.h
    #include <string>

    class keyValue
    {
    private:
    string word; // primary key value
    string definition;
    keyValue* next;

    keyValue(); // constructor – initialise node

    friend class OrderedList;
    };

    //orderedList.h
    #include <string>

    class OrderedList
    {
    public:
    OrderedList(); // constructor – initialise empty list
    ~OrderedList(); // destructor

    /* insert data into the list in ascending word order.
    If the word is already present in the list, update the existing
    definition by concatenating the current one */
    void insert( string word, string definition);

    /* return definition associated with key ‘w’.
    return null string if 'w' is not present in the list */
    const string inspect( string w ) const;

    // whether 'w' is present in the list
    bool isIn( string w ) const;

    // whether the list is empty
    bool isEmpty() const;

    // take a keyValue object containing a word and
    // its definition(s). Print it.
    void printEntry() const;

    private:
    keyValue* head;
    };

    //staticHTable.h
    #include <string>

    const int TABLE_SIZE = 23;

    class staticHTable
    {
    public:
    staticHTable(); // constructor – create empty table
    ~staticHTable(); // destructor

    /* enter data into table.
    if the word is already present in the list, update the existing
    definition by concatenating the current one */
    void put(string w, string d);

    /* return definition associated with key 'w'
    return null string if 'w’ is not present in the table */
    const string get( string w ) const;

    private:
    struct
    {
    string word;
    string definition;
    } sHTable[TABLE_SIZE];
    };

    //dynamicHTable.h
    #include <string>

    const int TABLE_SIZE = 23;

    class dynamicHTable
    {
    public:
    DynamicHTable(); // constructor – create empty table
    ~DynamicHTable(); // destructor

    /* enter data into table.
    if the word is already present in the list, update the existing
    definition by concatenating the current one */
    void put(string w, string d);

    /* return definition associated with key 'w'.
    return null string if 'w’ is not present in the table */
    const string get( string w ) const;

    private:
    OrderedList dHTable[TABLE_SIZE];
    }

    //file OrderedList.cc
    #include <iostream>
    #include <stddef.h>
    #include "OrderedList.h"
    using namespace std;


    KeyValue::KeyValue()
    {
    word = "\0";
    next = NULL;

    definition = "\0";
    next = NULL;
    }

    OrderedList::OrderedList()
    {
    head = NULL;
    }

    OrderedList::~OrderedList()
    {
    KeyValue* current;
    KeyValue* it;

    it = head;
    while (it != NULL)
    {
    current = it;
    it = it->next;
    delete current;
    }
    }

    bool OrderedList::isEmpty() const
    {
    return head == NULL;
    }



    void OrderedList::insertBefore(const int newval, const int val)
    {
    KeyValue* p = new KeyValue;
    KeyValue* iterator = NULL;
    KeyValue* previous = NULL;

    p->data = newval;
    p->next = NULL;
    if (isEmpty())
    {
    cout << "List is empty\n";
    }
    else
    {
    for (iterator = head; iterator != NULL; iterator = iterator->next)
    {
    if (iterator->data == val)
    {
    if (iterator == head)
    {
    head = p;
    }
    else
    {
    previous->next = p;
    }
    p->next = iterator;
    break;
    }
    else
    {
    previous = iterator;
    }
    }
    }
    }


    void OrderedList:rintEntry() const
    {
    if (isEmpty())
    {
    cout << "List empty" << endl;
    }
    else // walk along list
    {
    KeyValue* p = NULL;
    for (p=head; p!=NULL; p=p->next)
    {
    cout << p->data << endl; // display data value
    }
    }
    }

    thanks
     

MajorGeeks.Com Menu

Downloads All In One Tweaks \ Android \ Anti-Malware \ Anti-Virus \ Appearance \ Backup \ Browsers \ CD\DVD\Blu-Ray \ Covert Ops \ Drive Utilities \ Drivers \ Graphics \ Internet Tools \ Multimedia \ Networking \ Office Tools \ PC Games \ System Tools \ Mac/Apple/Ipad Downloads

Other News: Top Downloads \ News (Tech) \ Off Base (Other Websites News) \ Way Off Base (Offbeat Stories and Pics)

Social: Facebook \ YouTube \ Twitter \ Tumblr \ Pintrest \ RSS Feeds