Sunday, December 12, 2010

File Operations

/*PROGRAM TO ILLUSTARTE FILE OPERATIONS LIKE INSERTION,DELETION,SEARCH,SORT
AND UPDATE OF A RECORD*/

#include
#include
#define SIZE 10
struct student
{
char name[SIZE];
int roll;
int tot;
int m1,m2,m3;
}s,temp[SIZE],t[SIZE],s1;
void insert();
void search();
void display();
void delet();
void sort();
void main()
{
int ch;
FILE *fp;
clrscr();
do
{
printf("\n\tMenu\n");
printf("\t[1] Insert\n");
printf("\t[2] Search\n");
printf("\t[3] Display\n");
printf("\t[4] Delete\n");
printf("\t[0] Sort\n");
printf("\t[6] Exit\n");
printf("\t: ");
scanf("%d",&ch);
switch(ch)
{
case 1:
insert();
break;
case 2:
search();
break;
case 3:
display();
break;
case 4:
delet();
break;
case 5:
sort();
break;
case 6:
break;
default:
printf("Wrong input");
break;
}
}while(ch!=6);
getch();
}

void insert()
{
FILE *fp;
fp=fopen("stud","a+");
printf("Name\t\t: ");
scanf("%s",s.name);
printf("Roll Number\t: ");
scanf("%d",&s.roll);
printf("Enter marks in 3 subjects\t\t: ");
scanf("%d %d %d",&s.m1,&s.m2,&s.m3);
s.tot=s.m1+s.m2+s.m3;
printf("Total : %d\n",s.tot);
fwrite(&s,sizeof(s),1,fp);
fclose(fp);
}

void search()
{
int i=0,m,j,flag=0;
FILE *fp;
fp=fopen("stud","r");
while(fread(&s,sizeof(s),1,fp)==1)
temp[i++]=s;
printf("Enter Roll Number : ");
scanf("%d",&m);
for(j=0;jt[k].tot)
{
s1=t[j];
t[j]=t[k];
t[k]=s1;
}
}
}
fclose(fp);
fp=fopen("stud","w");
for(i=0;i fwrite(&t[i],sizeof(t[i]),1,fp);
fclose(fp);
display();
}



Output
------------------------------------
Menu
[1] Insert
[2] Search
[3] Display
[4] Delete
[5] Sort
[6] Exit
: 1
Name : Ramu
Roll Number : 2
Enter marks in 3 subjects: 23 24 25
Total : 72

Menu
[1] Insert
[2] Search
[3] Display
[4] Delete
[5] Sort
[6] Exit
: 1
Name : Raju
Roll Number : 1
Enter marks in 3 subjects: 45 34 23
Total : 102

Menu
[1] Insert
[2] Search
[3] Display
[4] Delete
[5] Sort
[6] Exit
: 1
Name : Rohan
Roll Number : 5
Enter marks in 3 subjects: 23
34
35
Total : 92


Menu
[1] Insert
[2] Search
[3] Display
[4] Delete
[5] Sort
[6] Exit
: 3

Name : Ramu
Roll number : 2
Marks : 23 24 25
Total : 72

Name : Raju
Roll number : 1
Marks : 45 34 23
Total : 102

Name : Rohan
Roll Number : 5
Marks : 23 34 35
Total : 92

Menu
[1] Insert
[2] Search
[3] Display
[4] Delete
[5] Sort
[6] Exit
: 2
Enter Roll Number : 1

Name : Raju
Total : 102


Menu
[1] Insert
[2] Search
[3] Display
[4] Delete
[5] Sort
[6] Exit
: 5

Name : Ramu
Roll number : 2
Marks : 23 24 25
Total : 72

Name : Rohan
Roll number : 5
Marks : 23 34 35
Total : 92

Name : Raju
Roll number : 1
Marks : 45 34 23
Total : 102

Menu
[1] Insert
[2] Search
[3] Display
[4] Delete
[5] Sort
[6] Exit
: 4
Roll Number : 5

Deleted record

Name : Rohan
Roll number : 5
Marks: 23 34 35
Total : 92

Menu
[1] Insert
[2] Search
[3] Display
[4] Delete
[5] Sort
[6] Exit
: 3

Name : Ramu
Roll number : 2
Marks : 23 24 25
Total : 72

Name : Raju
Roll number : 1
Marks : 45 34 23
Total : 102
*/

No comments:

Post a Comment