### Archive

Posts Tagged ‘Hierarchical Inheritance’

## C++ Program to implement Hierarchical Inheritance (Part 2) – Q21

Q21. Program to implement Hierarchical Inheritance (Part 2):

A university is associated with three different kinds of students Undergraduate , Post-Graduate and Doctoral.
– Postgraduate students sit for 8 papers and deliver a seminar. They are awarded grades for these.
– Doctoral students sit for 4 papers and write a thesis. They are awarded grades for the papers but for the thesis the evaluation is only whether the thesis is accepted or not.

… from College notes (BCA/MCA assignments):

```#include <iostream.h>
#include <stdlib.h>
#include <conio.h>

enum boolean {false, true};

class Cstud{
protected:
char name[20];
};

class Cunderg : public Cstud{
private:
int papers[5];
public:
int tot, avg;
void getdata(){
cout<<"\n Enter Name: ";
cin>>name;
cout<<"\n Enter Marks in 5 Subjects: -"<<endl;
tot = 0;
for(int i=0; i<5; i++){
cin>>papers[i];
tot += papers[i];
}
avg = tot / 5;
if(avg >= 80 && avg < 100) grade = 'A';
else if(avg > 60 && avg < 80) grade = 'B';
else if(avg > 40 && avg < 60) grade = 'C';
}
void showdata(){
cout<<"\n Name: "<<name;
cout<<"\n Total Marks: "<<tot;
}
};

class Cpostg : public Cstud{
private:
int papers[8], sem;
public:
int tot;
void getdata(){
cout<<"\n Enter Name: ";
cin>>name;
cout<<"\n Enter Marks in 8 Subjects: -"<<endl;
tot = 0;
for(int i=0; i<8; i++){
cin>>papers[i];
tot += papers[i];
}
cout<<"\n Enter Marks of Seminar: ";
cin>>sem;
if(sem >= 80 && sem < 100) grade = 'A';
else if(sem > 60 && sem < 80) grade = 'B';
else if(sem > 40 && sem < 60) grade = 'C';
}
void showdata(){
cout<<"\n Name: "<<name;
cout<<"\n Total Marks in 8 Papers: "<<tot;
cout<<"\n Seminar Score: "<<sem;
}
};

class Cdoctor : virtual public Cstud{
private:
int papers[4];
boolean thesis;
public:
int tot, avg;
char ch;
void getdata(){
cout<<"\n Enter Name: ";
cin>>name;
cout<<"\n Enter Marks in 4 Subjects: -"<<endl;
tot = 0;
for(int i=0; i<4; i++){
cin>>papers[i];
tot += papers[i];
}
avg = tot / 4;
if(avg >= 80 && avg < 100) grade = 'A';
else if(avg > 60 && avg < 80) grade = 'B';
else if(avg > 40 && avg < 60) grade = 'C';
cout<<"\n Is the Thesis Accepted (y/n): ";
cin>>ch;
if(ch == 'y') thesis = true;
else thesis = false;
}
void showdata(){
cout<<"\n Name: "<<name;
cout<<"\n Total Marks: "<<tot;
cout<<"\n Thesis: ";
if(thesis) cout<<"Accepted";
else cout<<"Not Accepted";
}

};

void main(){
int ch;
while(1){
clrscr();
cout<<"\n UNIVERSITY";
cout<<"\n ~~~~~~~~~~";
cout<<"\n 3 -> Doctoral.";
cout<<"\n 4 -> Exit.";
cin>>ch;
switch(ch){
Cunderg Oug;
Oug.getdata();
Oug.showdata();
break;
Cpostg Opg;
Opg.getdata();
Opg.showdata();
break;
case 3:		// Doctoral.
Cdoctor Od;
Od.getdata();
Od.showdata();
break;
default:
exit(1);
} // end of switch.
getch();
} // end of while.
} // end of main.
```

Output:

UNIVERSITY
3 -> Doctoral.
4 -> Exit.

Enter Name: Nitin

Enter Marks in 5 Subjects: –
200
300
400
350
150

