C++ program to explain the concept of inheritance

, by Prashant Gunjal


Design a base class consisting of the data members such as name of the student,roll number and subject.The derived class consists of the data members subject code ,internal assessment and university examination marks.Construct a virtual base class for the item name of the student and roll number.The program should have the facilities. i) Build a master table ii) List a table iii) Insert a new entry iv) Delete old entry v) Edit an entry vi) Search for a record




#include<iostream.h>
#include<fstream.h>
#include<conio.h>

class student
{
protected:
 char nm[40];
 int rno;
 char sub[10];
public:
 void get();
};

class marks:virtual public student
{
int sub_code;
int internal;
int uni_marks;
public:
marks()
{
sub_code=0;
internal=0;
uni_marks=0;
}
void getdata();
void display();
void insert();
void modify();
};

void student::get()
{
cout<<"\n\n\t Enter name:";
cin>>nm;
cout<<"\n\n\t Enter roll no:";
cin>>rno;
cout<<"\n\n\t Enter subject name:";
cin>>sub;
}

void marks::getdata()
{
get();
cout<<"\n\n\t Enter subject code:";
cin>>sub_code;
cout<<"\n\n\t Enter internal assessment:";
cin>>internal;
cout<<"\n\n\t Enter university marks:";
cin>>uni_marks;
}

void marks::display()
{
cout<<" "<<nm<<"\t"<<rno<<"\t"<<sub<<"\t"<<sub_code<<"\t\t"<<internal<<"\t\t"<<uni_marks;
}

void marks::insert()
{
getdata();
}

void marks::modify()
{
getdata();
}

void main()
{
fstream f1;
f1.open("stud.dat", ios::in | ios::out);
int ch,n,loc,i;
marks m[10];
clrscr();
cout<<"\n\n\t Enter no.of records";
cin>>n;
do
 {
  cout<<"\n\n\t 1> Build master table";
  cout<<"\n\n\t 2> Display \n\n\t 3> Insert";
  cout<<"\n\n\t 4> Delete \n\n\t 5> Modify";
  cout<<"\n\n\t 6> Search";
  cout<<"\n\n\t Enter your choice";
  cin>>ch;
  switch(ch)
  {
  case 1:for(i=0;i<n;i++)
{
 m[i].getdata();
 f1.write((char *) & m[i],sizeof(m[i]));
}
  break;
  case 2:cout<<"\n\n";
 cout<<"NAME\tROLL NO\tSUBJECT\tSUB CODE\tINTERNAL\tMARKS";
 cout<<"\n\n";
 cout<<"-----------------------------------------------------------------";
 cout<<"\n\n";
 for(i=0;i<n;i++)
{
 f1.read((char *) & m[i],sizeof(m[i]));
 m[i].display();
 f1.write((char *) & m[i],sizeof(m[i]));
 cout<<"\n\n";
}
 break;
  case 3:cout<<"\n\n\t Enter loc at which record to be inserted";
 cin>>loc;
 for(i=n-1;i>=loc-1;i--)
{
 f1.read((char *) & m[i],sizeof(m[i]));
 m[i+1]=m[i];
}
 f1.write((char *) & m[i],sizeof(m[i]));
 m[loc-1].insert();
 n++;
 break;
  case 4:cout<<"\n\n\t enter loc at which record to be deleted";
 cin>>loc;
 for(i=loc-1;i<=n-1;i++)
{
 f1.read((char *) & m[i],sizeof(m[i]));
 m[i]=m[i+1];
}
 n--;
 cout<<"\n\n";
 cout<<"NAME\tROLL NO\tSUBJECT\tSUB CODE\tINTERNAL\tMARKS";
 cout<<"\n\n";
 cout<<"-----------------------------------------------------------------";
 cout<<"\n\n";
 for(i=0;i<n;i++)
{
 f1.read((char *) & m[i],sizeof(m[i]));
 m[i].display();
 f1.write((char *) & m[i],sizeof(m[i]));
 cout<<"\n\n";
}
 break;
  case 5:cout<<"\n\n\t Enter which record to be editted";
 cin>>loc;
 m[loc-1].insert();
 cout<<"\n\n";
 cout<<"NAME\tROLL NO\tSUBJECT\tSUB CODE\tINTERNAL\tMARKS";
 cout<<"\n\n";
 cout<<"-----------------------------------------------------------------";
 cout<<"\n\n";
 f1.read((char *) & m[i],sizeof(m[i]));
 m[loc-1].display();
 f1.write((char *) & m[i],sizeof(m[i]));
 cout<<"\n\n";
break;
  case 6:cout<<"\n\n\t Enter record to be searched";
 cin>>loc;
 if(n>=loc)
{
cout<<"\n\n\t Found Record";
cout<<"\n\n";
cout<<"NAME\tROLL NO\tSUBJECT\tSUB CODE\tINTERNAL\tMARKS";
cout<<"\n\n";
cout<<"-----------------------------------------------------------------";
cout<<"\n\n";
f1.read((char *) & m[i],sizeof(m[i]));
m[loc-1].display();
f1.write((char *) & m[i],sizeof(m[i]));
cout<<"\n\n";
}
 else
 cout<<"\n\n\t Not Found";
break;
  }
 }while(ch!=7);
 f1.close();
 getch();
}

