SALARY MANAGEMENT SYSTEM


#include <stdio.h>//header file that contains printf and scanf function
#include<string.h>//header file contains functions of string

typedef struct Employee//convert any identifier to a data type
{
                char fname[20];//Structured declared variable of some data type
                char lname[20];
                char sub_taken[20];
                char last_edu[20];
                char join_date[20];
                int id;
                int age;
                float bsal;
}Employee;//Structure Variable

int main(void)//void type of argument is passed
{

                int id, check;
                FILE *fp,*ft;//File Pointer
                char another,choice;
                Employee emp;
                char fname[20];
                char lname[20];
                long int recsize;

                fp=fopen("EMP.DAT","rb+");//file is opened at read mode
                if(fp==NULL)
                {
                                fp=fopen( "EMP.DAT","wb+");//file is opened at write mode
                                if(fp==NULL)//checking the whether the file exists or not
                                {
                                                printf("Can't Open File");
                                               
                                }
                }
                recsize=sizeof(emp);//gives the size of emp variable using structure
                while(1)
                {
                                printf("1.Add Records 2.Delete Records 3.Modify Records      4.ListRecords 5.Exit");
                                printf("Enter your choice");
                                fflush(stdin);//If the given stream has a buffered output,fflush writes the output for the stream to the associated file
                                scanf("%c",&choice);
                                switch(choice)//checking entered choice
                                {
                                                case'1':
                                                                fseek(fp,0,SEEK_END);//sets the file pointer associated with the stream to a new pointer
                                                                another='Y';
                                                                while(another=='Y'|| another=='y')
                                                                {
                                                                                printf("Enter the first name,last name,age and basic salary : ");
                                                                                scanf("%s %d %f",emp.fname,&emp.age,&emp.bsal);
                                                                                printf("Enter joining date,id,last education,subject taken");
                                                                                scanf("%s %d %s %s",emp.join_date,&emp.id,emp.last_edu,
                                                                                emp.sub_taken);
                                                                                fwrite(&emp,recsize,1,fp);//writes to a stream
                                                                                printf("  Add another Record (Y/N): ");
                                                                                fflush(stdin);
                                                                                another=getchar();
                                                                }

                                                                break;
                                                case '2':
                                                                another='Y';
                                                                while(another=='Y'|| another=='y')
                                                                {
                                                                                printf("Enter the id of the employee to be deleted : ");
                                                                                scanf("%d",&id);
                                                                                ft=fopen("TEMP.DAT","wb");//another file is opened
                                                                                rewind(fp);//Reposition file pointers to stream’s beginning
                                                                                while(fread(&emp,recsize,1,fp)==1)
                                                                                {     
                                                                                               
                                                                                                if(emp.id!=id)
                                                                                                fwrite(&emp,recsize,1,ft);//Contents are added if the file does not have that data
                                                                                }
                                                                                fclose(fp);//Fp File is closed
                                                                                fclose(ft);//Ft File is closed
                                                                                remove("EMP.DAT");//removes data if found
                                                                                rename("TEMP.DAT","EMP.DAT");//renames the file
                                                                                fp=fopen("EMP.DAT","rb+");
                                                                                printf("Delete another Record(Y/N): ");
                                                                                fflush(stdin);
                                                                                another=getchar();
                                                                }

                                                                break;
                                                 case '3':
                                                                another='Y';
                                                                while(another=='Y'|| another=='y')
                                                                {
                                                                                printf(" Enter name of employee to modify : ");
                                                                                scanf("%s",emp.fname);
                                                                                rewind(fp);
                                                                                while(fread(&emp,recsize,1,fp)==1)
                                                                                {    
                         
                                                                                                if(emp.id!=id)
                                                                                                {
                                                                                                 printf("Enter new fname,new lname,age,basicsalary,joining_date,subject taken and last education : ");
                         scanf("%s%s%d%f%s%s%s",emp.fname,emp.lname,&emp.age,&emp.bsal,emp.join_date,emp.sub_taken,emp.last_edu);
                                                                                                                fseek(fp,-recsize,SEEK_CUR);
                                                                                                                fwrite(&emp,recsize,1,fp);
                                                                                                                break;
                                                                                                 }
                                                                                 }
                                                                                 printf("Want to Modify another record(Y/N): ");
                                                                                 fflush(stdin);
                                                                                 another=getchar();//taking Input
                                                                 }

                                                                 break;

                                                  case '4':

                                                       rewind(fp);
                                                       while(fread(&emp,recsize,1,fp)==1)
                                                       printf("%s %s %d%g",emp.fname,emp.lname,emp.age,emp.bsal,emp.join_date,emp.last_edu,emp.sub_taken);
                                                       break;

                                                 case '5':
                                                                fclose(fp);//File is closed
                                                                return 0;
                               

                                }
                }
 }
SHARE
    Blogger Comment
    Facebook Comment

0 comments :

Post a Comment