#include<stdio.h>
// Md Mahmudur Rahman, ID-21,GPA Calculator//
//#include<string.h>
//#include<stdlib.h>
struct learner
{
int mrk_bang,mrk_eng,mrk_math;
char fname[100];
char lname[50];
char fullname[100];
int roll;
char lgBang[5];
char lgEng[5];
char lgMath[5];
}student;
main()
{
int choose_main_option;
printf("1. Add New Student\n");
printf("2. Edit Student Information\n");
printf("3. Search Student\n");
printf("4. Delete Student Record\n");
printf("5. Show Tabulation Sheet\n\n");
printf("Enter Your Option : ");
scanf("%d",&choose_main_option);
switch(choose_main_option)
{
case 1:
addStudent();
break;
case 2:
editStudentInfo();
break;
case 3:
searchStudent();
break;
case 4:
//deleteStudent();
break;
case 5:
showTabulation();
break;
default:
printf("Option Not Found...\n");
}
return 0;
}
void addStudent()
{
FILE *fp;
int choose_menu;
AddAgain://*************
printf("Enter roll : ");
scanf("%d",&student.roll);
printf("Enter first name : ");
scanf("%s",&student.fname);
printf("Enter last name : ");
scanf("%s",&student.lname);
enterBanglaMarksAgain://******************
printf("\nEnter marks of Bangla : ");
scanf("%d",&student.mrk_bang);
if(validNumber(student.mrk_bang)==0)//*************
{
printf("Invalid Number !!!");
goto enterBanglaMarksAgain;
}
enterEnglishMarksAgain://******************
printf("\nEnter marks of English : ");
scanf("%d",&student.mrk_eng);
if(validNumber(student.mrk_eng)==0)//*************
{
printf("Invalid Number !!!");
goto enterEnglishMarksAgain;
}
enterMathMarksAgain://******************
printf("\nEnter marks of Math : ");
scanf("%d",&student.mrk_math);
if(validNumber(student.mrk_math)==0)//*************
{
printf("Invalid Number !!!");
goto enterMathMarksAgain;
}
fp=fopen("std_record.txt","a+");
fprintf(fp,"\n%d\t%s\t\t%s\t\t%d\t%d\t%d",student.roll,student.fname,student.lname,student.mrk_bang,student.mrk_eng,student.mrk_math);
fclose(fp);
printf("\nData successfully added.\n");
printf("\nOption 1 : Add Another Student.\n");//**********
printf("Option 2 : Go to Main Menu.\n");//*********
printf("Option 3 : Exit Application.\n");//**********
printf("\nEnter Option:\n");
scanf("%d",&choose_menu);
if (choose_menu == 1)
{
goto AddAgain;
}
else if(choose_menu == 2)
{
main();
}
else
{
printf("Exiting.....");
}
}
float gpBang(int mrkBang)
{
if(mrkBang>=80 && mrkBang<=100)
{
strcpy(student.lgBang,"A+");
return 5;
}
else if(mrkBang>=70 && mrkBang<=79)
{
strcpy(student.lgBang,"A");
return 4;
}
else if(mrkBang>=60 && mrkBang<=69)
{
strcpy(student.lgBang,"A-");
return 3.5;
}
else if(mrkBang>=50 && mrkBang<=59)
{
strcpy(student.lgBang,"B");
return 3;
}
else if(mrkBang>=40 && mrkBang<=49)
{
strcpy(student.lgBang,"C");
return 2;
}
else if(mrkBang>=33 && mrkBang<=39)
{
strcpy(student.lgBang,"D");
return 1;
}
else
{
strcpy(student.lgBang,"F");
return 0;
}
}
float gpEng(int mrkEng)
{
if(mrkEng>=80 && mrkEng<=100)
{
strcpy(student.lgEng,"A+");
return 5;
}
else if(mrkEng>=70 && mrkEng<=79)
{
strcpy(student.lgEng,"A");
return 4;
}
else if(mrkEng>=60 && mrkEng<=69)
{
strcpy(student.lgEng,"A-");
return 3.5;
}
else if(mrkEng>=50 && mrkEng<=59)
{
strcpy(student.lgEng,"B");
return 3;
}
else if(mrkEng>=40 && mrkEng<=49)
{
strcpy(student.lgEng,"C");
return 2;
}
else if(mrkEng>=33 && mrkEng<=39)
{
strcpy(student.lgEng,"D");
return 1;
}
else
{
strcpy(student.lgEng,"F");
return 0;
}
}
float gpMath(int mrkMath)
{
if(mrkMath>=80 && mrkMath<=100)
{
strcpy(student.lgMath,"A+");
return 5;
}
else if(mrkMath>=70 && mrkMath<=79)
{
strcpy(student.lgMath,"A");
return 4;
}
else if(mrkMath>=60 && mrkMath<=69)
{
strcpy(student.lgMath,"A-");
return 3.5;
}
else if(mrkMath>=50 && mrkMath<=59)
{
strcpy(student.lgMath,"B");
return 3;
}
else if(mrkMath>=40 && mrkMath<=49)
{
strcpy(student.lgMath,"C");
return 2;
}
else if(mrkMath>=33 && mrkMath<=39)
{
strcpy(student.lgMath,"D");
return 1;
}
else
{
strcpy(student.lgMath,"F");
return 0;
}
}
float Cgpa()
{
float c_gpa;
c_gpa=(gpBang(student.mrk_bang)+gpEng(student.mrk_eng)+gpMath(student.mrk_math))/3;
return c_gpa;
}
void searchStudent()
{
FILE*fp;
int choose_menu;
int search_roll,counter = 0,count_record=0;
float CGPA;
searchAgain://**************************
printf("\nSearch Student Information\n\n");
printf("Search by Roll:\n");
scanf("%d",&search_roll);
if((fp=fopen("std_record.txt","r+"))==NULL)
{
printf("The File is Empty!\n\n");
}
else
{
while(!feof(fp)&&counter==0)
{
fscanf(fp,"%d\t%s\t\t%s\t\t%d\t%d\t%d",&student.roll,student.fname,student.lname,&student.mrk_bang,&student.mrk_eng,&student.mrk_math);
if(student.roll==search_roll)
{
counter++;
}
count_record++;//***********
}
}
if(counter == 1)
{
printf("%d Record Found.\n",count_record);//************
printf("Roll\tName\t\tBangla(LG)\tEnglish(LG)\tMath(LG)\tCGPA\n");
strcat(student.fname," ");
strcat(student.fname,student.lname);
strcpy(student.fullname,student.fname);
printf("\n%d\t%s\t%s\t\t%s\t\t%s\t\t%0.2f\n",student.roll,student.fullname,student.lgBang,student.lgEng,student.lgMath,Cgpa());
printf("\nOption 1 : Search Again.\n");
printf("\nOption 2 : Go To Main Menu.\n");
printf("\nOption 3 : Exit Application.\n");
printf("\nEnter Option:\n");
scanf("%d",&choose_menu);
if (choose_menu == 1)//****************
{
goto searchAgain;//******************
}
else if (choose_menu == 2)//**********
{
main();//**********
}
else
{
printf("Exiting.....\n");//*************
}
}
else
{
printf("Roll Not Found...\n");
}
}
void editStudentInfo()
{
FILE*fp;
char ch;
int choose_menu;
int search_roll,counter = 0,count_line=0;
editAgain:
printf("\nEdit Student Information\n\n");
printf("Search by Roll : ");
scanf("%d",&search_roll);
if((fp=fopen("std_record.txt","r"))==NULL)
{
printf("The File is Empty!\n\n");
}
else
{
while(!feof(fp)&&counter==0)
{
fscanf(fp,"\n\n%d\t%s\t\t%s\t\t%d\t%d\t%d",&student.roll,student.fname,student.lname,&student.mrk_bang,&student.mrk_eng,&student.mrk_math);
if(student.roll==search_roll)
{
counter++;
}
//count_line++;
}
}
if(counter == 1)
{
printf("\n\tRecord Found : Roll %d\n\n" ,student.roll);
printf("Roll\tFirstName\tLastName\tMarkBangla\tMarkEnglish\tMarkMath\n");
printf("\n%d\t%s\t%s\t\t%d\t\t%d\t\t%d\n",student.roll,student.fname,student.lname,student.mrk_bang,student.mrk_eng,student.mrk_math);
printf("\n Do you want to Edit Student Information(y/n)?\n");
scanf("%s", &ch);
if(ch == 'y')
{
printf("Edit First Name?\n");
scanf("%s",student.fname);
printf("Edit Last Name?\n");
scanf("%s",student.lname);
printf("Edit Marks of Bangla?\n");
scanf("%d",&student.mrk_bang);
printf("Edit Marks of English?\n");
scanf("%d",&student.mrk_eng);
printf("Edit Marks of Math?\n");
scanf("%d",&student.mrk_math);
fp=fopen("std_record.txt","rb+");
//fseek(fp,-sizeof(student), SEEK_CUR);
//fscanf(fp,"\n\n%d\t%s\t\t%s\t\t%d\t%d\t%d",&student.roll,student.fname,student.lname,&student.mrk_bang,&student.mrk_eng,&student.mrk_math);
fprintf(fp,"\n\n%d\t%s\t\t%s\t\t%d\t%d\t%d",student.roll,student.fname,student.lname,student.mrk_bang,student.mrk_eng,student.mrk_math);
fclose(fp);
}
else if('n')
{
printf("Exit...");
}
printf("\nOption 1 : Edit Again.\n");
printf("\nOption 2 : Go To Main Menu.\n");
printf("\nOption 3 : Exit Application.\n");
printf("Enter Option : \n");
scanf("%d",&choose_menu);
if (choose_menu == 1)//****************
{
goto editAgain;//******************
}
else if (choose_menu == 2)//**********
{
main();//**********
}
else
{
printf("Exiting.....\n");//*************
}
}
else
{
printf("Roll Not Found!!!");
}
}
void showTabulation()
{
FILE*fp;
int choose_menu;
int search_roll,counter = 0,count_record=0;//****************
float CGPA;
if((fp=fopen("std_record.txt","r+"))==NULL)
{
printf("The File is Empty!\n\n");
}
else
{
printf("Roll\tName\t\tBangla(LG)\tEnglish(LG)\tMath(LG)\tCGPA\n");
while(!feof(fp)&&counter==0)
{
count_record++;//****************
fscanf(fp,"%d\t%s\t\t%s\t\t%d\t%d\t%d",&student.roll,student.fname,student.lname,&student.mrk_bang,&student.mrk_eng,&student.mrk_math);
strcat(student.fname," ");
strcat(student.fname,student.lname);
strcpy(student.fullname,student.fname);
printf("\n%d\t%s\t%s\t\t%s\t\t%s\t\t%0.2f\n",student.roll,student.fullname,student.lgBang,student.lgEng,student.lgMath,Cgpa());
}
printf("%d Record Found.\n",count_record);//****************
}
printf("\nOption 1 : Go To main menu.\n");
printf("\nOption 2 : Exit Application.\n");
printf("\nEnter Option:\n");
scanf("%d",&choose_menu);
if (choose_menu == 1)
{
main();
}
if(choose_menu != 1 && 2 && 3 && 4)
{
printf("Exiting.....\n");
}
}
int validNumber(int n)//**************
{
if(n>1 && n<=100)
{
return 1;
}
else
{
return 0;
}
}
0 comments:
Post a Comment