/* OUTPUT

Enter no.of records 1

1> Build master table
2> Display
3> Insert
4> Delete
5> Modify
6> Search

Enter your choice 1

Enter name:PR
Enter roll no:10
Enter subject name:DS
Enter subject code:23
Enter internal assessment:45
Enter university marks:67

Enter name:PR2
Enter roll no:20
Enter subject name:CO
Enter subject code:44
Enter internal assessment:48
Enter university marks:71

Enter name:PR3
Enter roll no:30
Enter subject name:CG
Enter subject code:12
Enter internal assessment:46
Enter university marks:65


1> Build master table
2> Display
3> Insert
4> Delete
5> Modify
6> Search

Enter your choice 2

NAME    ROLL NO  SUBJECT  SUB CODE  INTERNAL    MARKS
-------------------------------------------------------
PR       10       DS       23        45          67
PR2      20       CO       44        48          71
PR3      30       CG       12        46          65



1> Build master table
2> Display
3> Insert
4> Delete
5> Modify
6> Search

Enter your choice 3

Enter name:PR4
Enter roll no:40
Enter subject name:M2
Enter subject code:89
Enter internal assessment:39
Enter university marks:62


1> Build master table
2> Display
3> Insert
4> Delete
5> Modify
6> Search

Enter your choice2

NAME    ROLL NO SUBJECT   SUB CODE  INTERNAL   MARKS
------------------------------------------------------
PR       10       DS       23        45          67
PR2      20       CO       44        48          71
PR3      30       CG       12        46          65
PR4      40       M2       89        39          62


1> Build master table
2> Display
3> Insert
4> Delete
5> Modify
6> Search

Enter your choice 4

enter loc at which record to be deleted 2

NAME    ROLL NO SUBJECT   SUB CODE  INTERNAL   MARKS
------------------------------------------------------
PR       10       DS       23        45          67
PR2      20       CO       44        48          71
PR3      30       CG       12        46          65

1> Build master table
2> Display
3> Insert
4> Delete
5> Modify
6> Search

Enter your choice 5

Enter which record to be editted 2

Enter name:PR6
Enter roll no:50
Enter subject name:MIT
Enter subject code:78
Enter internal assessment:47
Enter university marks:69

NAME    ROLL NO SUBJECT   SUB CODE  INTERNAL   MARKS
------------------------------------------------------
PR6  50      MIT       78        47         69

1> Build master table
2> Display
3> Insert
4> Delete
5> Modify
6> Search

Enter your choice 6

Enter record to be searched 3

Found Record

NAME    ROLL NO SUBJECT   SUB CODE  INTERNAL   MARKS
------------------------------------------------------
PR3   30       CG       12        46          65

1> Build master table
2> Display
3> Insert
4> Delete
5> Modify
6> Search

Enter your choice 7 */

0 comments: