Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

#include <iostream>

#include <string>
using namespace std;

struct Address {
string houseNumber;
string street;
string area;
string state;
};

struct AddressBookEntry {
int entryNumber;
string firstName;
string lastName;
Address address;
string contact;
};

AddressBookEntry addressBook[100];

void addContact(AddressBookEntry &entry, int &numEntries) {


addressBook[numEntries] = entry;
numEntries++;
cout << "Contact added successfully!" << endl;
}

void editContact(int entryNumber, string firstName, string lastName, Address


&address, string contact, int numEntries) {
for (int i = 0; i < numEntries; i++) {
if (addressBook[i].entryNumber == entryNumber) {
addressBook[i].firstName = firstName;
addressBook[i].lastName = lastName;
addressBook[i].address = address;
addressBook[i].contact = contact;
cout << "Contact edited successfully!" << endl;
return;
}
}
cout << "Contact not found!" << endl;
}

void deleteContact(int entryNumber, int &numEntries) {


for (int i = 0; i < numEntries; i++) {
if (addressBook[i].entryNumber == entryNumber) {
for (int j = i; j < numEntries-1; j++) {
addressBook[j] = addressBook[j+1];
}
numEntries--;
cout << "Contact deleted successfully!" << endl;
return;
}
}
cout << "Contact not found!" << endl;
}

void viewAllContacts(int numEntries) {


if (numEntries == 0) {
cout << "No contacts found!" << endl;
return;
}
for (int i = 0; i < numEntries; i++) {
cout << "Entry No: " << addressBook[i].entryNumber << endl;
cout << "First Name: " << addressBook[i].firstName << endl;
cout << "Last Name: " << addressBook[i].lastName << endl;
cout << "Address: " << addressBook[i].address.houseNumber << ", " <<
addressBook[i].address.street << ", " << addressBook[i].address.area << ", " <<
addressBook[i].address.state << endl;
cout << "Contact: " << addressBook[i].contact << endl;
cout << endl;
}
}

int main() {
int numEntries = 0;
AddressBookEntry entry;
Address address;
int choice, entryNumber;
string firstName, lastName, contact;

do {
cout << "Address Book Menu" << endl;
cout << "1. Add Contact" << endl;
cout << "2. Edit Contact" << endl;
cout << "3. Delete Contact" << endl;
cout << "4. View All Contacts" << endl;
cout << "5. Quit" << endl;
cout << "Enter your choice: ";
cin >> choice;

switch (choice){
case 1:
cout << "Enter Entry Number: ";
cin >> entry.entryNumber;
cout << "Enter First Name: ";
cin >> entry.firstName;
cout << "Enter Last Name: ";
cin >> entry.lastName;
cout << "Enter House Number: ";
cin >> address.houseNumber;
cout << "Enter Street: ";
cin >> address.street;
cout << "Enter Area: ";
cin >> address.area;
cout << "Enter State: ";
cin >> address.state;
entry.address = address;
cout << "Enter Contact: ";
cin >> entry.contact;
addContact(entry, numEntries);
break;

case 2:
cout << "Enter Entry Number to Edit: ";
cin >> entryNumber;
cout << "Enter First Name: ";
cin >> firstName;
cout << "Enter Last Name: ";
cin >> lastName;
cout << "Enter House Number: ";
cin >> address.houseNumber;
cout << "Enter Street: ";
cin >> address.street;
cout << "Enter Area: ";
cin >> address.area;
cout << "Enter State: ";
cin >> address.state;
cout << "Enter Contact: ";
cin >> contact;
addressBook[numEntries].entryNumber = entryNumber;
entry.firstName = firstName;
entry.lastName = lastName;
entry.address = address;
entry.contact = contact;
editContact(entryNumber, firstName, lastName, address, contact,
numEntries);
break;

case 3:
cout << "Enter Entry Number to Delete: ";
cin >> entryNumber;
deleteContact(entryNumber, numEntries);
break;

case 4:
viewAllContacts(numEntries);
break;

case 5:
cout << "Goodbye!" << endl;
break;

default:
cout << "Invalid choice, please try again!" << endl;
break;
}
} while (choice != 5);

return 0;
}

You might also like