Home  • Programming • C++

Make a contact book with CPP

#include <iostream>
#include <cstdio>
//#include <fstream>
using namespace std;

#define MAX_CONTACTS 3000

/* MAX SIZE OF A CATALOGUE FILE ~= 7,3 MB*/


/*Contact struct holds information for one entry.*/
/*Contacts with no first name will be recognised as 'deleted'*/
struct Contact
{
	char first[20]; /*First Name*/
	char last[30]; /*Last Name*/
	char areacode[6]; /*Area Code*/
	char number[10]; /*Telephone Number*/
	char email[60]; /*E-Mail*/
    char webaddr[60]; /*Web address of a website -you never know-*/
    char address[60]; /*Home Address*/
};

class PhoneBook
{
    Contact contact;
  public:
    bool CreateMe(){if(contact.first[0]==''Winking return true; else return<br/>false;};
    void Edit();
    void Delete(){contact.first[0]='';};
    void Print(bool showall);
    //void PhoneBook::ShowName(){cout << contact.last << "<br/>" << contact.first;};
    //void Save( FILETO );
    //void Load( FILEFROM );
    bool SearchContact(char SearchThis[60]);
};

void PhoneBook::Edit()
{
    cout << endl << "FirstName: ";
    cin >> contact.first;

    cout << endl << "LastName: ";
    cin >> contact.last;

    cout << endl << "Area Code: ";
    cin >> contact.areacode;

    cout << endl << "Number: ";
    cin >> contact.number;

    cout << endl << "e-mail: ";
    cin >> contact.email;

    cout << endl << "WebAddress: ";
    cin >> contact.webaddr;

    cout << endl << "HomeAddress: ";
    cin >> contact.address;
    cout << "OK." << endl;
}

void PhoneBook:Tonguerint(bool showall)
{
    cout << endl << "FirstName: " <<<br/>contact.first
        << endl << "LastName: " <<<br/>contact.last;
    if(showall){
        cout << endl << "Area Code: " <<<br/>contact.areacode
            << endl << "Number: " <<<br/>contact.number
            << endl << "e-mail: " <<<br/>contact.email
            << endl << "WebAddress: " <<<br/>contact.webaddr
            << endl << "HomeAddress: " <<<br/>contact.address
            << endl << "---" << endl << <br/>"OK." << endl;
    }
}

 bool PhoneBook::SearchContact(char searchThis[60])
{
    if(!strcmp(contact.first, searchThis)){ return true; }
       else if(!strcmp(contact.last, searchThis)){ return true; }
       /* --SEARCHING A PERSON WITH ONLY HIS AREA CODE  ISN'T LOGICAL--
          But, we can use this to show who are in our area... */
       else if(!strcmp(contact.areacode, searchThis)){ return true; }
       else if(!strcmp(contact.number, searchThis)){ return true; }
       else if(!strcmp(contact.email, searchThis)){ return true; }
       else if(!strcmp(contact.webaddr, searchThis)){ return true; }
       else if(!strcmp(contact.address, searchThis)){ return true; }
    else {return false;};
}

//void SaveAll();
//void LoadAll();


/*---------------------------------------*/
/*  CLEAR THE SCREEN AND PUT THE HEADER  */
inline void clearscreen()
{
    system("CLS"Winking; /* Clear the screen */
    cout << "SIMPLE PHONE_BOOK by thetrojan01" <<<br/>endl
        << "--------------------------------" <<<br/>endl << endl;
}

int main()
{
    /*Definitions and prepairations*/
    PhoneBook book[MAX_CONTACTS];
    char Mnuoption='0';
    int i;
    char buff[60];
    bool found;

    for(int j=0; j<MAX_CONTACTS; j++)
        book[j].Delete();

    clearscreen();

    while(Mnuoption != '6'Winking
    {
            found=false;
            i=0;

            cout << "1. Create New Contact" <<<br/>endl;
            cout << "2. Edit Contact's data" <<<br/>endl;
            cout << "3. Delete a Contact" << endl;
            cout << "4. Search a Contact" << endl;
            cout << "5. Save All Data" << endl;
            cout << "6. Terminate program" << endl;

        cout << endl << "Selection: ";
        cin >> Mnuoption;

        switch(Mnuoption)
        {
            case '1':

                do
                {
                    if(book[i].CreateMe()){
                         book[i].Edit();
                         found = true;
                    }
                    i++;
                }while(i < MAX_CONTACTS && !found);
                break;

            case '2':
                cout << "Please, give me a name or sth..."<br/><< endl;
                cin >> buff;
                if(book[i].SearchContact(buff) &&<br/>!book[i].CreateMe())
                {
                    cout << endl << "EDITING: ";
                    book[i].Print(false);
                    book[i].Edit();
                }
                else
                {
                    i++;
                }
                break;

            case '3':
                cout << "Please, give me a name or sth..."<br/><< endl;
                cin >> buff;
                if(book[i].SearchContact(buff) &&<br/>!book[i].CreateMe())
                {
                    cout << endl << "DELETING: ";
                    book[i].Print(true);
                    cout << endl << "Are you sure?<br/>(y/n)";
                    cin >> buff[0];
                    if(buff[0]=='y'Winking book[i].Delete();
                }
                else
                {
                    i++;
                }
                break;

            case '4':
                cout << endl << "Search: " <<<br/>endl;
                cin >> buff;

                if(book[i].SearchContact(buff) &&<br/>!book[i].CreateMe())
                {
                    book[i].Print(true);
                    cout << endl;
                }
                else
                {
                    i++;
                }
                break;
                cout << endl << "Type a number to continue<br/>";
                cin >> i;

            case '5':
                /*SAVE Data*/
                break;
        }
    }
    cout << endl << endl << "END. " <<<br/>endl;
    system("PAUSE"Winking;
    return 0;
}

Comments 1


to share u r code please use pastebin.com becoz in above code some errors r present becoz of similies