Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Help me get this code working with this additional class? RolodexEntryManager.cp

ID: 3887616 • Letter: H

Question

Help me get this code working with this additional class?

RolodexEntryManager.cpp

-------------------------------------
#include <iostream>
#include "RolodexEntry.h"
#include <vector>
#include <climits>
#include <cctype>

using namespace std;

//function dec
void printMainMenu();
void printEditMenu(vector<RolodexEntry> & list);
void editContactSub(const short c, vector<RolodexEntry> & list);
void printSearchMenu(vector<RolodexEntry> & list);
void printList(vector<RolodexEntry> & list);
void eraseEntry(vector<RolodexEntry> & list, short index);


int main(void)
{
    bool isRunning = true;
    vector<RolodexEntry> list;
    do
    {
        char c;
        printMainMenu();
        cin >> c;
        cin.ignore(INT_MAX, ' ');
        switch(tolower(c))
        {
            case '1': case 'a':
            {
                RolodexEntry newEntry;
                newEntry.readIn();
                list.push_back(newEntry);
                break;
            }
            case '2': case 'e':
            {
                printEditMenu(list);
                break;
            }
            case '3': case 'd':
            {
                printList(list);
                cout << " Select Contact to delete:";
                if(cin.fail())
                {
                    cin.clear();
                    cin.ignore();
                }
                short c;
                cin >> c;

                eraseEntry(list, c-1);//resizes and moves back
                break;
            }
            case '4': case 's':
            {
                printSearchMenu(list);
                break;
            }
            case '5': case 'p':
            {
                printList(list);
                break;
            }
            case '6': case 'q':
            {
                isRunning = false;
                break;
            }
            default:
            {
                cout << "Invalid selection.";
                break;
            }
        }
    }while(isRunning);

    return 0;
}
void printMainMenu()
{
    cout << " Main Menu "
         << "1. Add contact "
         << "2. Edit contact "
         << "3. Delete contact "
         << "4. Search contacts "
         << "5. Print all contacts "
         << "6. Quit ";
    return;
}
void printEditMenu(vector<RolodexEntry> & list)
{
    cout << " ";
    printList(list);
    cout << " Select Contact to edit:";//read in choice
    if(cin.fail())
    {
        cin.clear();
        cin.ignore();
    }
    short c;
    cin >> c;
    cin.ignore(INT_MAX, ' ');
    editContactSub(c, list);
    return;
}
void editContactSub(const short c, vector<RolodexEntry> & list)//and work
{
    short index = c;
    if(index >= 0 && index < list.size())//it's gooooood!
    {
        RolodexEntry edited = list[static_cast<short>(c)-1];

        //edit menu
        cout << "1. edit First name "
             << "2. edit Last name "
             << "3. edit Address "
             << "4. edit Phone number "
             << "5. edit Email ";
        char sel;
        cin >> sel;
        cin.ignore(INT_MAX, ' ');

        switch(tolower(sel))
        {
            case '1': case 'f':
            {
                cout << " Enter new first name: ";
                string newName;
                cin >> newName;
                edited.setFName(newName);
                break;
            }
            case '2': case 'l':
            {
                cout << " Enter new last name: ";
                string newName;
                cin >> newName;
                edited.setLName(newName);
                break;
            }
            case '3': case 'a':
            {
                cout << " Enter new street number and street: ";
                string newStreet;
                cout.flush();
                if (cin.peek() == ' ')
                {
                    cin.ignore();
                }
                getline(cin, newStreet);
                edited.setStreet(newStreet);

                cout << " Enter new town: ";
                string newtown;
                cout.flush();
                if (cin.peek() == ' ')
                {
                    cin.ignore();
                }
                getline(cin, newtown);
                edited.setTown(newtown);

                cout << " Enter new state: ";
                string newstate;
                cout.flush();
                if (cin.peek() == ' ')
                {
                    cin.ignore();
                }
                getline(cin, newstate);
                edited.setState(newstate);

                cout << " Enter new zipcode: ";
                long newzip;
                cin >> newzip;
                if(newzip > 99999)//long zip
                {
                    edited.setZip(newzip);
                    edited.setSZipLong();//finds szip from long zip
                }
                else
                {
                    edited.setSZip(newzip);
                }
                break;
            }
            case '4': case 'p':
            {
                cout << " Enter new areacode: ";
                short newarea;
                cin >> newarea;
                edited.setArea(newarea);

                cout << " Enter new exchange number: ";
                short newex;
                cin >> newex;
                edited.setExchange(newex);

                cout << " Enter new line: ";
                short newLine;
                cin >> newLine;
                edited.setPLine(newLine);
                break;
            }
            case '5': case 'e':
            {
                cout << " Enter new email: ";
                string newemail;
                cin >> newemail;
                edited.setEmail(newemail);
                break;
            }
        }
    }
    else
    {
        cout << "Contact at this index does not exist.";
    }
    return;
}
void printSearchMenu(vector<RolodexEntry> & list)//and work
{
    cout << "1. search by Name "
         << "2. search by Address "
         << "3. search by Phone number "
         << "4. search by Email "
         << "5. Return to Main menu ";

    char c;
    cin >> c;
    cin.ignore(INT_MAX, ' ');
    switch(tolower(c))
    {
        case '1': case 'n':
        {
            cout << " Enter search term: ";
            string search;
            cout.flush();
            if (cin.peek() == ' ')
            {
                cin.ignore();
            }
            getline(cin, search);

            for(vector<RolodexEntry>::size_type i = 0; i < list.size(); i++)
            {
                if(list[i].getFName().find(search) != string::npos ||
                   list[i].getLName().find(search) != string::npos)
                {
                    list[i].printEntry();
                }
            }
            break;
        }
        case '2': case 'a':
        {
            cout << " Enter search term: ";
            string search;
            cout.flush();
            if (cin.peek() == ' ')
            {
                cin.ignore();
            }
            getline(cin, search);

            for(vector<RolodexEntry>::size_type i = 0; i < list.size(); i++)
            {
                if(list[i].getStreet().find(search) != string::npos ||
                   list[i].getTown().find(search) != string::npos ||
                   list[i].getState().find(search) != string::npos)
                {
                    list[i].printEntry();
                }
            }
            break;
        }
        case '3': case 'p':
        {
            cout << " Enter part of phone number (last four digits gives best results): ";
            short search;

            while(cin.fail())
            {
                cin.clear();
                cin.ignore();
            }
            cin >> search;

            for(vector<RolodexEntry>::size_type i = 0; i < list.size(); i++)
            {
                if(list[i].getArea() == search || list[i].getExchange() == search ||
                   list[i].getPLine() == search)
                {
                    list[i].printEntry();
                }
            }
            break;
        }
        case '4': case 'e':
        {
            cout << " Enter email: ";
            string search;
            cout.flush();
            if (cin.peek() == ' ')
            {
                cin.ignore();
            }
            getline(cin, search);

            for(vector<RolodexEntry>::size_type i = 0; i < list.size(); i++)
            {
                if(list[i].getEmail().find(search) != string::npos)
                {
                    list[i].printEntry();
                }
            }
            break;
        }
        case '5': case 'q':
        {
            break;
        }
        default:
        {
            cout << " Invalid seletion.";
            break;
        }
    }
}
void printList(vector<RolodexEntry> & list)
{
    cout << ' ';
    for(vector<RolodexEntry>::size_type i = 0; i < list.size(); i++)
    {
        cout << i+1 << ".";
        list[i].printEntry();
    }
    return;
}
void eraseEntry(vector<RolodexEntry> & list, short index) {
    vector<RolodexEntry>::size_type pos = index - 1;
    vector<RolodexEntry>::size_type k;

    if (pos < list.size() && pos >= 0) {
        for (k = pos + 1; k != list.size(); k++) {
            list[k - 1] = list[k];
        }
        list.pop_back();
    } else {
        cout << "Out of bounds.";
    }
    return;
}
-----------------------------------------------------------------
RolodexEntry.cpp
------------------------------
#include "RolodexEntry.h"
#include <iostream>

