Linked List For Getting Employee Details, Display and Search For Salary C Program

How to write a C program to Linked list implementation for printing the employee details, display them and SEARCH for the salary of the employee based on his designation in C Programming Language ?



Solution:
/* Linked list implementation for printing the employee details, display them and SEARCH for the salary of the employee based on his designation */
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct node* createnode(struct node*);
void display(struct node*);
void search(struct node*);

struct node
{
char name[10],des[10];
int age;
float salary;
struct node* ptr;
};

int main()
{
struct node* head;
int b,i;

head=NULL;

while(1)
{

printf("\nEnter the value\n1-> to enter the employee details\n2->to display the results\n3->to search an element\n");
scanf("%d",&b);

switch(b)
{
case (1): printf("\nEnter the number of employee details you would like to enter\n");
         scanf("%d",&i);
 while(i>0)
 {
 head=createnode(head);
 i--;
 }
 break;

case (2): display(head);
          break;

case (3): search(head);
          break;
}
}
}


void display(struct node* head)
{
if(head==NULL)
{
printf("\nThe node is yet to be displayed \n");
}

else
{
while(head!=NULL)
{
printf("\nThe name of the employee is %s\n",head->name);
printf("\nThe designation of the employee is %s\n",head->des);
printf("\nThe salary of the employee is %f\n",head->salary);
printf("\nThe age of the employee is %d\n",head->age);

head=head->ptr;

}

}
}

struct node* createnode(struct node* head)
{

struct node* newnode;
newnode=(struct node*)malloc(sizeof (struct node));

printf("\nEnter the employee name \n");
scanf("%s",newnode->name);
printf("\nEnter the employee's designation \n");
scanf("%s",newnode->des);
printf("\nEnter the salary of the employee \n");
scanf("%f",&newnode->salary);
printf("\nEnter the age of the employee\n");
scanf("%d",&newnode->age);

if(newnode == NULL)
{
printf("\n Enter the newnode \n");
newnode->ptr=NULL;
}

else
{
newnode->ptr=head;

}
return newnode;
}


void search(struct node* head)
{
char ch[10];

printf("\nEnter the search string\n");

scanf("%s",ch);


while(head!=NULL)
{
if(strcmp(ch,head->des)==0)
{
printf("\nThe element is matched\n");
printf("\nThe salary of the designated member is %f\n",head->salary);

}

else {
printf("\nThe element is not matched\n");
}
head=head->ptr;
}
}


Learn More :