1

I initialized objects in my code using a house number (int) and the person's name (string). This part of my code works and it displays the house number and person correctly.

#include <iostream>
#include <vector>
#include <string>

using namespace std;

//AddressBook class definition
class AddressBook
{
    public:
    //Declare a constructor that has one parameter for each data member
    AddressBook(int, string);
    //Declare a set method for house number
    void setHouseNum(int);
    //Declare a get method for house number
    int getHouseNum();
    //Declare a set method for name
    void setName(string);
    //Declare a get method for name
    string getName();
    void displayAddressBook();

    private:
    //Declare a int data member for house number
    int houseNum;
    //Declare a string data member for name
    string name;
}; 

// constructor
AddressBook::AddressBook(int num, string personName)
{
    setHouseNum(num);       
    setName(personName);                
}

void AddressBook::setHouseNum(int num)
{
    houseNum = num;
}

int AddressBook::getHouseNum()
{
    return houseNum;
}

void AddressBook::setName(string personName)
{
    name = personName;          
}

string AddressBook::getName()
{
    return name;
}

void AddressBook::displayAddressBook()
{
    cout << getHouseNum() << "  " << getName() << endl;
}

int main()
{
    AddressBook addressBook(3, "Jim");
    addressBook.displayAddressBook();

    AddressBook addressBook2(5, "Bob");
    addressBook2.displayAddressBook();

    AddressBook addressBook3(2, "Jeb");
    addressBook3.displayAddressBook();

    string command;
    cout << "Available Commands Are:" << endl;
    cout << "Add, Remove, Sort, Print" << endl;

return 0;
}

Output:

3 Jim
5 Bob
2 Jeb
Available Commands Are:
Add, Remove, Sort, Print

The next part is what I'm having trouble with. I'm supposed to read the user input to see what they want to do and perform the operations listed above. So, if they say Add, and then enter "2 Jeb", the code has to say 2 already exists. If it doesn't exist, it has to add it as an object and print the entire list back out.

I know that you can use getline(cin,name) to get the name from the user but I do not know how to implement that in my code to do what I want it to. Once I get the user input string, how do I create an object with it? Also, how do you read an integer the user inputs into an object because I read that getline works for strings and not integers.

Once I read the integer and string input from the user, how do I check if the house number already exists in my objects? If I can get some help with just these two things I can figure the rest out.

Thank you.

ss1111
  • 239
  • 1
  • 9
  • 20
  • 2
    Hint: You need a collection of your objects (such as a `std::vector`). Hint 2: you can use the `>>` operator to read whitespace-separated things of many types. Hint 3: A [good book](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) would help. (Half-hint: It's confusing that you used the name "AddressBook" for something that would usually be an entry in an address book. It's possible that that's the reason you're stuck. Naming is important.) – molbdnilo Mar 02 '16 at 07:36

0 Answers0