0% found this document useful (0 votes)
17 views14 pages

Eyob DSA Group Assign

Uploaded by

daninazu512
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views14 pages

Eyob DSA Group Assign

Uploaded by

daninazu512
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 14

#include <iostream>

#include <cstring>

#include <process.h>

using namespace std;

class ContactNode {

public:

char name[30];

char phoneNumber[50];

char email[40];

char city[30];

ContactNode *prev, *next;

ContactNode(char n[], char r[], char g[], char c[]) {

strcpy(name, n);

strcpy(phoneNumber, r);

strcpy(email, g);

strcpy(city, c);

next = NULL;

prev = NULL;

friend class ContactList;

};

class ContactList {

ContactNode *head, *temp, *ptr;

ContactNode *ptr1, *ptr2, *dup;


public:

ContactNode *prevNode;

void insertContact();

void deleteContact(char n[20]);

void deleteSameNameContacts();

void searchByName(char p[20]);

void searchByNumber(char no[30]);

void searchByEmail(char g[20]);

void emergencyDial(char c1[30]);

void accept();

void displayContacts();

void updateContactDetails(char n[20]);

ContactList() {

head = NULL;

temp = NULL;

ptr = NULL;

ptr1 = NULL;

ptr2 = NULL;

dup = NULL;

};

void ContactList::accept() {

char phoneNumber[10];

char email[40];

char name[30];
char city[30];

cout << "Enter A Name :";

cin >> name;

cout << "Enter A Phone Number :";

cin >> phoneNumber;

while (strlen(phoneNumber) != 10) {

cout << "Enter A Valid Phone Number :";

cin >> phoneNumber;

cout << "ENTER YOUR E-MAIL :";

cin >> email;

cout << "ENTER YOUR CITY :";

cin >> city;

temp = new ContactNode(name, phoneNumber, email, city);

if (head == NULL) {

head = temp;

} else {

ptr = head;

while (ptr->next != NULL) {

ptr = ptr->next;

ptr->next = temp;

temp->prev = ptr;

}
void ContactList::displayContacts() {

ptr = head;

while (ptr != NULL) {

cout << "\n\nNAME ::\t" << ptr->name;

cout << "\nNUMBER::\t+251-" << ptr->phoneNumber;

cout << "\nE-MAIL ID::\t" << ptr->email;

cout << "\nCITY:: \t" << ptr->city;

ptr = ptr->next;

void ContactList::insertContact() {

accept();

void ContactList::deleteContact(char s[20]) {

int c = 0;

ptr = head;

while (ptr != NULL) {

if (strcmp(s, ptr->name) == 0) {

c = 1;

break;

} else {

c = 2;

ptr = ptr->next;

if (c == 1 && ptr != head && ptr->next != NULL) {


ptr->prev->next = ptr->next;

ptr->next->prev = ptr->prev;

delete (ptr);

cout << " SUCCESSFULLY DELETED\n\n";

if (ptr == head) {

head = head->next;

if (head != NULL) {

head->prev = NULL;

delete (ptr);

cout << " SUCCESSFULLY DELETED\n\n";

if (ptr->next == NULL) {

ptr->prev->next = NULL;

ptr->prev = NULL;

delete (ptr);

cout << " SUCCESSFULLY DELETED\n\n";

if (c == 2) {

cout << "YOUR NAME IS NOT IN THE LIST...";

void ContactList::deleteSameNameContacts() {

ptr1 = head;

while (ptr1 != NULL && ptr1->next != NULL) {

ptr2 = ptr1;

while (ptr2->next != NULL) {


if (strcmp(ptr1->name, ptr2->next->name) == 0) {

dup = ptr2->next;

ptr2->next = ptr2->next->next;

delete (dup);

} else {

ptr2 = ptr2->next;

ptr1 = ptr1->next;

void ContactList::searchByName(char na[10]) {

ptr = head;

while (ptr != NULL) {

if (strcmp(na, ptr->name) == 0) {

cout << "\nNAME FOUND" << endl;

cout << "CONTACT DETAILS ARE BELOW:\n" << endl;

cout << "\n\nNAME ::\t" << ptr->name;

cout << "\nNUMBER::\t+251-" << ptr->phoneNumber;

cout << "\nE-MAIL ID::\t" << ptr->email;

} else {

cout << "\nNAME NOT FOUND";

ptr = ptr->next;

}
void ContactList::searchByNumber(char num[20]) {

ptr = head;

while (ptr != NULL) {

if (strcmp(num, ptr->phoneNumber) == 0) {

cout << "\nNUMBER FOUND\n" << endl;

cout << "CONTACT DETAILS ARE BELOW:\n" << endl;

cout << "\n\nNAME ::\t" << ptr->name;

cout << "\nNUMBER::\t+251-" << ptr->phoneNumber;

cout << "\nE-MAIL ID::\t" << ptr->email;

} else {

cout << "NUMBER NOT FOUND";

ptr = ptr->next;

void ContactList::searchByEmail(char gm[20]) {

ptr = head;

while (ptr != NULL) {

if (strcmp(gm, ptr->email) == 0) {

cout << "\nE-MAIL ID FOUND\n" << endl;

cout << "CONTACT DETAILS ARE BELOW:\n" << endl;

cout << "\n\nNAME ::\t" << ptr->name;

cout << "\nNUMBER::\t+251-" << ptr->phoneNumber;

cout << "\nE-MAIL ID::\t" << ptr->email;

} else {

cout << "E-MAIL ID NOT FOUND";


}

ptr = ptr->next;

void ContactList::emergencyDial(char ct[30]) {

ptr = head;

while (ptr != NULL) {

if (strcmp(ct, ptr->city) == 0) {

cout << "\n\nNAME ::\t" << ptr->name;

cout << "\nNUMBER::\t+251-" << ptr->phoneNumber;

cout << "\nE-MAIL ID::\t" << ptr->email;

cout << "\nCITY::\t" << ptr->city;

ptr = ptr->next;

void ContactList::updateContactDetails(char n[20]) {

char ans;

int c;

ptr = head;

while (ptr != NULL) {

if (strcmp(n, ptr->name) == 0) {

do {

cout << "\nWHAT DO YOU WANT TO UPDATE?\n1.NAME\n2.PHONE


NUMBER\n3.E-MAIL ID\n4.CITY\n";

cin >> c;
switch (c) {

case 1:

cout << "\nENTER NEW-NAME: ";

cin >> ptr->name;

break;

case 2:

cout << "\nENTER NEW PHONE-NUMBER: ";

cin >> ptr->phoneNumber;

while (strlen(ptr->phoneNumber) != 10) {

cout << "ENTER VALID NUMBER :";

cin >> ptr->phoneNumber;

break;

case 3:

cout << "\nENTER NEW E-MAIL ID: ";

cin >> ptr->email;

break;

case 4:

cout << "\nENTER NEW CITY : ";

cin >> ptr->city;

break;

cout << "\n\nDO YOU WANT TO CONTINUE UPDATING?";

cin >> ans;

} while (ans == 'y');

ptr = ptr->next;

}
int main() {

char n[20];

char name[20];

char number[10];

char gmail[20];

char city[30];

char password[30];

ContactList contactList;

char ans;

int ch, a;

cout << "\t\tPHONE BOOK USER LOGIN";

cout << "\n\nWhat IS Your Name?\n";

cin.ignore();

cin.getline(name, 20);

cout << "\n\nWhat IS You Home Town?\n";

cin.getline(city, 20);

cout << "\n\nCreate Your PHONEBOOK PASSWORD:\n";

cin.getline(password, 20);

cout << "\n\n\t\tWELCOME " << name;

cout << "\n\n\nLET'S Create Your PHONEBOOK " << name << " \n\n";

while (1) {

cout << "\n\t\tPHONEBOOK OPERATION MENU";

cout << "\n\n\n\t\t1. INSERT NEW CONTACT\n";

cout << "\t\t2. DISPLAY CONTACT LISTS\n";

cout << "\t\t3. UPDATE DETAILS ON EXISTING CONTACT\n";

cout << "\t\t4. DELETE CONTACT\n";


cout << "\t\t5. DELETE SAME NAME IN PHONEBOOK\n";

cout << "\t\t6. SEARCH\n";

cout << "\t\t7. EMERGENCY DIAL LIST\n";

cout << "\t\t8. EXIT\n";

cout << "ENTER YOUR CHOICE: ";

cin >> ch;

switch (ch) {

case 1:

contactList.insertContact();

break;

case 2:

contactList.displayContacts();

break;

case 3:

char p0[30];

cout << "\nEnter Your PASSWORD TO ACCESS THE OPERATION :\n";

cin >> p0;

if (strcmp(p0, password) == 0) {

cout << "\n\nEnter The Name OF PERSON WHOSE DETAILS YOU WANT
TO UPDATE...\n";

cin >> n;

contactList.updateContactDetails(n);

} else {

cout << "INCORRECT PASSWORD\n";

break;
case 4:

char p[30];

cout << "\nENTER YOUR PASSWORD TO ACCESS THE OPERATION :\n";

cin >> p;

if (strcmp(p, password) == 0) {

cout << "\nENTER THE NAME YOU WANT TO DELETE FROM


PHONEBOOK\n";

cin >> name;

contactList.deleteContact(name);

} else {

cout << "INCORRECT PASSWORD\n";

break;

case 5:

char p1[30];

cout << "\nENTER YOUR PASSWORD TO ACCESS THE OPERATION :\n";

cin >> p1;

if (strcmp(p1, password) == 0) {

contactList.deleteSameNameContacts();

contactList.displayContacts();

} else {

cout << "INCORRECT PASSWORD\n";

break;

case 6:

do {
cout << "1.SEARCH BY NAME\n2.SEARCH BY NUMBER\n3.SEARCH BY E-
MAIL ID\n";

cin >> a;

switch (a) {

case 1:

cout << "ENTER THE NAME TO BE SEARCHED\n";

cin >> name;

contactList.searchByName(name);

break;

case 2:

cout << "ENTER THE NUMBER TO BE SEARCHED\n";

cin >> number;

contactList.searchByNumber(number);

break;

case 3:

cout << "ENTER THE E-MAIL ID TO BE SEARCHED\n";

cin >> gmail;

contactList.searchByEmail(gmail);

break;

default:

cout << "\nNO PROPER INPUT GIVEN.....\n";

cout << "\n\nDO YOU WANT TO CONTINUE SEARCHING?";

cin >> ans;

} while (ans == 'y');

break;
case 7:

contactList.emergencyDial(city);

break;

case 8:

cout << "\n\t\tTHANK YOU";

exit(0);

default:

cout << "\nNO PROPER INPUT GIVEN..\n";

return 0;

You might also like