Currect Set : Set 1
Set 1 Set 2
Database Handling / Record handling
Question:1
Write a C program to maintain student details like rollno, name and age. Using fprintf() and fscanf() functions.
Options:
- Add a record
- Display all the records
- Search a record by roll no
- Search a record name name
- Delete a record by roll no
- Modification of record
#include<stdio.h> #include<conio.h> #include<string.h> void main() { FILE *fp,*tfp; int roll,age,op=0,tr,z=0; char name[20],tn[20]; while(op!=7) { clrscr(); printf("main Menu \n"); printf("1. Add a record \n"); printf("2. Display all the records\n"); printf("3. Search a record by roll number \n"); printf("4. search by name \n"); printf("5. delete a record \n"); printf("6. modify a record\n"); printf("7. Exit \n"); printf("Enter your choice "); scanf("%d",&op); switch(op) { case 1: fp=fopen("stud.dat","r"); if (fp==NULL) { printf("File is not present, to be created "); fp=fopen("stud.dat","w"); } else { fclose(fp); fp=fopen("stud.dat","a"); } printf("Enter the roll number "); scanf("%d",&roll); printf("Enter the name "); fflush(stdin); scanf("%s",name); strupr(name); printf("Enter the age "); scanf("%d",&age); fprintf(fp,"%d %s %d\n",roll,name,age); fclose(fp); break; case 2: fp=fopen("stud.dat","r"); if (fp==NULL) { printf("Unable to open the file \n"); } else { printf("roll \t name \t age \n"); while((fscanf(fp,"%d %s %d",&roll,name,&age))!=EOF) { printf("%d \t %s \t %d\n",roll,name,age); } } fclose(fp); break; case 3: z=0; printf("Enter the roll number of the record to search "); scanf("%d",&tr); fp=fopen("stud.dat","r"); if (fp==NULL) { printf("Unable to open the file \n"); break; } printf("roll \t name \t age \n"); while((fscanf(fp,"%d %s %d",&roll,name,&age))!=EOF) { if (tr==roll) { z=1; printf("%d \t %s \t %d\n",roll,name,age); //break; } } fclose(fp); if (z==0) printf("Record is not present\n"); break; case 4: z=0; printf("Enter the name to search "); scanf("%s",tn); strupr(tn); fp=fopen("stud.dat","r"); if (fp==NULL) { printf("Unable to open the file \n"); break; } printf("roll \t name \t age \n"); while((fscanf(fp,"%d %s %d",&roll,name,&age))!=EOF) { if (strcmp(tn,name)==0) { z=1; printf("%d \t %s \t %d\n",roll,name,age); } } fclose(fp); if (z==0) printf("Record is not present\n"); break; case 5: z=0; printf("Enter the roll number of the record to delete "); scanf("%d",&tr); fp=fopen("stud.dat","r"); tfp=fopen("temp","w"); if (fp==NULL) { printf("Unable to open the file \n"); break; } printf("roll \t name \t age \n"); while((fscanf(fp,"%d %s %d",&roll,name,&age))!=EOF) { if (tr==roll) { z=1; printf("%d \t %s \t %d\n",roll,name,age); } else fprintf(tfp,"%d %s %d\n",roll,name,age); } fclose(fp); fclose(tfp); if (z==0) printf("Record is not present\n"); else { remove("stud.dat"); rename("temp","stud.dat"); } break; case 6: z=0; printf("Enter the roll number of the record to modify "); scanf("%d",&tr); fp=fopen("stud.dat","r"); tfp=fopen("temp","w"); if (fp==NULL) { printf("Unable to open the file \n"); break; } printf("roll \t name \t age \n"); while((fscanf(fp,"%d %s %d",&roll,name,&age))!=EOF) { if (tr==roll) { z=1; printf("\n Old details are \n"); printf("%d \t %s \t %d\n",roll,name,age); printf("Enter New details\n"); printf("Enter the roll number "); scanf("%d",&roll); printf("Enter the name "); fflush(stdin); scanf("%s",name); strupr(name); printf("Enter the age "); scanf("%d",&age); } fprintf(tfp,"%d %s %d\n",roll,name,age); } fclose(fp); fclose(tfp); if (z==0) printf("Record is not present\n"); else { remove("stud.dat"); rename("temp","stud.dat"); } break; case 7: printf("End of the program\n"); break; default: printf("Invalid option \n"); break; } getch(); } }