Tuesday, January 31, 2012

Examination management system


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

void main()
{
FILE *fp, *ft;
char another, choice;

struct Exam
{       int r_no;
            char clas[20];
            char name[40];
            char add[40];
            char f_name[40];
            float math;
            float phy;
            float che;
            float comp;
            float avg;
            float avg1;
};
struct Exam f;
long int amount,flag;
long int recsize;
float avg;
int r_no;
char clas[20];
fp=fopen("EXAM.DAT","rb+");
if(fp==NULL)
{
            fp=fopen("EXAM.DAT","wb+");
            if(fp==NULL)
            {
                        puts("Cannot open file");
                        exit(1);
            }
}

recsize = sizeof(f);
while(1)
{
            clrscr();
            gotoxy(30,10);
            printf("1. Student detail");
            gotoxy(30,12);
            printf("2. Display Record");
            gotoxy(30,14);
            printf("3. Topper");
            gotoxy(30,16);
            printf("4. Failer");
            gotoxy(30,18);
            printf("5. Delete Record");
            gotoxy(30,20);
            printf("0.Exit");
            gotoxy(30,22);
            printf("Your choice");
            fflush(stdin);
            choice = getche();
            switch(choice)
            {
                        case '1':
                        fseek(fp,0,SEEK_END);
                        another = 'Y';
                        while((another == 'Y') || (another == 'y'))
                        {
                                    printf("\nEnter Roll_no");
                                    scanf("%d", &f.r_no);
                                    printf("\nEnter Name");
                                    scanf(" %s",f.name);
                                    printf("\nEnter class");
                                    scanf("%s",f.clas);
                                    printf("\nEnter Address");
                                    scanf("%s",f.add);
                                    printf("\nEnter Father name");
                                    scanf("%s",f.f_name);
                                    printf("\nEnter Maths marks ");
                                    scanf("%f", &f.math);
                                    printf("\nEnter phy marks");
                                    scanf("%f",&f.phy);
                                    printf("\nEnter che marks");
                                    scanf("%f",&f.che);
                                    printf("enter computer marks");
                                    scanf("%f",&f.comp);
                                    f.avg=f.math+f.comp+f.phy+f.che;
                                    f.avg1=f.avg/4;
                                    fwrite(&f, recsize, 1, fp);
                                    printf("\nCreate another Student Record(Y/N)");
                                    fflush(stdin);
                                    another = getche();
                        }
                        break;

                        case '2':
                        clrscr();
                        rewind(fp);
                        printf("R no   name  class  Address  Father'Nm  maths    phy    che      comp   Avg");
                        while(fread(&f, recsize, 1, fp) == 1)
                            printf("\n%d\t%s\t%s\t%s\t%s\t%2.2f\t%2.2f\t%2.2f\t%2.2f\t%2.2f", f.r_no,f.name,f.clas, f.add, f.f_name, f.math,f.phy,f.che,f.comp,f.avg1);
                        getch();
                        break;

                        case '3':
                        another='Y';
                        avg=0.0;
                        while(another=='Y')
                        {
                        printf("\nenter the class");
                        scanf("%s",clas);
                                    rewind(fp);
                                    while(fread(&f, recsize, 1, fp)==1)
                                                if((f.avg>=avg)&&(strcmp(f.clas,clas)==0))
                                                {
                                                            avg = f.avg;

                                                }
                                    printf("Student topped information is below");
                                    printf("Name = %s", f.name);
                                    fflush(stdin);
                                    another=getche();
                            }
                            break;
                        case '4':
                        another='Y';
                        avg=33.3;
                        while(another=='Y')
                        {
                                    printf("\nEnter class to check the score");
                                    scanf("%s",clas);
                                    rewind(fp);
                                    //flag=0;
                                    while(fread(&f, recsize, 1, fp)==1)
                                    {
                                                //flag=1;
                                                //printf("\n%f",f.avg1);

                                                if((strcmp(f.clas,clas)==0)&&(f.avg1<=avg))
                                                {
                                                            printf("\n failed",f.r_no);
                                                            printf("\n Students name is%s",f.name);
                                                            printf("\n Father's name is%s",f.f_name);
                                                 }
                                                            //getch();


                                    }
                                    //if(flag==0)
                                    //{
                                      //       printf("Sorry !! Invalid roll number");
                                      //       getch();
                                    //}

                                    fflush(stdin);
                                    another=getche();
                        }
                        break;

                        case '5':
                        another='Y';
                        while(another=='Y')
                        {
                                    printf("\nEnter roll number to delete");
                                    scanf("%d",&r_no);
                                    ft = fopen("TEMP.DAT","wb");
                                    rewind(fp);
                                    while(fread(&f, recsize, 1, fp) == 1)
                                    {
                                                if(f.r_no!=r_no)
                                                            fwrite(&f, recsize, 1, ft);
                                    }
                                    fclose(fp);
                                    fclose(ft);
                                    remove("EXAM.DAT");
                                    rename("TEMP.DAT", "EXAM.DAT");
                                    fp=fopen("EXAM.DAT", "rb+");
                                    printf("Delete another record(Y/N)");
                                    fflush(stdin);
                                    another = getche();
                        }
                        break;

                        case '0':
                        fclose(fp);
                        exit();
            }
}
}

No comments:

Post a Comment