Code
#include<stdio.h>
#include<conio.h>
struct student
{
int rollno;
char name[50];
int p_marks,c_marks,m_marks,e_marks,cs_marks;
float per;
char grade;
int std;
} st;
FILE *fptr;
void write_student()
{
fptr=fopen("student.dat","ab");
printf("\nPlease Enter The New Details of student \n");
printf("\nEnter The roll number of student ");
scanf("%d",&st.rollno);
fflush(stdin);
printf("\n\nEnter The Name of student ");
gets(st.name);
printf("\nEnter The marks in MAT121 out of 100 : ");
scanf("%d",&st.p_marks);
printf("\nEnter The marks in CSE122 out of 100 : ");
scanf("%d",&st.c_marks);
printf("\nEnter The marks in CSE123 out of 100 : ");
scanf("%d",&st.m_marks);
printf("\nEnter The marks in PHY123 out of 100 : ");
scanf("%d",&st.e_marks);
printf("\nEnter The marks in PHY124 out of 100 : ");
scanf("%d",&st.cs_marks);
st.per=(st.p_marks+st.c_marks+st.m_marks+st.e_marks+st.cs_marks)/5.0;
if(st.per>=80)
st.grade='A';
else if(st.per>=60 &&st.per<=79)
st.grade='B';
else if(st.per>=40 &&st.per<=59)
st.grade='C';
else if(st.per>=0 &&st.per<=39)
st.grade='F';
fwrite(&st,sizeof(st),1,fptr);
fclose(fptr);
printf("\n\nStudent Record Has Been Created ");
getch();
}
void display_all()
{
printf("\n\n\n\t\tDISPLAY ALL RECORD !!!\n\n");
fptr=fopen("student.dat","rb");
while((fread(&st,sizeof(st),1,fptr))>0)
{
printf("\nRoll Number of Student : %d",st.rollno);
printf("\nName of student : %s",st.name);
printf("\nMarks in MAT121 : %d",st.p_marks);
printf("\nMarks in CSE122 : %d",st.c_marks);
printf("\nMarks in CSE123 : %d",st.m_marks);
printf("\nMarks in PHY123 : %d",st.e_marks);
printf("\nMarks in PHY124 : %d",st.cs_marks);
printf("\nPercentage of student is : %.2f",st.per);
printf("\nGrade of student is : %c",st.grade);
printf("\n\n====================================\n");
getch();
}
fclose(fptr);
getch();
}
void display_sp(int n)
{
int flag=0;
fptr=fopen("student.dat","rb");
while((fread(&st,sizeof(st),1,fptr))>0)
{
if(st.rollno==n)
{
printf("\nRoll number of student : %d",st.rollno);
printf("\nName of student : %s",st.name);
printf("\nMarks in MAT121 : %d",st.p_marks);
printf("\nMarks in CSE122 : %d",st.c_marks);
printf("\nMarks in CSE123 : %d",st.m_marks);
printf("\nMarks in PHY123 : %d",st.e_marks);
printf("\nMarks in PHY124 : %d",st.cs_marks);
printf("\nPercentage of student is : %.2f",st.per);
printf("\nGrade of student is : %c",st.grade);
flag=1;
}
fclose(fptr);
if(flag==0)
printf("\n\nrecord not exist");
getch();
}
void modify_student()
{
int no,found=0;
printf("\n\n\tTo Modify ");
printf("\n\n\tPlease Enter The roll number of student");
scanf("%d",&no);
fptr=fopen("student.dat","rb+");
while((fread(&st,sizeof(st),1,fptr))>0 && found==0)
{
if(st.rollno==no)
{
printf("\nRoll number of student : %d",st.rollno);
printf("\nName of student : %s",st.name);
printf("\nMarks in MAT121 : %d",st.p_marks);
printf("\nMarks in CSE122 : %d",st.c_marks);
printf("\nMarks in CSE123 : %d",st.m_marks);
printf("\nMarks in PHY123 : %d",st.e_marks);
printf("\nMarks in PHY124 : %d",st.cs_marks);
printf("\nPercentage of student is : %.2f",st.per);
printf("\nGrade of student is : %c",st.grade);
printf("\nPlease Enter The New Details of student \n");
printf("\nEnter The roll number of student ");
scanf("%d",&st.rollno);
fflush(stdin);
printf("\n\nEnter The Name of student ");
gets(st.name);
printf("\nEnter The marks in MAT121 out of 100 : ");
scanf("%d",&st.p_marks);
printf("\nEnter The marks in CSE122 out of 100 : ");
scanf("%d",&st.c_marks);
printf("\nEnter The marks in CSE123 out of 100 : ");
scanf("%d",&st.m_marks);
printf("\nEnter The marks in PHY123 out of 100 : ");
scanf("%d",&st.e_marks);
printf("\nEnter The marks in PHY124 out of 100 : ");
scanf("%d",&st.cs_marks);
st.per=(st.p_marks+st.c_marks+st.m_marks+st.e_marks+st.cs_marks)/5.0;
if(st.per>=80)
st.grade='A';
else if(st.per>=60 &&st.per<=79)
st.grade='B';
else if(st.per>=40 &&st.per<=59)
st.grade='C';
else if(st.per>=0 &&st.per<=39)
st.grade='F';
fseek(fptr,-(long)sizeof(st),1);
fwrite(&st,sizeof(st),1,fptr);
printf("\n\n\t Record Updated");
found=1;
}
}
fclose(fptr);
if(found==0)
printf("\n\n Record Not Found ");
getch();
}
void delete_student()
{
int no;
FILE *fptr2;
printf("\n\n\n\tDelete Record");
printf("\n\nPlease Enter The roll number of student You Want To Delete");
scanf("%d",&no);
fptr=fopen("student.dat","rb");
fptr2=fopen("Temp.dat","wb");
rewind(fptr);
while((fread(&st,sizeof(st),1,fptr))>0)
{
if(st.rollno!=no)
{
fwrite(&st,sizeof(st),1,fptr2);
}
}
fclose(fptr2);
fclose(fptr);
remove("student.dat");
rename("Temp.dat","student.dat");
printf("\n\n\tRecord Deleted ..");
getch();
}
void class_result()
{
fptr=fopen("student.dat","rb");
if(fptr==NULL)
{
printf("ERROR!!! FILE COULD NOT BE OPEN\n\n\n Go To Entry Menu to create File");
printf("\n\n\n Program is closing ....");
getch();
exit(0);
}
printf("\n\n\t\tALL STUDENTS RESULT \n\n");
printf("====================================================\n");
printf("R.No. Name P C M E CS %age Grade\n");
printf("====================================================\n");
while((fread(&st,sizeof(st),1,fptr))>0)
{
printf("%-6d %-10s %-3d %-3d %-3d %-3d %-3d %-3.2f %-1c\n",st.rollno,st.name,st.p_marks,st.c_marks,st.m_marks,st.e_marks,st.cs_marks,st.per,st.grade);
}
fclose(fptr);
getch();
}
void result()
{
int ans,rno;
char ch;
printf("\n\n\nRESULT MENU");
printf("\n\n\n1. Class Result\n\n2. Individual Student result \n\n3.Back to Main Menu");
printf("\n\n\nEnter Choice (1/2)? ");
scanf("%d",&ans);
switch(ans)
{
case 1 :
class_result();
break;
case 2 :
{
do
{
char ans;
printf("\n\nEnter Roll Number Of Student : ");
scanf("%d",&rno);
display_sp(rno);
printf("\n\nDo you want to See More Result (y/n)?");
fflush(stdin);
scanf("%c",&ans);
}
while(ans=='y'||ans=='Y');
break;
}
case 3:
break;
default:
printf("\a");
}
}
void intro()
{
printf("\t\t----------------------------------------------------------------------------------------\n");
printf("\t\t----------------------------------------------------------------------------------------\n");
printf("\n \t\t\t\t\t\tSubmitted by :\n");
printf("\n \t\t\t\t\t ---------------\n");
printf("\t\t\t\tName: \t\t\t\t\tI'd: \n");
printf("\t\t\t\t----- \t\t\t\t\t----- \n\n");
printf("\t\t\t\t1: Sakibul Islam \t\t\t203-15-3883 \n");
printf("\t\t\t\t2: shahriar \t\t\t201-15-3325 \n");
printf("\t\t\t\t3: Nayeem \t\t\t203-15-3861 \n ");
printf("\t\t\t\t4: M.Mukit mosfiq\t\t\t203-15-3884 \n\n\n");
printf("\t\t\t\t5: Mahmudul \t\t\t201-15-3354 \n\n\n");
printf("\t\t----------------------------------------------------------------------------------------\n");
printf("\t\t----------------------------------------------------------------------------------------\n");
getch();
}
void entry_menu()
{
char ch2;
printf("\n\n\n\tENTRY MENU");
printf("\n\n\t1.CREATE STUDENT RECORD");
printf("\n\n\t2.DISPLAY ALL STUDENTS RECORDS");
printf("\n\n\t3.SEARCH Individual STUDENT result ");
printf("\n\n\t4.MODIFY STUDENT RECORD");
printf("\n\n\t5.DELETE STUDENT RECORD");
printf("\n\n\t6.BACK TO MAIN MENU");
printf("\n\n\tPlease Enter Your Choice (1-6) ");
ch2=getche();
switch(ch2)
{
case '1':
write_student();
break;
case '2':
display_all();
break;
case '3':
{
int num;
printf("\n\n\tPlease Enter The roll number ");
scanf("%d",&num);
display_sp(num);
}
break;
case '4':
modify_student();
break;
case '5':
delete_student();
break;
case '6':
break;
default:
printf("\a");
entry_menu();
}
}
void main()
{
char ch;
intro();
do
{
printf("\n\n\n\tMAIN MENU");
printf("\n\n\t01. RESULT MENU");
printf("\n\n\t02. ENTRY/EDIT MENU");
printf("\n\n\t03. EXIT");
printf("\n\n\tPlease Select Your Option (1-3) ");
ch=getche();
switch(ch)
{
case '1':
result();
break;
case '2':
entry_menu();
break;
case '3':
exit(0);
default :
printf("\a");
}
}
while(ch!='3');
}