Primitive operations on Sequential file in C language
Implement all primitive operations on Sequential file in C
Primitive operations on Sequential file in C language
1 2 |
<br/> #include <br/> #include <br/> #include <br/> typedef struct stud <br/> { <br/> int roll; <br/> char name[20]; <br/> struct add <br/> { <br/> int hno; <br/> char city[10]; <br/> }add; <br/> char clas[4]; <br/> int mark; <br/> }stud; <br/> stud alloc(stud ); <br/> void insert(char [20]); <br/> void create(); <br/> void display(); <br/> void searchnr(char [20]); <br/> void searchcr(char [20]); <br/> void modify(); <br/> void delet(); <br/> void main() <br/> { <br/> int ch,ch1; <br/> char filename[20]; <br/> do <br/> { <br/> clrscr(); <br/> printf("\n\t\tFILE OPERATION\n\t\t1.CREATE\n\t\t2.INSERT\n\t\t3.DISPLAY\n\t\t4.SEARCH\n\t\t5.MODIFY\n\t\t6.DELETE\n\t\t7.EXIT"); <br/> printf("\n\t\tENTER UR CHOICE"); <br/> scanf("%d",&ch); <br/> switch(ch) <br/> { <br/> case 1: <br/> printf("\n\t\tCREATE"); <br/> create(); <br/> break; <br/> case 2: <br/> printf("\n\t\tINSERT"); <br/> printf("\nENTER FILENAME:"); <br/> flushall(); <br/> gets(filename); <br/> insert(filename); <br/> break; <br/> case 3: <br/> printf("\n\t\tDISPLAY"); <br/> display(); <br/> break; <br/> case 4: <br/> printf("\nENTER FILENAME:"); <br/> flushall(); <br/> gets(filename); <br/> do <br/> { <br/> clrscr(); <br/> printf("\n\t\tSEARCH\n\t\t1.BY NAME N ROLL NO\n\t\t2.BY ROLL NO N CLASS\n\t\t3.EXIT"); <br/> printf("\n\t\tENTER UR CHOICE"); <br/> scanf("%d",&ch1); <br/> switch(ch1) <br/> { <br/> case 1: <br/> printf("SEARCH BY NAME N ROLL NO"); <br/> searchnr(filename); <br/> break; <br/> case 2: <br/> printf("SEARCH BY CLASS N ROLL NO"); <br/> searchcr(filename); <br/> break; <br/> case 3: <br/> break; <br/> } <br/> }while(ch1!=3); <br/> break; <br/> case 5: <br/> printf("\n\t\tMODIFY"); <br/> modify(); <br/> break; <br/> case 6: <br/> printf("\n\t\tDELETE"); <br/> delet(); <br/> break; <br/> case 7: <br/> break; <br/> } <br/> }while(ch!=7); <br/> } <br/> void create() <br/> { <br/> FILE *fp; <br/> char filename[20]; <br/> printf("\nENTER THE FILE NAME:"); <br/> flushall(); <br/> gets(filename); <br/> fp=fopen(filename,"r"); <br/> if(fp==NULL) <br/> { <br/> fclose(fp); <br/> fopen(filename,"r"); <br/> } <br/> else <br/> { <br/> printf("\nFILE IS ALREADY PRESENT,DO U WANT TO OVERWRITE PRESS 'y'"); <br/> if(getche()=='y') <br/> { <br/> fclose(fp); <br/> fopen(filename,"w"); <br/> } <br/> else <br/> { <br/> fclose(fp); <br/> fopen(filename,"a"); <br/> } <br/> } <br/> fclose(fp); <br/> do <br/> { <br/> insert(filename); <br/> printf("DO U WANT TO CONTINUE:y/n"); <br/> }while(getche()=='y'); <br/> } <br/> void insert(char filename[20]) <br/> { <br/> FILE *fp; <br/> char cl[10]; <br/> int i=0,r; <br/> stud st,st1; <br/> fp=fopen(filename,"r"); <br/> while(1) <br/> { <br/> printf("\nENTER ROLL NO:"); <br/> scanf("%d",&st.roll); <br/> if(st.roll<0&&st.roll>60) <br/> printf("\nINVALID ROLL NO"); <br/> else <br/> break; <br/> } <br/> while(1) <br/> { <br/> printf("\nENTER CLASS:fe/se/te/be only"); <br/> scanf("%s",st.clas); <br/> if(strcmp(st.clas,"fe")!=0&&strcmp(st.clas,"se")!=0&&strcmp(st.clas,"te")!=0&&strcmp(st.clas,"be")!=0) <br/> printf("\nINVALID CLASS"); <br/> else <br/> break; <br/> } <br/> if(fp==NULL) <br/> { <br/> printf("\nTHIS IS FIRST ENTRY IN THIS FILE"); <br/> } <br/> else <br/> while(!feof(fp)) <br/> { <br/> fscanf(fp,"%d%d%d%s%s%s",&st1.roll,&st1.mark,&st1.add.hno,st1.add.city,st1.name,st1.clas); <br/> if(st.roll==st1.roll&&(strcmp(st.clas,st1.clas))==0) <br/> { <br/> printf("\nALREADY PRESENT"); <br/> getch(); <br/> i++; <br/> break; <br/> } <br/> } <br/> fclose(fp); <br/> fp=fopen(filename,"a"); <br/> if(i==0) <br/> { <br/> st=alloc(st); <br/> fprintf(fp,"\n%d\n%d\n%d\n%s\n%s\n%s",st.roll,st.mark,st.add.hno,st.add.city,st.name,st.clas); <br/> } <br/> fclose(fp); <br/> } <br/> void display() <br/> { <br/> FILE *fp; <br/> char filename[20]; <br/> int i=0; <br/> stud st; <br/> printf("\nENTER FILENAME:"); <br/> flushall(); <br/> gets(filename); <br/> fp=fopen(filename,"r"); <br/> clrscr(); <br/> if(fp==NULL) <br/> printf("\nFILE NOT FOUND"); <br/> else <br/> while(!feof(fp)) <br/> { <br/> fscanf(fp,"%d%d%d%s%s%s",&st.roll,&st.mark,&st.add.hno,st.add.city,st.name,st.clas); <br/> printf("\nROLL NO:%d",st.roll); <br/> printf("\nMARKS:%d",st.mark); <br/> printf("\nHOUSE NO:%d",st.add.hno); <br/> printf("\nCITY:%s",st.add.city); <br/> printf("\nNAME:%s",st.name); <br/> printf("\nCLASS:%s",st.clas); <br/> i++; <br/> getch(); <br/> if(i%2==0) <br/> clrscr(); <br/> } <br/> fclose(fp); <br/> } <br/> void searchnr(char filename[]) <br/> { <br/> FILE *fp; <br/> char nam[10]; <br/> int r,i=0; <br/> stud st; <br/> fp=fopen(filename,"r"); <br/> if(fp==NULL) <br/> printf("\nFILE NOT FOUND"); <br/> else <br/> { <br/> printf("\nENTER ROLL NO:"); <br/> scanf("%d",&r); <br/> printf("\nENTER NAME:"); <br/> scanf("%s",nam); <br/> while(!feof(fp)) <br/> { <br/> fscanf(fp,"%d%d%d%s%s%s",&st.roll,&st.mark,&st.add.hno,st.add.city,st.name,st.clas); <br/> if(st.roll==r&&strcmp(st.name,nam)==0) <br/> { <br/> i=1; <br/> printf("\nROLL NO:%d",st.roll); <br/> printf("\nMARKS:%d",st.mark); <br/> printf("\nHOUSE NO:%d",st.add.hno); <br/> printf("\nCITY:%s",st.add.city); <br/> printf("\nNAME:%s",st.name); <br/> printf("\nCLASS:%s",st.clas); <br/> getch(); <br/> } <br/> } <br/> } <br/> if(i==0) <br/> printf("\nNOT FOUND"); <br/> fclose(fp); <br/> getch(); <br/> } <br/> void searchcr(char filename[20]) <br/> { <br/> FILE *fp; <br/> char cl[10]; <br/> int r,i=0; <br/> stud st; <br/> fp=fopen(filename,"r"); <br/> if(fp==NULL) <br/> printf("\nFILE NOT FOUND"); <br/> else <br/> { <br/> printf("\nENTER ROLL NO:"); <br/> scanf("%d",&r); <br/> printf("\nENTER CLASS:"); <br/> scanf("%s",cl); <br/> while(!feof(fp)) <br/> { <br/> fscanf(fp,"%d%d%d%s%s%s",&st.roll,&st.mark,&st.add.hno,st.add.city,st.name,st.clas); <br/> if(st.roll==r&&strcmp(st.clas,cl)==0) <br/> { <br/> i=1; <br/> printf("\nROLL NO:%d",st.roll); <br/> printf("\nMARKS:%d",st.mark); <br/> printf("\nHOUSE NO:%d",st.add.hno); <br/> printf("\nCITY:%s",st.add.city); <br/> printf("\nNAME:%s",st.name); <br/> printf("\nCLASS:%s",st.name); <br/> getch(); <br/> break; <br/> } <br/> } <br/> } <br/> if(i==0) <br/> printf("\nNOT FOUND"); <br/> fclose(fp); <br/> getch(); <br/> } <br/> void modify() <br/> { <br/> FILE *fp,*fp1; <br/> char filename[20],filename1[20],cl[10]; <br/> int r,i=0,rol,ch; <br/> stud st; <br/> printf("\nENTER FILENAME:"); <br/> flushall(); <br/> gets(filename); <br/> fp=fopen(filename,"r"); <br/> strcpy(filename1,"t"); <br/> strcat(filename1,filename); <br/> fp1=fopen(filename1,"w"); <br/> if(fp==NULL) <br/> printf("\nFILE NOT FOUND"); <br/> else <br/> { <br/> printf("\nENTER ROLL NO:"); <br/> scanf("%d",&rol); <br/> printf("\nCLASS:"); <br/> scanf("%s",cl); <br/> while(!feof(fp)) <br/> { <br/> fscanf(fp,"%d%d%d%s%s%s",&st.roll,&st.mark,&st.add.hno,st.add.city,st.name,st.clas); <br/> if(st.roll==rol&&strcmp(st.clas,cl)==0) <br/> { <br/> printf("\nOLD DAT IS:\nROLL NO:%d",st.roll); <br/> printf("\nMARKS:%d",st.mark); <br/> printf("\nHOUSE NO:%d",st.add.hno); <br/> printf("\nCITY:%s",st.add.city); <br/> printf("\nNAME:%s",st.name); <br/> printf("\nCLASS:%s",st.clas); <br/> getch(); <br/> do <br/> { <br/> clrscr(); <br/> printf("\nWHICH ENTRY U WANT TO MODIFY\n\t\t1.MARKS\n\t\t2.HOUSE NO\n\t\t3.CITY\n\t\t4 .NAME\n\t\t5.EXIT"); <br/> printf("\nENTER UR CHOICE"); <br/> scanf("%d",&ch); <br/> switch(ch) <br/> { <br/> case 1: <br/> while(1) <br/> { <br/> printf("\nENTER NEW MARKS:"); <br/> scanf("%d",&st.mark); <br/> if(st.mark<0&&st.mark>100) <br/> printf("\nINVALID MARKS"); <br/> else <br/> break; <br/> getch(); <br/> } <br/> break; <br/> case 2: <br/> while(1) <br/> { <br/> printf("\nENTER NEW HNO:"); <br/> scanf("%d",&st.add.hno); <br/> if(st.add.hno<0&&st.add.hno>32000) <br/> printf("\nINVALID h.NO"); <br/> else <br/> break; <br/> getch(); <br/> } <br/> break; <br/> case 3: <br/> printf("\nENTER CITY:"); <br/> scanf("%s",st.add.city); <br/> break; <br/> case 4: <br/> printf("\nENTER NAME:"); <br/> scanf("%s",st.name); <br/> break; <br/> case 5: <br/> break; <br/> } <br/> }while(ch!=5); <br/> i=1; <br/> fprintf(fp1,"\n%d\n%d\n%d\n%s\n%s\n%s",st.roll,st.mark,st.add.hno,st.add.city,st.name,st.clas); <br/> break; <br/> } <br/> else <br/> fprintf(fp1,"\n%d\n%d\n%d\n%s\n%s\n%s",st.roll,st.mark,st.add.hno,st.add.city,st.name,st.clas); <br/> } <br/> } <br/> while(!feof(fp)) <br/> { <br/> fscanf(fp,"%d%d%d%s%s%s",&st.roll,&st.mark,&st.add.hno,st.add.city,st.name,st.clas); <br/> fprintf(fp1,"\n%d\n%d\n%d\n%s\n%s\n%s",st.roll,st.mark,st.add.hno,st.add.city,st.name,st.clas); <br/> } <br/> fclose(fp); <br/> fclose(fp1); <br/> if(i==0) <br/> { <br/> printf("\nNOT FOUND"); <br/> remove(filename1); <br/> } <br/> else <br/> { <br/> remove(filename); <br/> rename(filename1,filename); <br/> } <br/> getch(); <br/> } <br/> void delet() <br/> { <br/> FILE *fp,*fp1; <br/> char filename[20],cl[10],filename1[20]; <br/> int r,i=0; <br/> stud st; <br/> printf("\nENTER FILENAME:"); <br/> flushall(); <br/> gets(filename); <br/> fp=fopen(filename,"r"); <br/> strcpy(filename1,"t"); <br/> strcat(filename1,filename); <br/> fp1=fopen(filename1,"w"); <br/> if(fp==NULL) <br/> printf("\nFILE NOT FOUND"); <br/> else <br/> { <br/> printf("\nENTER ROLL NO:"); <br/> scanf("%d",&r); <br/> printf("\nENTER CLASS:"); <br/> scanf("%s",cl); <br/> while(!feof(fp)) <br/> { <br/> fscanf(fp,"%d%d%d%s%s%s",&st.roll,&st.mark,&st.add.hno,st.add.city,st.name,st.clas); <br/> if(st.roll==r&&strcmp(st.clas,cl)==0) <br/> { <br/> i=1; <br/> break; <br/> } <br/> else <br/> fprintf(fp1,"\n%d\n%d\n%d\n%s\n%s\n%s",st.roll,st.mark,st.add.hno,st.add.city,st.name,st.clas); <br/> } <br/> } <br/> while(!feof(fp)) <br/> { <br/> fscanf(fp,"%d%d%d%s%s%s",&st.roll,&st.mark,&st.add.hno,st.add.city,st.name,st.clas); <br/> fprintf(fp1,"\n%d\n%d\n%d\n%s\n%s\n%s",st.roll,st.mark,st.add.hno,st.add.city,st.name,st.clas); <br/> } <br/> fclose(fp); <br/> fclose(fp1); <br/> if(i==0) <br/> { <br/> printf("\nNOT FOUND"); <br/> remove("filename1"); <br/> } <br/> else <br/> { <br/> remove(filename); <br/> rename(filename1,filename); <br/> printf("DATA IS DELETED"); <br/> } <br/> getch(); <br/> } <br/> stud alloc(stud st) <br/> { <br/> while(1) <br/> { <br/> printf("\nENTER MARKS:"); <br/> scanf("%d",&st.mark); <br/> if(st.mark<0&&st.mark>100) <br/> printf("\nINVALID ROLL NO"); <br/> else <br/> break; <br/> } <br/> while(1) <br/> { <br/> printf("\nENTER HNO:"); <br/> scanf("%d",&st.add.hno); <br/> if(st.add.hno<0&&st.add.hno>32000) <br/> printf("\nINVALID ROLL NO"); <br/> else <br/> break; <br/> } <br/> printf("\nENTER CITY:"); <br/> scanf("%s",st.add.city); <br/> printf("\nENTER NAME:"); <br/> scanf("%s",st.name); <br/> getch(); <br/> return st; <br/> } |
Source projectgeek.com