using namespace std;

void RolodexEntry::printEntry()
{
    cout << " Name: " << fName << " " << lName;
    cout << " Address: " << street <<
         " " << town << ", " <<
         state << ' ';
    if(zip != 0)
    {
        cout << zip;
    }
    else
    {
        cout << szip;
    }
    cout << " Phone: (" << area << ')' << exchange << '-' << line << " ";
}
void RolodexEntry::readIn()
{
    cout << " Enter new contact's first name: ";
    cin >> fName;
    cout << " Enter new contacts's last name: ";
    cin >> lName;
    cout << " Enter new contacts's address (number and street): ";
    cout.flush();
    if (cin.peek() == ' ')
    {
        cin.ignore();
    }
    getline(cin, street);

    cout << " Enter new contacts's town: ";
    cout.flush();
    if (cin.peek() == ' ')
    {
        cin.ignore();
    }
    getline(cin, town);

    cout << " Enter new contacts's state: ";
    cout.flush();
    if (cin.peek() == ' ')
    {
        cin.ignore();
    }
    getline(cin, state);

    cout << " Enter new contacts's zipcode: ";
    long tempZip;
    cin >> tempZip;
    if(tempZip > 99999)//long zip
    {
        zip = tempZip;
        setSZipLong();//finds szip from long zip
    }
    else
    {
        szip = tempZip;
    }
    cout << " Enter new contacts's phone number (separated by spaces): ";
    cin >> area >> exchange >> line;
    cout << " Enter new contacts's email: ";
    cin >> email;
}
----------------------------------------------------------------------
RolodexEntry.h
-----------------------------------------

