Advertisement
Mahfuz123

Sharif's Project

Dec 2nd, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.55 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. #define max 50
  5.  
  6. int num = 0;
  7.  
  8. void delete1();
  9. void listt();
  10. void search();
  11. void display();
  12.  
  13. struct contact {
  14. char f_name[max];
  15. char l_name[max];
  16. int number;
  17. char email[max];
  18. char address[max];
  19. struct contact *next;
  20.  
  21. }*head = NULL;
  22.  
  23. void manage()
  24. {
  25. FILE *fp, *f;
  26. struct contact *new_node, *current;
  27. char first[100], ex[] = ".txt";
  28. int a,b,n,i;
  29.  
  30. while(1)
  31. {
  32. printf("\nEnter : \n1 for add new contact\n2 for delete contact\n3 for view contact list\n4 for search contact\n5 for display a contact\n6 for exit\n\n");
  33. scanf("%d", &n);
  34.  
  35. if(n==1){
  36.  
  37. new_node = (struct contact*)malloc(sizeof(struct contact));
  38.  
  39. printf("Enter First name : ");
  40. scanf(" %[^\n]", new_node->f_name);
  41. strcpy(first, new_node->f_name);
  42. strcat(first,ex);
  43.  
  44. fp = fopen(first, "r");
  45. if(fp != NULL){
  46. free(new_node);
  47. printf("You have already created this contact\n");
  48. fclose(fp);
  49. }
  50. else{
  51. fclose(fp);
  52. f = fopen(first, "w");
  53.  
  54. fprintf(f, "Name : %s ", new_node->f_name);
  55. printf("Enter last name : ");
  56. scanf(" %[^\n]", new_node->l_name);
  57. fprintf(f, "%s\n", new_node->l_name);
  58.  
  59. printf("Enter phone number : ");
  60. scanf("%d", &new_node->number);
  61. fprintf(f, "Mobile : %d\n", new_node->number);
  62. printf("Enter Email address : ");
  63. scanf(" %[^\n]", new_node->email);
  64. fprintf(f, "Email : %s\n", new_node->email);
  65. printf("Enter address : ");
  66. scanf(" %[^\n]", new_node->address);
  67. fprintf(f, "Address : %s\n", new_node->address);
  68.  
  69. fclose(f);
  70. new_node->next = NULL;
  71. if(head == NULL){
  72. num++;
  73. head = new_node;
  74. current = new_node;
  75. printf("\nContact successfully saved\n");
  76. }
  77. else{
  78. num++;
  79. current->next = new_node;
  80. current = new_node;
  81. printf("\nContact successfully saved\n");
  82. }
  83.  
  84. }
  85.  
  86. }
  87.  
  88. else if(n==2){
  89. delete1();
  90. }
  91. else if(n==3){
  92. listt();
  93. }
  94. else if(n==4){
  95. search();
  96. }
  97. else if(n==5){
  98. display();
  99. }
  100. else if(n==6){
  101. break;
  102. }
  103. }
  104. }
  105.  
  106. void listt()
  107. {
  108. struct contact *current;
  109. int count = 0;
  110.  
  111. current = head;
  112. if(num>=1){
  113. printf("\nContact List : \n\n");
  114.  
  115. while(current!=NULL){
  116. count++;
  117. printf("%d. %s %s\n",count, current->f_name, current->l_name);
  118. current = current->next;
  119. }
  120. }
  121. else{
  122. printf("You have no contact\n");
  123. }
  124. }
  125. void delete1()
  126. {
  127. struct contact *current, *temp;
  128. int n,a,b,i,count = 0;
  129. char ch[100],ex[] = ".txt";
  130.  
  131. while(1)
  132. {
  133. printf("\nContact List : \n\n");
  134.  
  135.  
  136. if(num>=1){
  137. current = head;
  138. while(current != NULL)
  139. {
  140. count++;
  141. printf("%d. %s %s\n", count, current->f_name, current->l_name);
  142. current = current->next;
  143. }
  144. }
  145. else{
  146. printf("You have no contact\n");
  147. break;
  148. }
  149.  
  150. printf("Select a contact : ");
  151. scanf("%d", &n);
  152.  
  153. current = head;
  154.  
  155. for(i=1;i<n;i++){
  156. current = current->next;
  157. }
  158.  
  159. if(current == head)
  160. {
  161. strcpy(ch, current->f_name);
  162. strcat(ch, ex);
  163. remove(ch);
  164. head = current->next;
  165. num--;
  166. printf("Contact removed successfully\n");
  167. break;
  168. }
  169. else if(current->next == NULL){
  170. strcpy(ch, current->f_name);
  171. strcat(ch,ex);
  172. remove(ch);
  173.  
  174. current = head;
  175. for(i=1;i<=n-2;i++){
  176. current = current->next;
  177. }
  178. current->next = NULL;
  179. num--;
  180. printf("Contact removed successfully\n");
  181. break;
  182. }
  183. else{
  184. strcpy(ch, current->f_name);
  185. strcat(ch,ex);
  186. remove(ch);
  187.  
  188. temp = current->next;
  189. current = head;
  190.  
  191. for(i=1;i<=n-2;i++){
  192. current = current->next;
  193. }
  194.  
  195. current->next = temp;
  196. num--;
  197. printf("Contact removed successfully\n");
  198. break;
  199.  
  200. }
  201. }
  202. }
  203. void search()
  204. {
  205. struct contact *current;
  206. int i,a = 0,n;
  207. char ch[50],c[50];
  208.  
  209. printf("Enter name for search : ");
  210. scanf("%s %s", ch, c);
  211.  
  212. current = head;
  213.  
  214. while(current!=NULL){
  215. if(strcmp(current->f_name, ch) == 0 && strcmp(current->l_name,c)== 0){
  216. a = 1;
  217. printf("\nResult: \n");
  218. printf("Name : %s %s\nMobile : %d\nEmail : %s\nAddress : %s\n", current->f_name, current->l_name,current->number, current->email, current->address);
  219. break;
  220. }
  221. current = current->next;
  222. }
  223.  
  224. if(a==0){
  225. printf("You have no contact at this name\n");
  226. }
  227. }
  228.  
  229. void display()
  230. {
  231. struct contact *current;
  232. int n,i,count = 0;
  233. while(1)
  234. {
  235. current = head;
  236. if(num>=1){
  237. printf("\nContact List : \n\n");
  238.  
  239. while(current!=NULL){
  240. count++;
  241. printf("%d. %s %s\n",count, current->f_name, current->l_name);
  242. current = current->next;
  243. }
  244. }
  245. else{
  246. printf("You have no contact\n");
  247. break;
  248. }
  249.  
  250. printf("\nSelect a contact : ");
  251. scanf("%d", &n);
  252.  
  253.  
  254. current = head;
  255. for(i=1;i<n;i++){
  256. current = current->next;
  257. }
  258.  
  259. printf("Name : %s %s\n", current->f_name,current->l_name);
  260. printf("Mobile : %d\n", current->number);
  261. printf("Email : %s\n", current->email);
  262. printf("Address : %s\n", current->address);
  263. break;
  264. }
  265.  
  266.  
  267. }
  268.  
  269. int main()
  270. {
  271. printf("\n *** >->-> P H O N E B O O K <-<-< *** \n\n\n");
  272. manage();
  273. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement