Eyob DSA Group Assign
Eyob DSA Group Assign
#include <cstring>
#include <process.h>
class ContactNode {
public:
char name[30];
char phoneNumber[50];
char email[40];
char city[30];
strcpy(name, n);
strcpy(phoneNumber, r);
strcpy(email, g);
strcpy(city, c);
next = NULL;
prev = NULL;
};
class ContactList {
ContactNode *prevNode;
void insertContact();
void deleteSameNameContacts();
void accept();
void displayContacts();
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];
if (head == NULL) {
head = temp;
} else {
ptr = head;
ptr = ptr->next;
ptr->next = temp;
temp->prev = ptr;
}
void ContactList::displayContacts() {
ptr = head;
ptr = ptr->next;
void ContactList::insertContact() {
accept();
int c = 0;
ptr = head;
if (strcmp(s, ptr->name) == 0) {
c = 1;
break;
} else {
c = 2;
ptr = ptr->next;
ptr->next->prev = ptr->prev;
delete (ptr);
if (ptr == head) {
head = head->next;
if (head != NULL) {
head->prev = NULL;
delete (ptr);
if (ptr->next == NULL) {
ptr->prev->next = NULL;
ptr->prev = NULL;
delete (ptr);
if (c == 2) {
void ContactList::deleteSameNameContacts() {
ptr1 = head;
ptr2 = ptr1;
dup = ptr2->next;
ptr2->next = ptr2->next->next;
delete (dup);
} else {
ptr2 = ptr2->next;
ptr1 = ptr1->next;
ptr = head;
if (strcmp(na, ptr->name) == 0) {
} else {
ptr = ptr->next;
}
void ContactList::searchByNumber(char num[20]) {
ptr = head;
if (strcmp(num, ptr->phoneNumber) == 0) {
} else {
ptr = ptr->next;
ptr = head;
if (strcmp(gm, ptr->email) == 0) {
} else {
ptr = ptr->next;
ptr = head;
if (strcmp(ct, ptr->city) == 0) {
ptr = ptr->next;
char ans;
int c;
ptr = head;
if (strcmp(n, ptr->name) == 0) {
do {
cin >> c;
switch (c) {
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
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;
cin.ignore();
cin.getline(name, 20);
cin.getline(city, 20);
cin.getline(password, 20);
cout << "\n\n\nLET'S Create Your PHONEBOOK " << name << " \n\n";
while (1) {
switch (ch) {
case 1:
contactList.insertContact();
break;
case 2:
contactList.displayContacts();
break;
case 3:
char p0[30];
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 {
break;
case 4:
char p[30];
cin >> p;
if (strcmp(p, password) == 0) {
contactList.deleteContact(name);
} else {
break;
case 5:
char p1[30];
if (strcmp(p1, password) == 0) {
contactList.deleteSameNameContacts();
contactList.displayContacts();
} else {
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:
contactList.searchByName(name);
break;
case 2:
contactList.searchByNumber(number);
break;
case 3:
contactList.searchByEmail(gmail);
break;
default:
break;
case 7:
contactList.emergencyDial(city);
break;
case 8:
exit(0);
default:
return 0;