#ifndef ROLODEXENTRY_H_INCLUDED
#define ROLODEXENTRY_H_INCLUDED

#include <string>
//using namespace std;
//base project only
class RolodexEntry
{
private:
    std::string fName, lName, street, town, state;
    long zip;
    short szip, area, exchange, line;
    std::string email;
public:
    RolodexEntry(void):fName(), lName(), street(), town(),
                       state(), zip(000000000), szip(00000),
                       area(0), exchange(0), line(0), email() {}
    RolodexEntry(std::string fname, std::string lname):street(), town(),
                                                       state(""), zip(000000000),
                                                       szip(00000), area(0),
                                                       exchange(0), line(0), email() {}
    RolodexEntry(const RolodexEntry & r):fName(r.fName), lName(r.lName),
                                         street(r.street), town(r.town),
                                         state(r.state), zip(r.zip), szip(r.szip),
                                         area(r.area), exchange(r.exchange),
                                         line(r.line), email(r.email) {}

    std::string getFName() const {return fName;}
    void setFName(std::string first){fName = first;}
    std::string getLName() const {return lName;}
    void setLName(std::string last){lName = last;}
    std::string getStreet() const{return street;}
    void setStreet(std::string str){street = str;}
    std::string getTown() const {return town;}
    void setTown(std::string newtown){town = newtown;}
    std::string getState() const {return state;}
    void setState(std::string newstate){state = newstate;}
    long getZip() const {return zip;}
    void setZip(long newzip){zip = newzip;}
    short getSZip() const {return szip;}
    void setSZipLong(){szip = zip / 10000;}
    void setSZip(short newszip){szip = newszip;}
    short getArea() const {return area;}
    void setArea(short newarea){area = newarea;}
    short getExchange() const {return exchange;}
    void setExchange(short exch){exchange = exch;}
    short getPLine() const {return line;}
    void setPLine(short newline){line = newline;}
    std::string getEmail(){return email;}
    void setEmail(std::string Email){email = Email;}

    void printEntry();//other fns
    void readIn();
    bool isEqual(RolodexEntry e){return e.fName == fName && e.lName == lName &&
                                        e.street == street && e.town == town &&
                                        e.state == state && e.zip == zip && e.szip == szip &&
                                        e.area == area && e.exchange == exchange && e.line == line &&
                                        e.email == email;}
};

#endif // ROLODEXENTRY_H_INCLUDED

Explanation / Answer

#include using namespace std; int main() { int firstInt; // Declare a variable named firstInt of the type int (integer) int secondInt; // Declare a variable named secondInt of the type int int sum, difference, product, quotient; // Declare 4 variables of the type int to keep the results cout > firstInt; // Read input from keyboard (cin) into firstInt cout > secondInt; // Read input into secondInt // Perform arithmetic operations sum = firstInt + secondInt; difference = firstInt - secondInt; product = firstInt * secondInt; quotient = firstInt / secondInt; // Print the results cout