Student Managemet System || C Project || Cool Programming Projects

 

            


source code


#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>

void menu(void);
void add_student_data(void);
void remove_student_data(void);
void update_student_data(void);
void view_record(void);
void functions(void);
void clear_record(void);

struct student
{
    char name[20];
    int id;
    char branch[20];
};
struct student s;

int choice;
void menu()
{
    system("cls");
    Sleep(100);
    system("color 0b");
    printf("\n\t---Student Management System---\n\n");
    printf("1. View record\n");
    printf("2. Add student data\n");
    printf("3. Remove student data\n");
    printf("4. Update student data\n");
    printf("5. Clear record\n");
    printf("6. Exit\n\n");

    printf("Enter your choice  : ");
    scanf("%d", &choice);
    functions();
}

void functions(void)
{
    switch (choice)
    {
    case 1:
        system("cls");
        view_record();
        break;
    case 2:
        system("cls");
        add_student_data();
        break;
    case 3:
        system("cls");
        remove_student_data();
        break;
    case 4:
        system("cls");
        update_student_data();
        break;
    case 5:
        system("cls");
        clear_record();
        break;
    case 6:
        system("cls");
        system("color 0f");
        exit(0);

    default:
        printf("\n\tInvalid choice...");
    }

    printf("\n\nPress any key to continue...");
    getch();
    menu();
}

void add_student_data(void)
{
    FILE *ptr;
    ptr = fopen("Student_record.bin", "ab");
    if (ptr == NULL)
    {
        printf("\n\tERROR 404...\n");
        return;
    }
    printf("\n\t---Add Student Record---\n\n");
    printf("Name    : ");
    fflush(stdin);
    scanf("%[^\n]s", s.name);
    printf("Id      : ");
    fflush(stdin);
    scanf("%d", &s.id);
    printf("Branch  : ");
    fflush(stdin);
    scanf("%s", s.branch);

    fwrite(&s, sizeof(s), 1, ptr);
    fclose(ptr);
}

void view_record(void)
{
    FILE *ptr;
    ptr = fopen("Student_record.bin", "rb");
    int found = 0;
    if (ptr == NULL)
    {
        printf("\n\tERROR 404...\n");
        return;
    }
    printf("\n\t---View Record---\n\n");
    while (fread(&s, sizeof(s), 1, ptr) == 1)
    {
        printf("Name    : %s\nId      : %d\nBranch  : %s\n-----------------------\n", s.name, s.id, s.branch);
        found = 1;
    }
    if (found == 0)
    {
        printf("no record found...");
    }

    fclose(ptr);
}

void remove_student_data(void)
{
    FILE *ptr1;
    FILE *ptr2;
    ptr1 = fopen("Student_record.bin", "rb");
    ptr2 = fopen("temp.bin", "wb");
    int id;
    int found = 0;

    if (ptr1 == NULL || ptr2 == NULL)
    {
        printf("\n\tERROR 404...\n");
        return;
    }

    printf("\n\t---Remove Student Data---\n\n");
    printf("Enter Student ID  : ");
    scanf("%d", &id);
    while (fread(&s, sizeof(s), 1, ptr1) == 1)
    {
        if (s.id == id)
        {
            found = 1;
        }
        else
        {
            fwrite(&s, sizeof(s), 1, ptr2);
        }
    }
    fclose(ptr1);
    fclose(ptr2);
    if (found == 0)
    {
        printf("\nSorry record not found :( ");
        return;
    }

    ptr1 = fopen("Student_record.bin", "wb");
    ptr2 = fopen("temp.bin", "rb");
    while (fread(&s, sizeof(s), 1, ptr2) == 1)
    {
        fwrite(&s, sizeof(s), 1, ptr1);
    }

    fclose(ptr1);
    fclose(ptr2);
    ptr2 = fopen("temp.bin", "wb");
    fclose(ptr2);
    printf("\nRecord is successfully deleted :) \n");
}

void update_student_data(void)
{

    FILE *ptr;
    ptr = fopen("Student_record.bin", "rb+");
    int found = 0;
    int id;
    if (ptr == NULL)
    {
        printf("\n\tERROR 404...\n");
        return;
    }
    printf("\n\t---Update Student Record---\n\n");
    printf("Enter Student ID  : ");
    scanf("%d", &id);
    while (fread(&s, sizeof(s), 1, ptr) == 1)
    {
        if (s.id == id)
        {
            found = 1;
            break;
        }
    }
    if (found == 0)
    {
        printf("\nSorry record not found :( ");
        return;
    }
    fseek(ptr, -(sizeof(s)), SEEK_CUR);

    printf("\n\tEnter new details\n\n");
    printf("Name    : ");
    fflush(stdin);
    scanf("%[^\n]s", s.name);
    printf("Id      : ");
    fflush(stdin);
    scanf("%d", &s.id);
    printf("Branch  : ");
    fflush(stdin);
    scanf("%s", s.branch);
    fwrite(&s, sizeof(s), 1, ptr);
    fclose(ptr);
    printf("\n  Student details updated successfully..\n");
}
void clear_record(void)
{
    FILE *ptr;
    ptr = fopen("Student_record.bin", "w");
    if (ptr == NULL)
    {
        printf("\n\tERROR 404...\n");
        return;
    }
    printf("\n\t---Clear Record---\n\n");
    fclose(ptr);
    printf("Record deleted successfully...\n");
}
int main(void)
{

    menu();
}

Post a Comment

Previous Post Next Post