Machine Problem

Create a Student Grading System using a text file which allows the  user to add student record, view student record, edit student record, find student record, remove or delete student record in the text file database.

I am currently accepting programming work, IT projects, school and application development, programming projects, thesis and capstone projects, IT consulting work, computer tutorials, and web development work kindly contact me at 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.

Please subscribe to my channel  https://www.youtube.com/channel/UCOs-lpOoIeJoh6gpJthPoGg

=================================================



Want to support my channel?

GCash Account

Jake Pomperada


09173084360



Paypal

https://paypal.me/jakerpomperada



Patreon

https://www.patreon.com/jakerpomperada



Thank you very much for your support. 

Program Listing
// student.cpp
// Written By Mr. Jake R. Pomperada, BSCS, MAED-IT
// July 26, 2018  Thursday
// Bacolod City, Negros Occidental Philippines
// Website : http://www.jakerpomperada.com
// Email Address : jakerpomperada@jakerpomperada.com and jakerpomperada@aol.com

#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");
        system("COLOR F0"); 
		setprecision(0);
        cout <<"\n";
		cout << "\n\t==========================================";
		cout <<"\n";
		cout <<"\n\tSTUDENT GRADING DATABASE SYSTEM IN C++";
		cout <<"\n\n";
		cout << "\tCreated By Mr. Jake R. Pomperada,MAED-IT";
		cout <<"\n\t==========================================";
		cout <<"\n\n";
		cout << "\t[1] INSERT STUDENT RECORD";
		cout <<"\n";
		cout << "\t[2] BROWSE STUDENT RECORD";
		cout <<"\n";
		cout << "\t[3] EDIT STUDENT RECORDS" ;
		cout <<"\n";
		cout  <<"\t[4] FIND STUDENT RECORDS";
		cout <<"\n";
		cout << "\t[5] REMOVE STUDENT RECORDS";
		cout <<"\n";
		cout  << "\t[6] QUIT PROGRAM" ;
		cout <<"\n\n";
		cout  <<"\tSELECT 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 << "\t=== INSERT NEW STUDENT GRADE RECORD ===";
					cout <<"\n\n";
					cout <<"\tEnter Student ID Number : ";
                    cin >> grade.stud_id_no;
					cout << "\tEnter Student Name: ";
					fflush (stdin) ;
					gets(grade.name);
					cout <<"\tEnter Course : ";
					fflush (stdin) ;
					gets(grade.course);
                    cout <<"\tEnter Subject : ";
					fflush (stdin) ;
					gets(grade.subject);
					cout <<"\tEnter Prelim Grade: ";
					cin >> grade.prelim;
					cout << "\tEnter Midtem Grade: ";
					cin >> grade.midterm;
					cout << "\tEnter Endterm Grade: ";
					cin >> grade.endterm;
					grade.final_grade = (grade.prelim * 0.30) + (grade.midterm * 0.30) + (grade.endterm * 0.40);
					cout << "\n";
                    cout << "\n\tStudent Final Grade : "  << round(grade.final_grade);
					fwrite (&grade, recsize, 1, fp ) ;
					cout << "\n\n";
					cout  << "\n\tAdd New Student Record (Y/N) : " ;
					fflush (stdin) ;
					another = toupper(getche()) ;
				}
				break ;
			case '2' :
        	system("cls");
				rewind ( fp );
				cout << "\n\n";
                cout <<"\t=== VIEW STUDENT GRADE RECORD ===";
                cout <<"\n\n";
		while ( fread ( &grade, recsize, 1, fp ) == 1 )
        {
       cout <<"\n";
       cout <<"\n\t  ID Number        : " <<grade.stud_id_no;
       cout <<"\n\t  Name             : " <<grade.name;
       cout <<"\n\t  Course           : " <<grade.course;
       cout <<"\n\t  Subject          : " << grade.subject;
       cout <<"\n\t  Prelim Grade     : " <<grade.prelim;
       cout <<"\n\t  Midterm Grade    : " <<grade.midterm;
       cout <<"\n\t  Endterm Grade    : " <<grade.endterm;
       cout <<"\n";
       grade.final_grade = (grade.prelim * 0.30) + (grade.midterm * 0.30) + (grade.endterm * 0.40);
       cout <<"\n\t Student Final Grade : " <<round(grade.final_grade);
	  }
          cout <<"\n\n";
         system("pause");
				break ;
			case '3' :
			another = 'Y' ;
				while ( another == 'Y' )
				{
				system("cls");
	         	cout <<"\t=== EDIT STUDENT GRADE RECORD ===";
		        cout <<"\n\n";
	     	    cout <<"\tEnter 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 <<"\tEnter Student ID Number : ";
                            fflush (stdin) ;
                            gets(grade.stud_id_no);
							cout <<"\tEnter Student Name : ";
							fflush ( stdin ) ;
							gets(grade.name);
					        cout <<"\tEnter Course: ";
							fflush ( stdin ) ;
							gets(grade.course);
							cout <<"\tEnter Subject : ";
							fflush ( stdin ) ;
							gets(grade.subject);
							cout <<"\tEnter Prelim Grade : ";
							cin >> grade.prelim;
							cout <<"\tEnter Midtem Grade : ";
							cin >> grade.midterm;
							cout <<"\tEnter Endterm Grade: ";
							cin >> grade.endterm;
							cout <<"\n";
							grade.final_grade = (grade.prelim * 0.20) + (grade.midterm * 0.30) + (grade.endterm * 0.50);
							cout <<"\n\tStudent 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 <<"\tNo Student Record in the Database.";
                   cout <<"\n";
                   system("pause");
                   break;
                   }
                 cout <<"\n\n";
			     cout  <<"\n\tEdit Another Student Record (Y/N) : ";
					fflush ( stdin ) ;
					another = toupper(getche());
				}
				break ;
     	case '4' :
	   rewind ( fp ) ;
	   another = 'Y' ;
				while ( another == 'Y' )
				{
				system("cls");
		        cout <<"\t=== Find Student Records ===";
		        cout <<"\n\n";
			     cout <<"\tEnter 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\tID Number      : " <<grade.stud_id_no;
					cout <<"\n\tName           : " << grade.name;
					cout <<"\n\tCourse         :  " <<grade.course;
	 	            cout <<"\n\tSubject        : " <<grade.subject;
                    cout <<"\n\tPrelim Grade   :  " <<grade.prelim;
                   cout <<"\n\tMidterm Grade  :  " <<grade.midterm;
                   cout <<"\n\tEndterm Grade  : " << grade.endterm;
                   cout <<"\n";
       grade.final_grade = (grade.prelim * 0.30) + (grade.midterm * 0.30) + (grade.endterm * 0.40);
       cout <<"\n\tStudent 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 <<"\tNo Student Record found in the Database.";
            cout <<"\n";
            system("pause");
            break;
           }
                    cout  <<"\n\n";
					cout  <<"\n\tFind Another Student Record (Y/N) : " ;
					fflush ( stdin ) ;
					another = toupper(getche());
				}
				break ;
			case '5' :
				another = 'Y' ;
				while ( another == 'Y' )
				{
					system("cls");
                    cout <<"\t=== REMOVE STUDENT GRADE RECORD ===";
                    cout <<"\n\n";
					cout <<"\tEnter 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 <<"\tRecord Successfully Deleted From the Database.";
         cout <<"\n";
         system("pause");
         }
		else if (flag!=1) {
             cout <<"\n\n";
             cout <<"\tRecord Not Found in the Database.";
             cout <<"\n";
            system("pause");
             }
                    cout <<"\n\n";
					cout << "\tRemove Another Student Record (Y/N) : " ;
					fflush (stdin) ;
					another = toupper(getche());
				}
				break ;
			case '6' :
				fclose ( fp ) ;
				cout <<"\n\n";
				cout <<"\tEND OF PROGRAM";
				cout <<"\n\n";
				cout << "\tThank You Very Much For Using This Software.";
				cout <<"\n\n";
				system("PAUSE");
				exit(0);
		}
	}
} // End of Code

Leave a Reply

Your email address will not be published.