You are on page 1of 5

#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <malloc.h> #include <string.

h> const int maxn=30; struct contact { char name[maxn]; char address[maxn]; char email[maxn]; char phone[maxn]; struct contact *next; }; contact *create_contact() { contact *c; c=(contact*)malloc(sizeof(contact)); c->next=NULL; return c; } char id; contact *root; void ShowList() { system("cls"); printf("LIST MENU : \n"); printf(" 1 : Add Contact\n"); printf(" 2 : Edit Contact\n"); printf(" 3 : Search Contact\n"); printf(" 4 : Delete Contact\n"); printf(" 5 : Exit\n"); printf(" Enter your choice : "); scanf("%d",&id); } contact *Search_Contact(char name[]) { contact *p; p=root; while (strcmp(p->name,name)!=0 && p->next!=NULL) p=p->next; return p; }

void ShowContact(contact *t) { printf("Ten : ");puts(t->name); printf("Dia Chi : ");puts(t->address); printf("Email : ");puts(t->email); printf("Phone : ");puts(t->phone); } void EditContact() { char name[maxn]; system("cls"); printf("Nhap ten can sua : "); fflush(stdin); gets(name); contact *t; t=Search_Contact(name); if (t==NULL) { printf("Khong tim thay trong danh ba\n"); printf("1 : Nhap lai ten\n"); printf("2 : Ve Menu Chinh\n"); int h; printf("Enter your choice: "); scanf("%d",&h); switch (h) { case 1 : EditContact();return; case 2 : return; } } else { while (1) { system("cls"); printf("Thong tin Contact can sua :\n"); ShowContact(t); printf("1 : Sua Ten\n"); printf("2 : Sua Dia Chi\n"); printf("3 : Sua Email\n"); printf("4 : Sua SDT\n"); printf("5 : Quay ve Menu chinh\n"); printf("Enter your choice :"); int h; scanf("%d",&h); switch(h) { case 1 : printf("Ten Moi : "); fflush(stdin);gets(name);strcpy(t->name,name); break;

case 2 : printf("Dia Chi Moi : "); fflush(stdin);gets(name);strcpy(t->address,name);break; case 3 : printf("Email Moi : "); fflush(stdin);gets(name);strcpy(t->email,name);break; case 4 : printf("SDT Moi : "); fflush(stdin);gets(name);strcpy(t->phone,name);break; case 5 : return; } char o; printf("Ban co muon sua tiep hay khong Y/N?");scanf("%c",&o); if (o=='N') break; } } }

void AddContact() { contact *p; char name[maxn]; p=create_contact(); system("cls"); printf("Nhap ten : "); fflush(stdin); gets(name); contact *t; t=Search_Contact(name); if (t->next!=NULL) { printf("Ten nay da co trong danh ba :)\n"); printf("1 : Ve Menu chinh\n"); printf("2 : Nhap lai ten\n"); printf("3 : Sua contact nay\n"); int h; printf("Enter your choice :"); scanf("%d",&h); switch(h) { case 1 : return; case 2 : AddContact();return; case 3 : EditContact();return; } } strcpy(p->name,name); printf("Nhap Dia chi : "); fflush(stdin); gets(name); strcpy(p->address,name); printf("Nhap Email : "); fflush(stdin); gets(name); strcpy(p->email,name); printf("Nhap SDT : "); fflush(stdin); gets(name); strcpy(p->phone,name); p->next=root; root=p; printf("OK!!...Da them ten %s vao trong danh ba \n",root->name); system("pause");

} void DeleteContact() { char name[maxn]; system("cls"); printf("Nhap ten Danh Ba can xoa : ");fflush(stdin);gets(name); contact *p; p=Search_Contact(name); if (p->next==NULL) printf("Khong co ten nay trong danh ba\n"); else { printf("Thong tin danh ba can xoa\n"); ShowContact(p); } if (p->next!=NULL) { if (p==root) root=root->next; else { contact *t; t=root; while (t->next!=p) t=t->next; t->next=p->next; } printf("OK!!! Da Xoa Xong....\n"); } char h; printf("Ban co muon tiep tuc xoa khong....Y/N? : ");scanf("%c",&h); if (h=='Y' || h=='y') DeleteContact(); else return; } void SearchContact() { char name[maxn]; system("cls"); printf("Nhap ten Danh Ba can tim : ");fflush(stdin);gets(name); contact *p; p=Search_Contact(name); if (p->next==NULL) printf("Khong co ten nay trong danh ba\n"); else { printf("Thong tin danh ba can tim\n"); ShowContact(p); } char h; printf("Ban co muon tiep tuc tim khong....Y/N? : ");scanf("%c",&h); if (h=='Y' || h=='y') SearchContact();

else return; } main() { root=create_contact(); while (1) { ShowList(); switch (id) { case 1 : AddContact();break; case 2 : EditContact();break; case 3 : SearchContact();break; case 4 : DeleteContact();break; case 5 : return 0; } } }

You might also like