Name: Nitin
Total Marks: 1400

UNIVERSITY
3 -> Doctoral.
4 -> Exit.

Enter Name: Manoj

Enter Marks in 8 Subjects: –
200
300
250
350
150
400
200
100

Enter Marks of Seminar: 400

Name: Manoj
Total Marks in 8 Papers: 1950
Seminar Score: 400

Categories: Cpp

## C++ Program to implement Hierarchical Inheritance (Part 1) – Q20

Q20. Program to implement Hierarchical Inheritance (Part 1):

Imagine a publishing company that markets books as well as audicassette. Create a class publication that stores the title and price. From this class derive two classes as follows:
– Book, which adds a Pagecount, AuthurName, Edition
– Tape, which adds Playnigtime in minutes, SpeakerName, Date of Recording
Each of these classes should have a getdata( ) and putdat()
Functions to read and to display the data reapectively.

… from College notes (BCA/MCA assignments):

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

class CPubs{
protected:
char title[20];
float price;
};

class CBooks : public CPubs{
private:
char aname[20];
int pcount, edition;
public:
void getdata(){
cout<<"\n Enter Title of Book: ";
cin>>title;
cout<<"\n Enter Price: ";
cin>>price;
cout<<"\n Enter Author Name: ";
cin>>aname;
cout<<"\n Enter Page Count: ";
cin>>pcount;
cout<<"\n Enter Edition: ";
cin>>edition;
}
void showdata(){
cout<<"\n\t Book Title: "<<title;
cout<<"\n\t Price: "<<price;
cout<<"\n\t Author Name: "<<aname;
cout<<"\n\t Page Count: "<<pcount;
cout<<"\n\t Edition no.: "<<edition;
}
};

class CTapes : public CPubs{
private:
char sname[20];
int ptime;
int dd, mm, yy;
public:
void getdata(){
cout<<"\n Enter Title of Cassette: ";
cin>>title;
cout<<"\n Enter Price: ";
cin>>price;
cout<<"\n Enter Speaker Name: ";
cin>>sname;
cout<<"\n Enter Play Time: ";
cin>>ptime;
cout<<"\n Enter Date of Recording (dd mm yy): ";
cin>>dd>>mm>>yy;
}
void showdata(){
cout<<"\n\t Cassette Title: "<<title;
cout<<"\n\t Price: "<<price;
cout<<"\n\t Speaker Name: "<<sname;
cout<<"\n\t Play Time: "<<ptime;
cout<<"\n\t Date of Recording: "
<<dd<<":"<<mm<<":"<<yy;
}
};

void main(){

CBooks Obook;
CTapes Otape;

clrscr();

cout<<"\n Publishing Company";
cout<<"\n ~~~~~~~~~~~~~~~~~~";

cout<<"\n Enter the Information of BOOKS:-"<<endl;
Obook.getdata();
cout<<"\n Enter the Information of TAPES:-"<<endl;
Otape.getdata();

clrscr();

cout<<"\n Information of BOOKS & TAPES : -";
cout<<"\n\n BOOKS : -"<<endl;
Obook.showdata();
cout<<"\n\n TAPES : -"<<endl;
Otape.showdata();

getch();

}
```

Output:

Publishing Company

Enter the Information of BOOKS:-

Enter Title of Book: cplusplus

Enter Price: 250

Enter Author Name: stroustrup

Enter Page Count: 700

Enter Edition: 4

Enter the Information of TAPES:-

Enter Title of Cassette: bacardiblast

Enter Price: 125

Enter Speaker Name: ricky

Enter Play Time: 90

Enter Date of Recording (dd mm yy): 10 03 2000

Information of BOOKS & TAPES : –

BOOKS : –
Book Title: cplusplus
Price: 250
Author Name: stroustrup
Page Count: 700
Edition no.: 4

TAPES : –
Cassette Title: bacardiblast
Price: 125
Speaker Name: ricky
Play Time: 90
Date of Recording: 10:3:2000

Categories: Cpp