A simple program that I wrote to show database development using Binary File in C programming language. I called this application Student Grading Database System in C which enables the user to add, edit, delete, view and quit student grade records it stores the record of the student in the binary file. I am using Dev C++ as my C compiler but the I code can also run in a typical Borland Turbo C or Turbo C++ compiler in DOS.

I am currently accepting programming work inventory system, enrollment system, accounting system, payroll system, information system, website design and development using WordPress, IT projects, school and application development, programming projects, thesis, and capstone projects, IT consulting work, computer tutorials, and web development work kindly contact me in the following email address for further details.  If you want to advertise on my website kindly contact me also in my email address also. Thank you.

My email address is the following jakerpomperada@gmail.com, jakerpomperada@aol.com, and jakerpomperada@yahoo.com.
My mobile number here in the Philippines is 09173084360.

My telephone number at home here in Bacolod City, Negros Occidental Philippines is  +63 (034) 4335675.


Here in Bacolod City, Negros Occidental I also accepting computer repair, web development using WordPress, Computer Networking and Arduino Project development at a very affordable price.
My personal website is http://www.jakerpomperada.com

My programming website is http://www.jakerpomperada.blogspot.com


I am also a book author you can purchase my books on computer programming and information technology in the following links below.

https://www.mindshaperspublishing.com/
https://www.unlimitedbooksph.com/

Main Menu
Add Record
Update Record
Delete Record
Search Record
View Record

Program Listing

