VB icon

Student Grading Database System in C

Email
Submitted on: 10/15/2016 3:44:59 AM
By: Jake R. Pomperada  
Level: Beginner
User Rating: By 1 Users
Compatibility: C
Views: 2383
author picture
 
     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 hope you will find my work useful. Thanks a lot. Add me at Facebook my addressis jakerpomperada@gmail.com and jakerpomperada@yahoo.com. My email address are the following jakerpomperada@gmail.com and jakerpomperada@yahoo.com. My mobile number here in the Philippines is 09173084360.

 
code:
Can't Copy and Paste this?
Click here for a copy-and-paste friendly version of this code!
				
//**************************************
// Name: Student Grading Database System in C
// Description: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 hope you will find my work useful. Thanks a lot.
Add me at Facebook my addressis jakerpomperada@gmail.com and jakerpomperada@yahoo.com. 
My email address are the following jakerpomperada@gmail.com and jakerpomperada@yahoo.com. 
My mobile number here in the Philippines is 09173084360.
// By: Jake R. Pomperada
//**************************************

#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);
		}
	}
}


Other 69 submission(s) by this author

 


Report Bad Submission
Use this form to tell us if this entry should be deleted (i.e contains no code, is a virus, etc.).
This submission should be removed because:

Your Vote

What do you think of this code (in the Beginner category)?
(The code with your highest vote will win this month's coding contest!)
Excellent  Good  Average  Below Average  Poor (See voting log ...)
 

Other User Comments


 There are no comments on this submission.
 

Add Your Feedback
Your feedback will be posted below and an email sent to the author. Please remember that the author was kind enough to share this with you, so any criticisms must be stated politely, or they will be deleted. (For feedback not related to this particular code, please click here instead.)
 

To post feedback, first please login.