Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <windows.h>
- struct student
- {
- int id;
- int cla;
- char group[20];
- char name[20];
- struct student *next,*prev;
- }*start=NULL,*end=NULL,*current;
- void create()
- {
- if(start==NULL && end==NULL)
- {
- struct student *new_node;
- new_node=(struct student*)malloc(1*sizeof(struct student));
- printf("Enter Name:\n");
- scanf("%s",&new_node->name);
- printf("\nEnter Class:");
- scanf("%d",&new_node->cla);
- printf("\nEnter ID:");
- scanf("%d",&new_node->id);
- printf("Enter Group:\n");
- scanf("%s",&new_node->group);
- new_node->next=NULL;
- new_node->prev=NULL;
- start=new_node;
- end=new_node;
- current=new_node;
- system("cls");
- }
- else
- {
- struct student *new_node;
- new_node=(struct student*)malloc(1*sizeof(struct student));
- printf("Enter Name:\n");
- scanf("%s",&new_node->name);
- printf("\nEnter Class:");
- scanf("%d",&new_node->cla);
- printf("\nEnter ID:");
- scanf("%d",&new_node->id);
- printf("Enter Group:\n");
- scanf("%s",&new_node->group);
- new_node->next=NULL;
- new_node->prev=NULL;
- current->next=new_node;
- new_node->prev=current;
- end=new_node;
- current=new_node;
- system("cls");
- }
- }
- struct teacher
- {
- int id;
- char name[20];
- struct teacher *next,*prev;
- }*start1=NULL,*end1=NULL,*current1;
- void create1()
- {
- if(start1==NULL && end1==NULL)
- {
- struct teacher *new_node;
- new_node=(struct teacher*)malloc(1*sizeof(struct teacher));
- printf("\nEnter the number of teacher id:\n");
- scanf("%d",&new_node->id);
- printf("\nEnter the teacher name:\n");
- scanf("%s",&new_node->name);
- new_node->next=NULL;
- new_node->prev=NULL;
- start1=new_node;
- current=new_node;
- end1=new_node;
- }
- else
- {
- struct teacher *new_node;
- new_node=(struct teacher*)malloc(1*sizeof(struct teacher));
- printf("Enter the number of teacher id:\n");
- scanf("%d",&new_node->id);
- printf("Enter the teacher name:\n");
- scanf("%s",&new_node->name);
- new_node->next=NULL;
- new_node->prev=NULL;
- current->next=new_node;
- new_node->prev=current;
- current=new_node;
- end1=new_node;
- }
- int search(int a)
- {
- struct student *c;
- c=start;
- int po=0;
- while(c!=NULL)
- {
- po++;
- if(c->id==a)
- {
- return po;
- }
- c=c->next;
- }
- return -1;
- }
- void dis()
- {
- struct student *c;
- c=start;
- while(c!=NULL)
- {
- printf("\n Name: %s \n ID: %d\n",c->name,c->id);
- c=c->next;
- }
- }
- int main()
- {
- int x;
- while(5)
- {
- printf("\nPress 1 For cre, 2 for Dis,3 search\n");
- scanf("%d",&x);
- switch(x)
- {
- case 1:
- {
- create();
- break;
- }
- case 2:
- {
- dis();
- break;
- }
- case 3:
- {
- printf("Enter Id:\n");
- int n;
- scanf("%d",&n);
- int pos = search(n);
- if(pos==-1)
- {
- printf("\n Not Found\n");
- }
- else
- {
- struct student *b;
- b=start;
- int j;
- for(j=0;j<pos-1;j++)
- {
- b=b->next;
- }
- printf("\nName: %s\n",b->name);
- }
- }
- case 4:
- {
- create1();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement