0% found this document useful (0 votes)
34 views

Employer Record System: By, Arjun Acharya Samarth M.S Shashank

This program allows users to manage employee records by listing, modifying, deleting, or adding new records from a binary file. It uses structures to store employee name, age, and salary. Users can choose from a menu to perform the desired operation on records by reading from or writing to the binary file. The program uses file pointers and structure variables to store and retrieve employee data from the file.

Uploaded by

Arjun Acharya
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views

Employer Record System: By, Arjun Acharya Samarth M.S Shashank

This program allows users to manage employee records by listing, modifying, deleting, or adding new records from a binary file. It uses structures to store employee name, age, and salary. Users can choose from a menu to perform the desired operation on records by reading from or writing to the binary file. The program uses file pointers and structure variables to store and retrieve employee data from the file.

Uploaded by

Arjun Acharya
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

EMPLOYER RECORD

SYSTEM

By,
Arjun Acharya
Samarth M.S
Shashank
This program is used to record the details of the employees in a work place. It
allows to list, modify, delete or enter new employe addresses

Libraries Used:

Conio.h: This header declares several useful library functions for performing "console input and
output" from a program. Most C compilers that target DOS, Windows 3.x, Phar Lap, DOSX, OS/2,
or Win32[2] have this header and supply the associated library functions in the default C library.
Most C compilers that target UNIX and Linux do not have this header and do not supply the library
functions. Some embedded systems use a conio-compatible library.[3]

Stdio.h: For standard input output operations

Stdlib.h: The stdlib.h header defines four variable types, several macros, and various functions for
performing general functions.

String.h: Standard string functions and operations.

Window.h: windows.h is a Windows-specific header file for the C and C++ programming
languages which contains declarations for all of the functions in the Windows API, all the common
macros used by Windows programmers, and all the data types used by the various functions and
subsystems.

Next, is the body of the program.


#include <stdio.h> ///for input output functions like printf, scanf
#include <stdlib.h>
#include <conio.h>
#include <windows.h> ///for windows related functions (not important)
#include <string.h> ///string operations

/** List of Global Variable */


COORD coord = {0,0}; /// top-left corner of window

/**
function : gotoxy
@param input: x and y coordinates
@param output: moves the cursor in specified position of console
*/
void gotoxy(int x,int y)
{
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}

/** Main function started */

int main()
{
FILE *fp, *ft; /// file pointers
char another, choice;

/** structure that represent a employee */


struct emp
{
char name[40]; ///name of employee
int age; /// age of employee
float bs; /// basic salary of employee
};

struct emp e; /// structure variable creation

char empname[40]; /// string to store name of the employee

long int recsize; /// size of each record of employee

/** open the file in binary read and write mode


* if the file EMP.DAT already exists then it open that file in read write mode
* if the file doesn't exit it simply create a new copy
*/
fp = fopen("EMP.DAT","rb+");
if(fp == NULL)
{
fp = fopen("EMP.DAT","wb+");
if(fp == NULL)
{
printf("Connot open file");
exit(1);
}
}

/// sizeo of each record i.e. size of structure variable e


recsize = sizeof(e);

/// infinite loop continues untile the break statement encounter


while(1)
{
system("cls"); ///clear the console window
gotoxy(30,10); /// move the cursor to postion 30, 10 from top-left corner
printf("1. Add Record"); /// option for add record
gotoxy(30,12);
printf("2. List Records"); /// option for showing existing record
gotoxy(30,14);
printf("3. Modify Records"); /// option for editing record
gotoxy(30,16);
printf("4. Delete Records"); /// option for deleting record
gotoxy(30,18);
printf("5. Exit"); /// exit from the program
gotoxy(30,20);
printf("Your Choice: "); /// enter the choice 1, 2, 3, 4, 5
fflush(stdin); /// flush the input buffer
choice = getche(); /// get the input from keyboard
switch(choice)
{
case '1': /// if user press 1
system("cls");
fseek(fp,0,SEEK_END); /// search the file and move cursor to end of the file
/// here 0 indicates moving 0 distance from the end of the file

another = 'y';
while(another == 'y') /// if user want to add another record
{
printf("\nEnter name: ");
scanf("%s",e.name);
printf("\nEnter age: ");
scanf("%d", &e.age);
printf("\nEnter basic salary: ");
scanf("%f", &e.bs);

fwrite(&e,recsize,1,fp); /// write the record in the file

printf("\nAdd another record(y/n) ");


fflush(stdin);
another = getche();
}
break;
case '2':
system("cls");
rewind(fp); ///this moves file cursor to start of the file
while(fread(&e,recsize,1,fp)==1) /// read the file and fetch the record one record per fetch
{
printf("\n%s %d %.2f",e.name,e.age,e.bs); /// print the name, age and basic salary
}
getch();
break;

case '3': /// if user press 3 then do editing existing record


system("cls");
another = 'y';
while(another == 'y')
{
printf("Enter the employee name to modify: ");
scanf("%s", empname);
rewind(fp);
while(fread(&e,recsize,1,fp)==1) /// fetch all record from file
{
if(strcmp(e.name,empname) == 0) ///if entered name matches with that in file
{
printf("\nEnter new name,age and bs: ");
scanf("%s%d%f",e.name,&e.age,&e.bs);
fseek(fp,-recsize,SEEK_CUR); /// move the cursor 1 step back from current position
fwrite(&e,recsize,1,fp); /// override the record
break;
}
}
printf("\nModify another record(y/n)");
fflush(stdin);
another = getche();
}
break;
case '4':
system("cls");
another = 'y';
while(another == 'y')
{
printf("\nEnter name of employee to delete: ");
scanf("%s",empname);
ft = fopen("Temp.dat","wb"); /// create a intermediate file for temporary storage
rewind(fp); /// move record to starting of file
while(fread(&e,recsize,1,fp) == 1) /// read all records from file
{
if(strcmp(e.name,empname) != 0) /// if the entered record match
{
fwrite(&e,recsize,1,ft); /// move all records except the one that is to be deleted to
temp file
}
}
fclose(fp);
fclose(ft);
remove("EMP.DAT"); /// remove the orginal file
rename("Temp.dat","EMP.DAT"); /// rename the temp file to original file name
fp = fopen("EMP.DAT", "rb+");
printf("Delete another record(y/n)");
fflush(stdin);
another = getche();
}
break;
case '5':
fclose(fp); /// close the file
exit(0); /// exit from the program
}
}
return 0;
}
OUTPUT

You might also like