#define FILENAME "students.dat"
// Add student
void addStudent() {
struct Student s;
FILE *fp = fopen(FILENAME, "ab");
if(!fp) { printf("Error opening file.\n"); return; }
printf("Enter ID: "); scanf("%d", &s.id);
printf("Enter Name: "); scanf("%s", s.name);
printf("Enter Age: "); scanf("%d", &s.age);
printf("Enter Grade: "); scanf(" %c", &s.grade);
fwrite(&s, sizeof(s), 1, fp);
fclose(fp);
printf("Student added successfully!\n");
}
// Display all students
void displayStudents() {
struct Student s;
FILE *fp = fopen(FILENAME, "rb");
if(!fp) { printf("No records found.\n"); return; }
printf("\nID\tName\tAge\tGrade\n");
while(fread(&s, sizeof(s), 1, fp)) {
printf("%d\t%s\t%d\t%c\n", s.id, s.name, s.age, s.grade);
}
fclose(fp);
}
// Search student by ID
void searchStudent() {
int searchId;
struct Student s;
printf("Enter ID to search: "); scanf("%d", &searchId);
FILE *fp = fopen(FILENAME, "rb");
if(!fp) { printf("No records found.\n"); return; }
int found = 0;
while(fread(&s, sizeof(s), 1, fp)) {
if(s.id == searchId) {
printf("ID: %d\nName: %s\nAge: %d\nGrade: %c\n", s.id, s.name, s.age, s.grade);
found = 1;
break;
}
}
if(!found) printf("Student not found.\n");
fclose(fp);
}
int main() {
int choice;
while(1) {
printf("\n--- Student Management System ---\n");
printf("1. Add Student\n2. Display Students\n3. Search Student\n4. Exit\n");
printf("Enter your choice: "); scanf("%d", &choice);
switch(choice) {
case 1: addStudent(); break;
case 2: displayStudents(); break;
case 3: searchStudent(); break;
case 4: exit(0);
default: printf("Invalid choice!\n");
}
}
return 0;
}