Home > Cpp > C++ Program to implement Hierarchical Inheritance (Part 2) – Q21

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

January 21, 2010 Leave a comment Go to comments

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

A university is associated with three different kinds of students Undergraduate , Post-Graduate and Doctoral.
– Undergraduate students have grades awarded to the for individual subjects.
– 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];
		char grade;
	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';
			else grade = 'D';
			}
		void showdata(){
			cout<<"\n Name: "<<name;
			cout<<"\n Total Marks: "<<tot;
			cout<<"\n Grade: "<<grade;
			}
	};

class Cpostg : public Cstud{
	private:
		int papers[8], sem;
		char grade;
	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';
			else grade = 'D';
			}
		void showdata(){
			cout<<"\n Name: "<<name;
			cout<<"\n Total Marks in 8 Papers: "<<tot;
			cout<<"\n Seminar Score: "<<sem;
			cout<<"\n Grade: "<<grade;
			}
	};

class Cdoctor : virtual public Cstud{
	private:
		int papers[4];
		boolean thesis;
		char grade;
	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';
			else grade = 'D';
			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 Grade: "<<grade;
			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 1 -> Under Graduates.";
		cout<<"\n 2 -> Post Graduates.";
		cout<<"\n 3 -> Doctoral.";
		cout<<"\n 4 -> Exit.";
		cout<<"\n Enter your choice: ";
		cin>>ch;
		switch(ch){
			case 1:		// Under-Graduates.
				Cunderg Oug;
				Oug.getdata();
				Oug.showdata();
				break;
			case 2:		// Post-Graduates.
				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
1 -> Under Graduates.
2 -> Post Graduates.
3 -> Doctoral.
4 -> Exit.
Enter your choice: 1

Enter Name: Nitin

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

Name: Nitin
Total Marks: 1400
Grade: D

UNIVERSITY
1 -> Under Graduates.
2 -> Post Graduates.
3 -> Doctoral.
4 -> Exit.
Enter your choice: 2

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
Grade: D


Advertisement
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: