Project Report: Object-Oriented Programming)

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 25

PROJECT REPORT

1. Introduction:

 C++: C++ is an object-oriented computer language created by notable computer


scientist Bjorne Stroustrop as part of the evolution of the C family of languages. C++
is pronounced "see-plus-plus." It was developed as a cross-platform improvement of
C to provide developers with a higher degree of control over

 OOP (Object-oriented programming): Object Oriented programming (OOP) is a


programming paradigm that relies on the concept of classes and objects. It is used to
structure a software program into simple, reusable pieces of code blueprints (usually
called classes), which are used to create individual instances of objects.

2. Objective:
 To create Student Database Management System program
 To store the record of students
 To store calculate the total marks of students
 To show the results of the student

3. Requirements:
 Abstraction [use of ADT classes] ,
 Encapsulation,
 Inheritance,
 Polymorphism,
 Type conversion,
 Operator Overloading,
 File handling to store data permanently
4. Background Theory

1. Object: Objects are the basic run time entities in an object-oriented system.

2. Class: A class is a user-defined data type that we can use in our program, and it works
as an object constructor, or a "blueprint" for creating objects.

3. Constructor: The constructor can be defined as a class in the same way as that of
normal member functions and can access any of its data members.
4. Encapsulation: This makes the program structure easier to manage because each
object’s implementation and state are hidden behind well-defined boundaries.
5. Polymorphism: This means abstract entities are implemented in multiple ways
according to the message passed.
6. Inheritance: This refers to the hierarchical arrangement of implementation fragments.

7. Type conversion: C++ allows us to convert data of one type to that of another. This is
known as type conversion.
There are two types of type conversion in C++.
a. Implicit Conversion
b. Explicit Conversion (also known as Type Casting)

8. Overloading: If we create two or more members having the same name but different
in number or type of parameter, it is known as C++ overloading.
9. Types of overloading in C++ are:
a. Function overloading
b. Operator overloading

10 . Function Overloading: Function Overloading is defined as the process of having two or


more function with the same name, but different in parameters is known as function
overloading in C++

11. Operators Overloading: Operator overloading is a compile-time polymorphism in which


the operator is overloaded to provide the special meaning to the user-defined data type. 

5. Coding:
/***************************************************

****************************************************

*/

// Header file used in this program

#include<iostream>

#include<fstream>

#include<iomanip>

#include<string.h>

using namespace std;

//Student_Management class declaration

class Student_Management

private:

//Class members

char name[10];

int IDnum;

int oop;

int IT;

int multimedia;

int math;

double percentage;
char grade;

public:

// Class functions

void getdata();

void total();

int getIDnum() const;

void showdata() const;

void showheader() const;

void student_record();

void display_record(int);

void Search_display(int);

void modify_record(int);

void delete_record(int);

void display_result();

};

//class function to get data from the user

void Student_Management::getdata()

cout<<"Enter the student's Name:";

cin.ignore();// ignores the return key pressed

cin.getline(name,10);

cout<<"Enter the student's IDnum:";


cin>>IDnum;

cout<<"Enter the student's oop marks:";

cin>>oop;

cout<<"Enter the student's IT marks:";

cin>>IT;

cout<<"Enter the student's multimedia marks:";

cin>>multimedia;

cout<<"Enter the student's math marks:";

cin>>math;

total();

//class function to calculate total grade

void Student_Management::total()

percentage=(oop+IT+multimedia+math)/4;

//checking the conditions

if(oop>=40 || IT>=40 || multimedia>=40 || math>=40)

if (percentage>=80)

grade='A';

}
else if (percentage>=60)

grade='B';

else if (percentage>=40)

grade='C';

else

grade='F';

else

grade='F';

//class function to show data

void Student_Management::showdata() const

{
cout<<"\nName:"<<name<<endl;

cout<<"ID number:"<<IDnum<<endl;

cout<<"OOP mark:"<<oop<<endl;

cout<<"IT mark:"<<IT<<endl;

cout<<"Multimedia mark:"<<multimedia<<endl;

cout<<"Math mark:"<<math<<endl;

cout<<"Percentage:"<<percentage<<endl;

cout<<"Grade:"<<grade<<endl;

cout<<"Please press any key to continue........\n"<<endl;

// class function for header to show data

void Student_Management::showheader() const

cout<<IDnum<<setw(5)<<"
"<<name<<setw(10)<<oop<<setw(11)<<IT<<setw(15)<<multimedia<<setw(21)<<math<<s
etw(18)<<percentage

<<setw(7)<<grade<<endl<<endl;

// class function to return id number

int Student_Management::getIDnum() const

return IDnum;
}

// function to write and store the record of students

void student_record()

Student_Management S; // object of class

ofstream outFile; //Stream class to write on files

outFile.open("Student_record.txt",ios::binary|ios::app);

S.getdata();

outFile.write(reinterpret_cast<char *>(&S), sizeof(Student_Management));

outFile.close();

cout<<"Student's record has been created.Please press any key to


continue........\n"<<endl;

cin.ignore(); // ignores the return key pressed

//cin.get(); //accessing character array

// function to display all the stored student recored

void display_record()

Student_Management S; // object of class

ifstream inFile; //Stream class to read from files

inFile.open("Student_record.txt",ios::in);
if (!inFile)

cout<<"File could not be created.Please press any key to continue........ " ;

cin.ignore(); // ignores the return key pressed

cin.get(); //accessing character array

return;

while (inFile.read(reinterpret_cast<char *> (&S), sizeof(Student_Management)))

