0% found this document useful (0 votes)
111 views

CS202: Programming Systems LAB 4: Inheritance

This document discusses inheritance in C++ programming. It provides 3 exercises: 1. Defines a GreatPoint class that inherits from a MyPoint class and adds a distance() method. 2. Defines abstract Shape class with area() and perimeter() methods and subclasses Rectangle and Circle that implement these methods. 3. Defines an Employee class with subclasses Manager and Clerk that override the salary() method to calculate pay differently based on the position.

Uploaded by

adminsvth
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
111 views

CS202: Programming Systems LAB 4: Inheritance

This document discusses inheritance in C++ programming. It provides 3 exercises: 1. Defines a GreatPoint class that inherits from a MyPoint class and adds a distance() method. 2. Defines abstract Shape class with area() and perimeter() methods and subclasses Rectangle and Circle that implement these methods. 3. Defines an Employee class with subclasses Manager and Clerk that override the salary() method to calculate pay differently based on the position.

Uploaded by

adminsvth
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 11

CS202: Programming Systems LAB 4: Inheritance

Exercice 1: Declare the GreatPoint class as a class that extends MyPoint, the given class. You should declare in the GreatPoint class the method distance() that calculates the distance of the point from (0,0) and check it using the given application. a.code: #include <stdio.h> #include <math.h> #include <conio.h> class MyPoint { private: double x; double y; public: MyPoint() { } MyPoint(double a, double b) { x=a; y=b;

} double getX() { return x; } double getY() { return y; } void setX(double xVal) { x = xVal; } void setY(double yVal) { y = yVal; } };

class GreatPoint: public MyPoint { public: GreatPoint(double xVal, double yVal):MyPoint(xVal,yVal) {

double distance() { return sqrt(getX()*getX() + getY()*getY()); }

}; main() { GreatPoint gp(12,24); printf("The distance of gp from (0,0) is %f", gp.distance()); getch(); } b.results:

Exercise 2 : Declare the following classes: The Shape class (abstract), that contains two abstract methods: area and perimeter

The Rectangle class, that extends Shape, describes a simple rectangle. The Circle class, that extends Shape, describes a simple circle. a.code: #include<iostream> #include<conio.h> using namespace std; class shape { public: virtual float area()=0; virtual float perimeter()=0;

}; class rectangle : public shape { private: float x,y; public: rectangle(); rectangle(float a,float b); virtual float area(); virtual float perimeter(); void display();

}; rectangle::rectangle() { x=0; y=0; } rectangle::rectangle(float a,float b) { x=a; y=b; } float rectangle::area() { return(x*y);

} float rectangle::perimeter() { return(2*(x+y)); } void rectangle::display() { cout<<" area recrangle = "<<area(); cout<<"\n petimeter recrangle = "<<perimeter();

} class circle { private: float r; public: circle(); circle(float x); virtual float area(); virtual float perimeter(); void display(); }; circle::circle() { r=0; } circle::circle(float x) { r=x; } float circle::area() { return(3.1415*r*r); } float circle::perimeter()

{ return(2*3.1415*r); } void circle::display() { cout<<"\n area circle = "<<area(); cout<<"\n perimeter cirle = "<<perimeter();

} main() { rectangle A(3,4); A.display(); circle B(4); B.display(); getch(); } b.results:

Exercise 3: Create a Employee class including following members. a.code: #include <iostream> #include <conio.h> using namespace std;

class Employee { protected: char* name; int age; float hourRate; public: Employee(char*nameVal, int ageVal, float hourRateVal); virtual float salary (float hours){} void display (); }; Employee::Employee(char*nameVal, int ageVal, float hourRateVal) { name = nameVal; age = ageVal; hourRate = hourRateVal; } void Employee::display () { cout << "\n " << name <<":" << endl;

cout << "\n\t Age: " << age << endl; cout << "\n\t Hour rate: " <<hourRate <<endl; } class Manager: public Employee { public:

Manager(char*nameVal, int ageVal, float hourRateVal):Employee(nameVal, ageVal,hourRateVal) {} virtual float salary(float hours) { <<endl; } }; cout << "\n\t Tilte:Manager \n"; cout <<"\n\t Salary: "<< hours * hourRate * 2.0

class Clerk: public Employee { public:

Clerk (char*nameVal, int ageVal, float hourRateVal):Employee(nameVal, ageVal,hourRateVal) {} virtual float salary(float hours) { <<endl; } }; cout << "\n\t Tilte:Clerk \n"; cout <<"\n\t Salary: "<< hours * hourRate * 1.2

int main() { Manager A("Thuan", 45, 5); Clerk B("Hoa", 30, 3); Employee* ptr; ptr = &A; ptr -> display(); ptr -> salary(7); ptr = &B; ptr -> display(); ptr -> salary(8); getch(); } b.resulfs:

You might also like