/* grades.c
   Author   : Mr. Jake Rodriguez Pomperada,BSCS,MAED-IT
   Tool     : Dev C++ 5.11
   Date     : April 19, 2019  Friday  5:23 PM
   Website  : www.jakerpomperada.com
   Email    : jake_pomperada@tup.edu.ph and jakerpomperada@gmail.com
   Location : Bacolod City, Negros Occidental
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
main( )
{
	FILE *fp, *ft ;
	char another, choice ;
	struct student
	{
		char stud_id_no[300];
		char name[300];
		char course[300];
		char subject[300];
		float prelim,midterm,endterm,final_grade;
	} ;
	struct student grade;
	char student_id[300];
	long int recsize;
int flag=0;
	fp = fopen ("GRADE_DB.DAT", "rb+" ) ;
	if ( fp == NULL )
	{
		fp = fopen ( "GRADE_DB.DAT", "wb+" ) ;
		if ( fp == NULL )
		{
			puts ( "Cannot open file" ) ;
			exit(0) ;
		}
	}
	recsize = sizeof ( grade ) ;
	while ( 1 )
	{
system("CLS");
printf("\n");
		printf("\n======================================");
		printf("\n");
		printf("\nSTUDENT GRADING DATABASE SYSTEM ");
		printf("\n");
		printf("\n======================================");
		printf("\n\n");
		printf ( "1. INSERT STUDENT RECORD" ) ;
		printf("\n");
		printf ( "2. BROWSE STUDENT RECORD" ) ;
		printf("\n");
		printf ( "3. EDIT STUDENT RECORDS" ) ;
		printf("\n");
		printf ( "4. FIND STUDENT RECORDS" ) ;
		printf("\n");
		printf ( "5. REMOVE STUDENT RECORDS" ) ;
		printf("\n");
		printf ( "6. QUIT PROGRAM" ) ;
		printf("\n\n");
		printf ("SELECT YOUR OPTION :=> " ) ;
		fflush (stdin) ;
		choice = getche() ;
		switch ( choice )
		{
			case '1' :
				fseek ( fp, 0 , SEEK_END ) ;
				another = 'Y' ;
				while ( another == 'Y' )
				{
					system("cls");
					printf("\n\n");
					printf("=== INSERT NEW STUDENT GRADE RECORD ===");
					printf("\n\n");
					printf("Enter Student ID Number : ");
					scanf("%s",&grade.stud_id_no);
					printf("Enter Student Name: ");
					fflush (stdin) ;
					gets(grade.name);
					printf("Enter Course : ");
					fflush (stdin) ;
					gets(grade.course);
					printf("Enter Subject : ");
					fflush (stdin) ;
					gets(grade.subject);
					printf("Enter Prelim Grade: ");
					scanf("%f",&grade.prelim);
					printf("Enter Midtem Grade: ");
					scanf("%f",&grade.midterm);
					printf("Enter Endterm Grade: ");
					scanf("%f",&grade.endterm);
					grade.final_grade = (grade.prelim * 0.30) + (grade.midterm * 0.30) + (grade.endterm * 0.40);
					printf("\n");
					printf("\n Student Final Grade : %2.0f",grade.final_grade);
					fwrite (&grade, recsize, 1, fp ) ;
					printf("\n\n");
					printf ( "\nAdd New Student Record (Y/N) : " ) ;
					fflush (stdin) ;
					another = toupper(getche()) ;
				}
				break ;
			case '2' :
	system("cls");
				rewind ( fp );
				printf("\n\n");
printf("=== VIEW STUDENT GRADE RECORD ===");
printf("\n\n");
		while ( fread ( &grade, recsize, 1, fp ) == 1 )
{
printf("\n");
printf("\n ID Number : %s",grade.stud_id_no);
printf("\n Name: %s",grade.name);
printf("\n Course : %s",grade.course);
printf("\n Subject : %s",grade.subject);
printf("\n Prelim Grade: %2.0f",grade.prelim);
printf("\n Midterm Grade: %2.0f",grade.midterm);
printf("\n Endterm Grade: %2.0f",grade.endterm);
printf("\n");
grade.final_grade = (grade.prelim * 0.30) + (grade.midterm * 0.30) + (grade.endterm * 0.40);
printf("\n Student Final Grade : %2.0f",grade.final_grade);
		 }
printf("\n\n");
system("pause");
				break ;
			case '3' :
			another = 'Y' ;
				while ( another == 'Y' )
				{
				system("cls");
		printf("=== EDIT STUDENT GRADE RECORD ===");
		printf("\n\n");
					printf("Enter Student ID Number : ");
scanf("%s",&student_id);
					rewind ( fp ) ;
					printf("\n");
					while ( fread ( &grade, recsize, 1, fp ) == 1 )
					{
						if ( strcmp ( grade.stud_id_no, student_id) == 0 )
						{
							printf("Enter Student ID Number : ");
fflush (stdin) ;
gets(grade.stud_id_no);
							printf("Enter Student Name : ");
							fflush ( stdin ) ;
							gets(grade.name);
					printf("Enter Course: ");
							fflush ( stdin ) ;
							gets(grade.course);
							printf("Enter Subject : ");
							fflush ( stdin ) ;
							gets(grade.subject);
							printf("Enter Prelim Grade : ");
							scanf("%f",&grade.prelim);
							printf("Enter Midtem Grade : ");
							scanf("%f",&grade.midterm);
							printf("Enter Endterm Grade: ");
							scanf("%f",&grade.endterm);
							printf("\n");
							grade.final_grade = (grade.prelim * 0.20) + (grade.midterm * 0.30) + (grade.endterm * 0.50);
							printf("\n Student Final Grade : %2.0f",grade.final_grade);
							fseek ( fp, - recsize, SEEK_CUR ) ;
							fwrite ( &grade, recsize, 1, fp ) ;
							break ;
						}
					}
			 if (strcmp(grade.stud_id_no,student_id) != 0 )
{
printf("\n\n");
printf("No Student Record in the Database.");
printf("\n");
system("pause");
break;
}
printf("\n\n");
					printf ( "\nEdit Another Student Record (Y/N) : " ) ;
					fflush ( stdin ) ;
					another = toupper(getche());
				}
				break ;
	case '4' :
	rewind ( fp ) ;
	another = 'Y' ;
				while ( another == 'Y' )
				{
				system("cls");
		printf("=== Find Student Records ===");
		printf("\n\n");
					printf("Enter Student ID Number : ");
scanf("%s",&student_id);
					printf("\n");
					rewind ( fp ) ;
					while ( fread ( &grade, recsize, 1, fp ) == 1 )
					{
						if ( strcmp (grade.stud_id_no,student_id) == 0 )
						{
printf("\n");
					printf("\n ID Number: %s",grade.stud_id_no);
					printf("\n Name: %s",grade.name);
					printf("\n Course : %s",grade.course);
		printf("\n Subject : %s",grade.subject);
printf("\n Prelim Grade: %2.0f",grade.prelim);
printf("\n Midterm Grade: %2.0f",grade.midterm);
printf("\n Endterm Grade: %2.0f",grade.endterm);
printf("\n");
grade.final_grade = (grade.prelim * 0.30) + (grade.midterm * 0.30) + (grade.endterm * 0.40);
printf("\n Student Final Grade : %2.0f",grade.final_grade);
printf("\n\n");
system("pause");
 break;
						}
}
if (strcmp(grade.stud_id_no,student_id) != 0 )
{
printf("\n\n");
printf("No Student Record found in the Database.");
printf("\n");
system("pause");
break;
}
printf("\n\n");
					printf ( "\n Find Another Student Record (Y/N) : " ) ;
					fflush ( stdin ) ;
					another = toupper(getche());
				}
				break ;
			case '5' :
				another = 'Y' ;
				while ( another == 'Y' )
				{
					system("cls");
					printf("=== REMOVE STUDENT GRADE RECORD ===");
					printf("\n\n");
					printf("Enter Student ID Number : ");
					scanf("%s",&student_id);
					printf("\n");
					ft = fopen ( "TEMP.DAT", "wb" ) ;
					rewind ( fp ) ;
					while ( fread ( &grade, recsize, 1, fp ) == 1 )
					{
						if ( strcmp (grade.stud_id_no, student_id) != 0 )
							fwrite ( &grade, recsize, 1, ft ) ;
							else
							flag=1;
					}
					fclose ( fp ) ;
					fclose ( ft ) ;
					remove ( "GRADE_DB.DAT" ) ;
					rename ( "TEMP.DAT", "GRADE_DB.DAT" ) ;
				fp = fopen ( "GRADE_DB.DAT", "rb+" ) ;
 if(flag==1) {
printf("\n\n");
printf("Record Successfully Deleted From the Database.");
 printf("\n");
system("pause");
}
					else if (flag!=1) {
printf("\n\n");
printf("Record Not Found in the Database.");
printf("\n");
system("pause");
}
printf("\n\n");
					printf( "Remove Another Student Record (Y/N) : " ) ;
					fflush (stdin) ;
					another = toupper(getche());
				}
				break ;
			case '6' :
				fclose ( fp ) ;
				printf("\n\n");
				printf("END OF PROGRAM");
				printf("\n\n");
				system("PAUSE");
				exit(0);
		}
	}
}

Leave a Reply

Your email address will not be published. Required fields are marked *