S.showdata();

inFile.close();

cin.ignore();

cin.get();

// function to search the record stored

void display_search(int n)

Student_Management S;

ifstream inFile; //Stream class to read from files


inFile.open("Student_record.txt",ios::in);

if(!inFile)

cout<<"File could not be created.Please press any key to continue........ " ;

cin.ignore();

cin.get();

return;

bool flag=false; // checks the status

while (inFile.read(reinterpret_cast<char *> (&S), sizeof (Student_Management)))

if(S.getIDnum()==n);

S.showdata();

flag = true;

inFile.close();

if (flag==false)

cout<<"\n Record doesnot exist.Please press any key to continue........";

cin.ignore();// ignores the return key pressed


cin.get(); //accessing character array

// function to modify the record stored

void modify_record(int n)

bool flag=false;

Student_Management S;

fstream File; //Stream class to both read and write from/to files

File.open("Student_record.txt",ios::in);

if(!File)

cout<<"File could not be created. " ;

cin.ignore();

cin.get();

return;

while(!File.eof() && flag==false)

File.read(reinterpret_cast<char *> (&S), sizeof (Student_Management));

if ( S.getIDnum()==n)

S.showdata();
cout<<"\n\n Please enter the new details of student"<<endl;

S.getdata();

int pos=(-1)*static_cast<int>(sizeof(S));

File.seekp(pos,ios::cur);

File.write(reinterpret_cast<char *> (&S), sizeof


(Student_Management));

cout<<"\n\n\t The record is updated.Please press any key to


continue........";

flag=true;

File.close();

if(flag==false)

cout<<"\n Sorry! Record not found.Please press any key to continue........";

cin.ignore();// ignores the return key pressed

cin.get(); //accessing character array

// function to delete the record stored

void delete_record(int n)

Student_Management S;
ifstream inFile;

inFile.open("Student_record.txt");

if(!inFile)

cout<<"\n Sorry !!! File could not be open.Please press any key to
continue........ " ;

cin.ignore();// ignores the return key pressed

cin.get(); //accessing character array

return;

ofstream outFile;

inFile.open("delete.txt",ios::out);

inFile.seekg(0,ios::beg);

while(inFile.read(reinterpret_cast<char *> (&S), sizeof (Student_Management)))

if(S.getIDnum() != n)

outFile.write(reinterpret_cast<char *>(&S), sizeof


(Student_Management));

outFile.close();

inFile.close();
remove("Student_record.txt");

rename("delete.txt","Student_record.txt");

cout<<"\n\n\t Record deleted.Please press any key to continue........";

cin.ignore();// ignores the return key pressed

cin.get(); //accessing character array

// function to display the result stored

void display_result()

Student_Management S;

ifstream inFile;

inFile.open("Student_record.txt",ios::in);

if(!inFile)

cout<<"Sorry !!! File could not be open.Please press any key to continue........"
;

cin.ignore();

cin.get();

return;

cout<<"============================================================
=========================="<<endl;
cout<<"\t\t\t **REULTS OF STUDENTS** "<<endl;

cout<<"============================================================
=========================="<<endl;

cout<<"IDnum "<<"|"<<" Name "<<"|"<<" Mark in OOP " <<"|"<<" Mark in IT


"<<"|"<<" Mark in Multimedia "<<"|"

<<" Mark in Math "<<"|"<<" Percentage "<<"|"<<" Grade "<<endl;

cout<<"============================================================
=========================================="<<endl;

while(inFile.read(reinterpret_cast<char *> (&S), sizeof (Student_Management)))

S.showheader();

cin.ignore();// ignores the return key pressed

cin.get(); //accessing character array

inFile.close();

// Main function

int main()

int ch;

int n;

cout.setf(ios::fixed | ios::showpoint);

cout<<setprecision(2);
do

cout<<"=========================================================="<<
endl;

cout<<"\t ** STUDENT DATABASE MANAGEMENT SYSTEM


**"<<endl;

cout<<"=========================================================="<<
endl;

cout<<" 1. CREATE STUDENT RECORD"<<endl;

cout<<" 2. DISPLAY RECORDS OF ALL STUDENTS"<<endl;

cout<<" 3. SEARCH STUDENT RECORD"<<endl;

cout<<" 4. MODIFY STUDENT RECORD"<<endl;

cout<<" 5. DELETE STUDENT RECORD"<<endl;

cout<<" 6. DISPLAY CLASS RESULT"<<endl;

cout<<" 7. EXIT\n"<<endl;

cout<<" PLEASE ENTER YOUR CHOICE FROM (1-7) :"<<endl;

cin>>ch;

//testing the cases

switch(ch)

case 1:

student_record();
break;

case 2:

display_record();

break;

case 3:

cout<<"\n Please Enter student's ID number :"<<endl;

cin>>n;

display_search(n);

break;

case 4:

cout<<"\n Please Enter student's ID number :";

cin>>n;

modify_record(n);

break;

case 5:

cout<<"\n Please Enter student's ID number :";

cin>>n;

delete_record(n);

break;

case 6:

display_result();

break;

case 7:
exit(0);

default:

cout<<"Enter valid choice:";

while(ch != '7');

return 0;

6. Output
7.UML DIAGRAM
8. Conclusion: After the completion of this project provided by my teacher Sukant Kumar
Sahu I became familiar with the different concepts of OOP (Object oriented programming) .I
also have build up the confidence to make different program in C++ by using the concepts of
it. So, I would like to thank my teacher for giving me this project.

9. References:

1. Notes

2. Final report

You might also like