/* Lab program no. 1*/ #include #include #include #include struct student { int usn; char name[20]; int marks1,marks2,marks3; }; typedef struct student STD; /*function to search for USN*/ int search_record(int key_usn,FILE *fp) { STD st; /*while not end of file*/ for(;;) { if((fscanf(fp,"%d%s%d%d%d",&st.usn,st.name,&st.marks1,&st.marks2,&st.marks3))==EOF) break; if(key_usn==st.usn) { printf("USN\tName\tMarks1\tMarks2\tMarks3\n"); printf(" %d\t%s\t%d\t%dt%d",st.usn,st.name,st.marks1,st.marks2,st.marks3); return 1; } } return 0; } void append_record(FILE *fp) { STD st; printf("USN :");scanf("%d",&st.usn); printf("Name :");scanf("%s",st.name); printf("Marks1:");scanf("%d",&st.marks1); printf("Marks2:");scanf("%d",&st.marks2); printf("Marks3:");scanf("%d",&st.marks3); fprintf(fp,"%d %s %d %d %d\n",st.usn,st.name,st.marks1,st.marks2,st.marks3); } void display_record(FILE *fp) { STD st; printf("USN\tName\tMarks1\tMarks2\tMarks3\n"); for(;;) { if((fscanf(fp,"%d%s%d%d%d",&st.usn,st.name,&st.marks1,&st.marks2,&st.marks3))==EOF) break; printf("%d\t%s\t%d\t%d\t%d\n",st.usn,st.name,st.marks1,st.marks2,st.marks3); } } void main() { STD st; char fname[10]; FILE *fp; int key_usn,choice,flag=0; printf("Enter the file name\n"); scanf("%s",fname); for(;;) { printf("1:Insert Record\n2:Search Record\n3:Display Record\n4:Exit"); printf("\nEnter choice:");scanf("%d",&choice); switch(choice) { case 1: fp=fopen(fname,"a+"); if(fp==NULL) { printf("Fopen failed\n"); break; } append_record(fp); fclose(fp); break; case 2: fp=fopen(fname,"r"); if(fp==NULL) { printf("File open failed\n"); break; } printf("Enter USN :"); scanf("%d",&key_usn); flag=search_record(key_usn,fp); if(flag==0) printf("The record is not present"); fclose(fp); break; case 3: fp=fopen(fname,"r"); if(fp==NULL) { printf("File opened failed \n"); break; } display_record(fp); fclose(fp); break; default: exit(0); } } }