Advertisement
afrinahoque

Balalalala

Dec 13th, 2019
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.62 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. typedef struct node
  4. {
  5.     int a;
  6.     char b[50];
  7.     char c[50];
  8.     struct node *next, *prev;
  9. }node;
  10.  
  11. node *head=NULL, *tail=NULL;
  12.  
  13. void addbooks()
  14. {
  15.     node *N=(node*)malloc(sizeof(node));
  16.     printf("Enter Book ID:\n");
  17.     scanf("%d", &N->a);
  18.     printf("Enter Book Name:\n");
  19.     scanf(" %[^\n]", N->b);
  20.     printf("Enter the Author Name:\n");
  21.     scanf(" %[^\n]", N->c);
  22.     N->next=NULL;
  23.     N->prev=NULL;
  24.  
  25.     if(head==NULL)
  26.     {
  27.         head=N;
  28.         tail=N;
  29.     }
  30.     else
  31.     {
  32.         tail->next=N;
  33.         N->prev=tail;
  34.         tail=N;
  35.     }
  36.     printf("The record is sucessfully saved!\n");
  37.     printf("   1. Menu\n");
  38.     printf("   2. Exit\n");
  39.     printf("   3. Add Books Again.\n");
  40.     printf("\nChoose an option.\n");
  41.     int y;
  42.     scanf("%d",&y);
  43.     switch(y)
  44.     {
  45.     case 1:
  46.     {
  47.         menu();
  48.         break;
  49.     }
  50.     case 2:
  51.     {
  52.         exit(0);
  53.         break;
  54.     }
  55.     case 3:
  56.         {
  57.             addbooks();
  58.             break;
  59.         }
  60.     default :
  61.     {
  62.  
  63.         printf("You've Chosen A Wrong Option!!\n\n");
  64.         menu();
  65.         break;
  66.     }
  67.     }
  68. }
  69.  
  70. void delete_by_value()
  71. {
  72.     node *temp;
  73.     node *list=head;
  74.     {
  75.         int x;
  76.         printf("Enter the BookID:\n");
  77.         scanf("%d", &x);
  78.  
  79.         if(head==NULL)
  80.         {
  81.             printf("There's Nothing Still.\n");
  82.         }
  83.         else
  84.         {
  85.         if(head->a==x)
  86.         {
  87.             temp=head;
  88.             head=temp->next;
  89.             free(temp);
  90.         }
  91.         else if(tail->a==x)
  92.         {
  93.             temp=tail;
  94.             temp->prev->next=NULL;
  95.             tail=temp->prev;
  96.             free(temp);
  97.         }
  98.         else
  99.         {
  100.             while(list->next->a!=x && list->next->next!=NULL)
  101.             {
  102.                 list=list->next;
  103.             }
  104.             temp=list->next;
  105.             temp->prev->next=temp->next;
  106.             temp->next->prev=temp->prev;
  107.             free(temp);
  108.         }
  109.         }
  110.     }
  111.     printf("The record is sucessfully deleted!!\n");
  112.     printf("   1. Delete Book Again.\n");
  113.     printf("   2. Menu\n");
  114.     printf("   3. Exit\n");
  115.     printf("\nChoose an option.\n");
  116.     int z;
  117.     scanf("%d",&z);
  118.     switch(z)
  119.     {
  120.         case 1:
  121.         {
  122.             deletebooks();
  123.             break;
  124.         }
  125.     case 2:
  126.     {
  127.         menu();
  128.         break;
  129.     }
  130.     case 3:
  131.     {
  132.         exit(0);
  133.         break;
  134.     }
  135.     default :
  136.     {
  137.         printf("You've Chosen A Wrong Option!!\n\n");
  138.         menu();
  139.         break;
  140.     }
  141.     }
  142. }
  143.  
  144. void delete_by_name()
  145. {
  146.     node *temp;
  147.     node *list=head;
  148.     {
  149.         char x;
  150.         printf("Enter the Book Name:\n");
  151.         scanf(" %[^\n]", x);
  152.  
  153.         if(head==NULL)
  154.         {
  155.             printf("There's Nothing Still.\n");
  156.         }
  157.         else
  158.         {
  159.         if(head->b==x)
  160.         {
  161.             temp=head;
  162.             head=temp->next;
  163.             free(temp);
  164.         }
  165.         else if(tail->b==x)
  166.         {
  167.             temp=tail;
  168.             temp->prev->next=NULL;
  169.             tail=temp->prev;
  170.             free(temp);
  171.         }
  172.         else
  173.         {
  174.             while(list->next->b!=x && list->next->next!=NULL)
  175.             {
  176.                 list=list->next;
  177.             }
  178.             temp=list->next;
  179.             temp->prev->next=temp->next;
  180.             temp->next->prev=temp->prev;
  181.             free(temp);
  182.         }
  183.         }
  184.     }
  185.     printf("The record is sucessfully deleted!!\n");
  186.     printf("   1. Delete Book Again.\n");
  187.     printf("   2. Menu\n");
  188.     printf("   3. Exit\n");
  189.     printf("\nChoose an option.\n");
  190.     int z;
  191.     scanf("%d",&z);
  192.     switch(z)
  193.     {
  194.         case 1:
  195.         {
  196.             deletebooks();
  197.             break;
  198.         }
  199.     case 2:
  200.     {
  201.         menu();
  202.         break;
  203.     }
  204.     case 3:
  205.     {
  206.         exit(0);
  207.         break;
  208.     }
  209.     default :
  210.     {
  211.         printf("You've Chosen A Wrong Option!!\n\n");
  212.         menu();
  213.         break;
  214.     }
  215.     }
  216. }
  217.  
  218. void deletebooks()
  219. {
  220.     printf("   1. Delete by BookID\n");
  221.     printf("   2. Delete by BookName\n");
  222.     printf("\nChoose an option.\n");
  223.     int z;
  224.     scanf("%d",&z);
  225.     switch(z)
  226.     {
  227.         case 1:
  228.         {
  229.             delete_by_value();
  230.             break;
  231.         }
  232.         case 2:
  233.             {
  234.                 delete_by_name();
  235.                 break;
  236.             }
  237.     case 3:
  238.     {
  239.         exit(0);
  240.         break;
  241.     }
  242.     default :
  243.     {
  244.  
  245.         printf("You've Chosen A Wrong Option!!\n\n");
  246.         menu();
  247.         break;
  248.     }
  249.     }
  250. }
  251.  
  252.  
  253. void display()
  254. {
  255.     node *list=head;
  256.     while(list!=NULL)
  257.     {
  258.         printf("Book ID: %d\n", list->a);
  259.         printf("Book Name: %s\n", list->b);
  260.         printf("Author Name: %s\n", list->c);
  261.         list=list->next;
  262.     }
  263. }
  264.  
  265. void menu()
  266. {
  267.     printf("\xB2\xB2\xB2\xB2\xB2\xB2\xB2\xB2\xB2\xB2\xB2\xB2\xB2\xB2 MAIN MENU \xB2\xB2\xB2\xB2\xB2\xB2\xB2\xB2\xB2\xB2\xB2\xB2\xB2\xB2\n");
  268.     printf("    1.Add\n");
  269.     printf("    2.Delete\n");
  270.     printf("    3.Search\n");
  271.     printf("    4.Display\n");
  272.     printf("    5.Exit\n");
  273.     printf("Choose a option:");
  274.     int x;
  275.     scanf("%d",&x);
  276.     switch(x)
  277.     {
  278.     case 1:
  279.     {
  280.         addbooks();
  281.         break;
  282.     }
  283.     case 2:
  284.     {
  285.         deletebooks();
  286.         break;
  287.     }
  288.     case 3:
  289.     {
  290.         exit(0);
  291.         break;
  292.     }
  293.     default :
  294.     {
  295.  
  296.         printf("You Choose A Wrong option!!\n\n");
  297.         menu();
  298.         break;
  299.     }
  300.     }
  301. }
  302.  
  303. int main()
  304. {
  305.     menu();
  306.     return 0;
  307. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement