VB icon

Student Database Grading System in C++

Email
Submitted on: 7/26/2018 3:02:38 PM
By: Jake R. Pomperada  
Level: Beginner
User Rating: Unrated
Compatibility: C++ (general)
Views: 251
author picture
 
     In this article I would like to share with you a database system that I wrote in C++ and my back end is binary file in C++ that has a function to add,edit, view and delete the record of the student. It has also a function to compute the student grades. I am currently accepting programming work, it project, school 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 in my website kindly contact me also in my email address also. Thank you. My email address are the following jakerpomperada@gmail.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.

 
code:
Can't Copy and Paste this?
Click here for a copy-and-paste friendly version of this code!
				
//**************************************
// Name: Student Database Grading System in C++
// Description:In this article I would like to share with you a database system that I wrote in C++ and my back end is binary file in C++ that has a function to add,edit, view and delete the record of the student. It has also a function to compute the student grades. 
I am currently accepting programming work, it project, school 
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 in my website kindly contact me also in my email address also. Thank you.
My email address are the following jakerpomperada@gmail.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.
// By: Jake R. Pomperada
//**************************************

// student.cpp
// Written By Mr. Jake R. Pomperada, BSCS, MAED-IT
// July 26, 2018 Thursday
// Bacolod City, Negros Occidental Philippines
#include <iostream>
#include <iomanip>
#include <cmath>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
 using namespace std;
 
 
int 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");
 setprecision(0);
