使用C ++对对象进行排序,添加,删除和打印

时间:2016-03-02 07:21:15

标签: c++ class oop member-functions

我使用门牌号(int)和人名(字符串)初始化了我的代码中的对象。 我的代码的这部分有效,它可以正确显示门牌号码和人物。

#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;
}

输出:

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

下一部分是我遇到的问题。我应该阅读用户输入以查看他们想要做什么并执行上面列出的操作。因此,如果他们说添加,然后输入&#34; 2 Jeb&#34;,代码必须说2已经存在。如果它不存在,则必须将其添加为对象并将整个列表打印出来。

我知道你可以使用getline(cin,name)从用户那里获取名称,但我不知道如何在我的代码中实现它来做我想要的。获得用户输入字符串后,如何使用它创建对象?另外,如何读取用户输入对象的整数,因为我读到getline适用于字符串而不是整数。

一旦我读取了用户的整数和字符串输入,我如何检查我的对象中是否已存在门牌号码?如果我能从这两件事情中得到一些帮助,我可以把剩下的事情搞清楚。

谢谢。

0 个答案:

没有答案