cout <<"\n";
		cout << "\n============================================";
		cout <<"\n";
		cout <<"\n STUDENT GRADING DATABASE SYSTEM IN C++";
		cout <<"\n";
		cout << " Created By Mr. Jake R. Pomperada, MAED-IT";
		cout <<"\n=============================================";
		cout <<"\n\n";
		cout << "1. INSERT STUDENT RECORD";
		cout <<"\n";
		cout << "2. BROWSE STUDENT RECORD";
		cout <<"\n";
		cout << "3. EDIT STUDENT RECORDS" ;
		cout <<"\n";
		cout << "4. FIND STUDENT RECORDS";
		cout <<"\n";
		cout << "5. REMOVE STUDENT RECORDS";
		cout <<"\n";
		cout << "6. QUIT PROGRAM" ;
		cout <<"\n\n";
		cout <<"SELECT YOUR OPTION :=> ";
		fflush (stdin) ;
		choice = getche() ;
		switch ( choice )
		{
			case '1' :
				fseek ( fp, 0 , SEEK_END ) ;
				another = 'Y' ;
				while ( another == 'Y' )
				{
					system("cls");
					cout <<"\n\n";
					cout << "=== INSERT NEW STUDENT GRADE RECORD ===";
					cout <<"\n\n";
					cout <<"Enter Student ID Number : ";
cin >> grade.stud_id_no;
					cout << "Enter Student Name: ";
					fflush (stdin) ;
					gets(grade.name);
					cout <<"Enter Course : ";
					fflush (stdin) ;
					gets(grade.course);
cout <<"Enter Subject : ";
					fflush (stdin) ;
					gets(grade.subject);
					cout <<"Enter Prelim Grade: ";
					cin >> grade.prelim;
					cout << "Enter Midtem Grade: ";
					cin >> grade.midterm;
					cout << "Enter Endterm Grade: ";
					cin >> grade.endterm;
					grade.final_grade = (grade.prelim * 0.30) + (grade.midterm * 0.30) + (grade.endterm * 0.40);
					cout << "\n";
cout << "\n Student Final Grade : " << round(grade.final_grade);
					fwrite (&grade, recsize, 1, fp ) ;
					cout << "\n\n";
					cout << "\nAdd New Student Record (Y/N) : " ;
					fflush (stdin) ;
					another = toupper(getche()) ;
				}
				break ;
			case '2' :
	system("cls");
				rewind ( fp );
				cout << "\n\n";
cout <<"=== VIEW STUDENT GRADE RECORD ===";
cout <<"\n\n";
		while ( fread ( &grade, recsize, 1, fp ) == 1 )
{
cout <<"\n";
cout <<"\n ID Number: " <<grade.stud_id_no;
cout <<"\n Name : " <<grade.name;
cout <<"\n Course: " <<grade.course;
cout <<"\n Subject : " << grade.subject;
cout <<"\n Prelim Grade : " <<grade.prelim;
cout <<"\n Midterm Grade: " <<grade.midterm;
cout <<"\n Endterm Grade: " <<grade.endterm;
cout <<"\n";
grade.final_grade = (grade.prelim * 0.30) + (grade.midterm * 0.30) + (grade.endterm * 0.40);
cout <<"\n Student Final Grade : " <<round(grade.final_grade);
	 }
 cout <<"\n\n";
 system("pause");
				break ;
			case '3' :
			another = 'Y' ;
				while ( another == 'Y' )
				{
				system("cls");
	 	cout <<"=== EDIT STUDENT GRADE RECORD ===";
		cout <<"\n\n";
	 	cout <<"Enter Student ID Number : ";
cin >> student_id;
			rewind ( fp ) ;
					cout <<"\n";
					while ( fread ( &grade, recsize, 1, fp ) == 1 )
					{
						if ( strcmp ( grade.stud_id_no, student_id) == 0 )
						{
							cout <<"Enter Student ID Number : ";
fflush (stdin) ;
gets(grade.stud_id_no);
							cout <<"Enter Student Name : ";
							fflush ( stdin ) ;
							gets(grade.name);
					cout <<"Enter Course: ";
							fflush ( stdin ) ;
							gets(grade.course);
							cout <<"Enter Subject : ";
							fflush ( stdin ) ;
							gets(grade.subject);
							cout <<"Enter Prelim Grade : ";
							cin >> grade.prelim;
							cout <<"Enter Midtem Grade : ";
							cin >> grade.midterm;
							cout <<"Enter Endterm Grade: ";
							cin >> grade.endterm;
							cout <<"\n";
							grade.final_grade = (grade.prelim * 0.20) + (grade.midterm * 0.30) + (grade.endterm * 0.50);
							cout <<"\n Student Final Grade : " << round(grade.final_grade);
							fseek ( fp, - recsize, SEEK_CUR ) ;
							fwrite ( &grade, recsize, 1, fp ) ;
							break ;
						}
					}
			 if (strcmp(grade.stud_id_no,student_id) != 0 )
 { 
cout <<"\n\n";
cout <<"No Student Record in the Database.";
cout <<"\n";
system("pause");
break;
}
 cout <<"\n\n";
			 cout <<"\nEdit Another Student Record (Y/N) : ";
					fflush ( stdin ) ;
					another = toupper(getche());
				}
				break ;
 	case '4' :
	rewind ( fp ) ;
	another = 'Y' ;
				while ( another == 'Y' )
				{
				system("cls");
		cout <<"=== Find Student Records ===";
		cout <<"\n\n";
			 cout <<"Enter Student ID Number : ";
 cin >>student_id;
					cout <<"\n";
					rewind ( fp ) ;
					while ( fread ( &grade, recsize, 1, fp ) == 1 )
					{
						if ( strcmp (grade.stud_id_no,student_id) == 0 )
						{
cout <<"\n";
					cout <<"\n ID Number : " <<grade.stud_id_no;
					cout <<"\n Name: " << grade.name;
					cout <<"\n Course : " <<grade.course;
	 	cout <<"\n Subject: " <<grade.subject;
cout <<"\n Prelim Grade: " <<grade.prelim;
cout <<"\n Midterm Grade : " <<grade.midterm;
cout <<"\n Endterm Grade : " << grade.endterm;
cout <<"\n";
grade.final_grade = (grade.prelim * 0.30) + (grade.midterm * 0.30) + (grade.endterm * 0.40);
cout <<"\n Student Final Grade : " << round(grade.final_grade);
cout <<"\n\n";
system("pause");
break;
	}
}
 if (strcmp(grade.stud_id_no,student_id) != 0 )
 {
cout <<"\n\n";
cout <<"No Student Record found in the Database.";
cout <<"\n";
system("pause");
break;
}
cout <<"\n\n";
					cout <<"\n Find Another Student Record (Y/N) : " ;
					fflush ( stdin ) ;
					another = toupper(getche());
				}
				break ;
			case '5' :
				another = 'Y' ;
				while ( another == 'Y' )
				{
					system("cls");
cout <<"=== REMOVE STUDENT GRADE RECORD ===";
cout <<"\n\n";
					cout <<"Enter Student ID Number : ";
cin >> student_id;
					cout <<"\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) {
 cout <<"\n\n";
 cout <<"Record Successfully Deleted From the Database.";
 cout <<"\n";
 system("pause");
 }
		else if (flag!=1) {
 cout <<"\n\n";
 cout <<"Record Not Found in the Database.";
 cout <<"\n";
system("pause");
 }
cout <<"\n\n";
					cout << "Remove Another Student Record (Y/N) : " ;
					fflush (stdin) ;
					another = toupper(getche());
				}
				break ;
			case '6' :
				fclose ( fp ) ;
				cout <<"\n\n";
				cout <<"END OF PROGRAM";
				cout <<"\n\n";
				cout << "Thank You Very Much For Using This Software.";
				cout <<"\n\n";
				system("PAUSE");
				exit(0);
		}
	}
}


Other 75 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.