PART # B
#include <iostream>
using namespace std;
class Date {
private:
int day;
int month;
int year;
public:
Date(int d, int m, int y) : day(d), month(m), year(y) {}
bool withinLastFiveYears(int currentYear) {
return (currentYear - year <= 5);
bool ageLessThan40(int currentYear) {
return (currentYear - year < 40);
};
class Employee {
private:
Date dateOfJoining;
Date dateOfBirth;
public:
Employee(int dojDay, int dojMonth, int dojYear, int dobDay, int dobMonth, int dobYear)
: dateOfJoining(dojDay, dojMonth, dojYear), dateOfBirth(dobDay, dobMonth, dobYear) {}
bool joinedWithinLastFiveYears(int currentYear) {
return dateOfJoining.withinLastFiveYears(currentYear);
bool ageLessThan40(int currentYear) {
return dateOfBirth.ageLessThan40(currentYear);
};
class Base {
public:
virtual void iam() {
cout << "Base" << endl;
};
class Derived1 : public Base {
public:
void iam() {
cout << "Derived1" << endl;
};
class Derived2 : public Base {
public:
void iam() {
cout << "Derived2" << endl;
}
};
int main() {
int currentYear = 2012;
Employee employee1(10, 1, 2010, 5, 6, 1980);
Employee employee2(25, 7, 2013, 20, 4, 1975);
cout << "Employee one joined within last five years: "
<< (employee1.joinedWithinLastFiveYears(currentYear) ? "Yes" : "No") << endl;
cout << "Employee one has age less than 40: "
<< (employee1.ageLessThan40(currentYear) ? "Yes" : "No") << endl;
cout << "Employee two joined within last five years: "
<< (employee2.joinedWithinLastFiveYears(currentYear) ? "Yes" : "No") << endl;
cout << "Employee two has age less than 40: "
<< (employee2.ageLessThan40(currentYear) ? "Yes" : "No") << endl;
Base* basePtr;
Base baseObj;
Derived1 derived1Obj;
Derived2 derived2Obj;
basePtr = &baseObj;
basePtr->iam();
basePtr = &derived1Obj;
basePtr->iam();
basePtr = &derived2Obj;
basePtr->iam();
return 0;
Output:
#include <iostream>
using namespace std;
class Shape
protected:
double dim1, dim2;
public:
virtual void get_data() = 0; // Pure virtual function
virtual void display_area() = 0; // Pure virtual function
};
class Triangle : public Shape
public:
void get_data() {
cout << "Enter base and height of triangle: ";
cin >> dim1 >> dim2;
void display_area() {
cout << "Area of Triangle is: " << 0.5 * dim1 * dim2 << endl;
};class Rectangle : public Shape
{ public:
void get_data() {
cout << "Enter length and breadth of rectangle: ";
cin >> dim1 >> dim2;
void display_area() {
cout << "Area of Rectangle is: " << dim1 * dim2 << endl;
};int main() {
Triangle t;
t.get_data();
t.display_area();
Rectangle r;
r.get_data();
r.display_area();
Output:
#include <iostream>
#include <cstring>
using namespace std;
class Address {
private:
char* street;
char* house;
char* city;
char* code;
public:
Address(const char* s, const char* h, const char* c, const char* cd)
: street(nullptr), house(nullptr), city(nullptr), code(nullptr) {
setStreet(s);
setHouse(h);
setCity(c);
setCode(cd);
}
~Address() {
delete[] street;
delete[] house;
delete[] city;
delete[] code;
const char* getStreet() const {
return street;
void setStreet(const char* s) {
delete[] street;
street = new char[strlen(s) + 1];
strcpy(street, s);
const char* getHouse() const {
return house;
void setHouse(const char* h) {
delete[] house;
house = new char[strlen(h) + 1];
strcpy(house, h);
const char* getCity() const {
return city;
void setCity(const char* c) {
delete[] city;
city = new char[strlen(c) + 1];
strcpy(city, c);
const char* getCode() const {
return code;
void setCode(const char* cd) {
delete[] code;
code = new char[strlen(cd) + 1];
strcpy(code, cd);
};
class Person {
private:
Address address;
public:
Person(const Address& a) : address(a) {}
const Address& getAddress() const {
return address;
void setAddress(const Address& a) {
address = a;
};
int main() {
Address address("Comsats", "150", "Bani Gala", "150000");
Person person(address);
cout << "Original Address: " << endl;
cout << "Street: " << person.getAddress().getStreet() << endl;
cout << "House: " << person.getAddress().getHouse() << endl;
cout << "City: " << person.getAddress().getCity() << endl;
cout << "Code: " << person.getAddress().getCode() << endl;
Address newAddress("COMSATS ISLAMABAD", "050", "PARK ROAD", "0000");
person.setAddress(newAddress);
cout << "\nModified Address: " << endl;
cout << "Street: " << person.getAddress().getStreet() << endl;
cout << "House: " << person.getAddress().getHouse() << endl;
cout << "City: " << person.getAddress().getCity() << endl;
cout << "Code: " << person.getAddress().getCode() << endl;
return 0;
Output:
#include <iostream>
#include <string>
using namespace std;
class Teacher {
protected:
string teacherName;
int age;
string address;
public:
Teacher() {
cout << "Teacher constructor called." << endl;
~Teacher() {
cout << "Teacher destructor called." << endl;
void inputTeacher() {
cout << "Enter Teacher's Name: ";
getline(cin, teacherName);
cout << "Enter Teacher's Age: ";
cin >> age;
cin.ignore(); // Ignore the newline character in the input buffer
cout << "Enter Teacher's Address: ";
getline(cin, address);
void displayTeacher() {
cout << "Teacher's Name: " << teacherName << endl;
cout << "Teacher's Age: " << age << endl;
cout << "Teacher's Address: " << address << endl;
};class Author {
protected:
string authorName;
string address;
int numOfBooks;
public:
Author() {
cout << "Author constructor called." << endl; }
~Author() {
cout << "Author destructor called." << endl;
}void inputAuthor() {
cout << "Enter Author's Name: ";
getline(cin, authorName);
cout << "Enter Author's Address: ";
getline(cin, address);
cout << "Enter Number of Books Written: ";
cin >> numOfBooks;
cin.ignore(); // Ignore the newline character in the input buffer
}void displayAuthor() {
cout << "Author's Name: " << authorName << endl;
cout << "Author's Address: " << address << endl;
cout << "Number of Books Written: " << numOfBooks << endl;
};class Scholar : public Teacher, public Author {
public:
Scholar() {
cout << "Scholar constructor called." << endl;
} ~Scholar() {
cout << "Scholar destructor called." << endl;
}void inputScholar() {
inputTeacher();
inputAuthor();
}void displayScholar() {
displayTeacher();
displayAuthor();
};int main() {
Scholar scholar;
cout << "Enter Scholar's Details: " << endl;
scholar.inputScholar();
cout << "\nScholar's Details: " << endl;
scholar.displayScholar(); return 0;
Output:
#include <iostream>
#include <string>
using namespace std;
class Teacher {
protected:
string teacherName;
int age;
string address;
public:
void inputTeacher() {
cout << "Enter Teacher's Name: ";
getline(cin, teacherName);
cout << "Enter Teacher's Age: ";
cin >> age;
cin.ignore(); // Ignore the newline character in the input buffer
cout << "Enter Teacher's Address: ";
getline(cin, address);
void displayTeacher() {
cout << "Teacher's Name: " << teacherName << endl;
cout << "Teacher's Age: " << age << endl;
cout << "Teacher's Address: " << address << endl;
};
class Author {
protected:
string authorName;
string address;
int numOfBooks;
public:
void inputAuthor() {
cout << "Enter Author's Name: ";
getline(cin, authorName);
cout << "Enter Author's Address: ";
getline(cin, address);
cout << "Enter Number of Books Written: ";
cin >> numOfBooks;
cin.ignore(); // Ignore the newline character in the input buffer
} void displayAuthor() {
cout << "Author's Name: " << authorName << endl;
cout << "Author's Address: " << address << endl;
cout << "Number of Books Written: " << numOfBooks << endl;
};
class Scholar : public Teacher, public Author {
public:
void inputScholar() {
inputTeacher();
inputAuthor();
void displayScholar() {
displayTeacher();
displayAuthor();
};int main() {
Scholar scholar;
cout << "Enter Scholar's Details: " << endl;
scholar.inputScholar();
cout << "\nScholar's Details: " << endl;
scholar.displayScholar();
return 0;
Output:
#include <iostream>
#include <string>
using namespace std;
class DateTime {
private:
int day;
int month;
int year;
int hour;
int minute;
int second;public:
DateTime(int d, int m, int y, int h, int min, int sec)
: day(d), month(m), year(y), hour(h), minute(min), second(sec) {}
void setDateTime(int d, int m, int y, int h, int min, int sec) {
day = d;
month = m;
year = y;
hour = h;
minute = min;
second = sec;
} void displayDateTime() {
cout << "Date: " << day << "/" << month << "/" << year << endl;
cout << "Time: " << hour << ":" << minute << ":" << second << endl;
};int main() {
DateTime Watch(1, 1, 2022, 12, 0, 0);
cout << "Initial Watch Settings: " << endl;
Watch.displayDateTime();
int day, month, year, hour, minute, second;
cout << "\nEnter new Watch settings: " << endl;
cout << "Day: ";
cin >> day;
cout << "Month: ";
cin >> month;
cout << "Year: ";
cin >> year;
cout << "Hour: ";
cin >> hour;
cout << "Minute: ";
cin >> minute;
cout << "Second: ";
cin >> second;
Watch.setDateTime(day, month, year, hour, minute, second);
cout << "\nUpdated Watch Settings: " << endl;
Watch.displayDateTime();
return 0;
Output:
#include <iostream>
#include <string>
using namespace std;
class Person {
protected:
string name;
int age;
string gender;
public:
void setName(string name) {
this->name = name;
} void setAge(int age) {
this->age = age;
}void setGender(string gender) {
this->gender = gender;
}string getName() {
return name;
int getAge() { return age;
}string getGender() {
return gender;
};class Employee {
protected:
string employerName;
double dailyWages;public:
void setEmployerName(string employerName) {
this->employerName = employerName;
}void setDailyWages(double dailyWages) {
this->dailyWages = dailyWages;
}string getEmployerName() {
return employerName;
}double getDailyWages() {
return dailyWages;
};class Teacher : public Person, public Employee {
private:
string grade;
public:
void setGrade(string grade) {
this->grade = grade;
string getGrade() { return grade;
};int main() {
Teacher teacher;
// Set data using setter functions
teacher.setName("NOUMAN");
teacher.setAge(20);
teacher.setGender("Male");
teacher.setEmployerName("aps School");
teacher.setDailyWages(99.9);
teacher.setGrade("Grade 2"); // Display data using getter functions
cout << "Name: " << teacher.getName() << endl;
cout << "Age: " << teacher.getAge() << endl;
cout << "Gender: " << teacher.getGender() << endl;
cout << "Employer: " << teacher.getEmployerName() << endl;
cout << "Daily Wages: " << teacher.getDailyWages() << endl;
cout << "Grade: " << teacher.getGrade() << endl;
return 0;
}
Output:
#include <iostream>
using namespace std;
class Base {
protected:
int baseData1;
int baseData2;
public:
void setBaseData(int data1, int data2) {
baseData1 = data1;
baseData2 = data2;
} void displayBaseData() {
cout << "Base Data 1: " << baseData1 << endl;
cout << "Base Data 2: " << baseData2 << endl;
};class Derived1 : public Base {
protected:
int derivedData;
public:
void setDerivedData(int data) {
derivedData = data;
} void displayDerivedData() {
cout << "Derived Data: " << derivedData << endl;
};class Derived2 : public Derived1 {
public:
void accessBaseAndDerived1() {
displayBaseData();
displayDerivedData();
};int main() {
Derived2 obj;
obj.setBaseData(10, 20);
obj.setDerivedData(30);
obj.accessBaseAndDerived1();
return 0;
Output:
#include <iostream>
using namespace std;
class Person {
int id;
string name;
string addr;
public :
void getdata() {
cout << "Enter ID Number : ";
cin >> id;
cout << "\nEnter Name : ";
cin >> name;
cout << "\nEnter Address : ";
getline(cin,addr);
void showdta(){
cout<<"\nID No.: "<<id;
cout<<"\nName: "<<name;
cout<<"\nAddress: "<<addr;
}; // end of person class
class Student :public Person{
long int rno;
float m1,m2,m3;
public :
void getdata() {
Person ::getdata();
cout << "\nEnter Roll no : ";
cin>>rno;
cout<<"Enter Marks in three subjects:";
cin>>m1>>m2>>m3;
void showdata(){
Person::showdata();
cout<<endl<<"RollNo:"<<rno;
cout<<endl<<"Marks obtained are :"
<<"Subject-1="<<m1
<<" Subject -2 ="<<m2
<<" Subject -3 = "<<m3;
};//end of student class
int main()
Student s;
s.getdata();
s.showdata();
return 0;
Output:
#include <iostream>
#include <string>
class publication {
protected:
std::string title;
float price;
public:
// Default constructor
publication() {
title = "";
price = 0.0;
} // Function to get data from the user
void getdata() {
std::cout << "Enter the title: ";
std::getline(std::cin >> std::ws, title);
std::cout << "Enter the price: ";
std::cin >> price;
} // Function to display data
void putdata() const {
std::cout << "Title: " << title << std::endl;
std::cout << "Price: $" << price << std::endl;
};
class book : public publication {
private:
int page_count;
public:
// Default constructor
book() : publication() {
page_count = 0;
} // Function to get data from the user
void getdata() {
publication::getdata();
std::cout << "Enter the page count: ";
std::cin >> page_count;
} // Function to display data
void putdata() const {
publication::putdata();
std::cout << "Page Count: " << page_count << std::endl;
};
class tape : public publication {
private:
float playing_time;
public:
// Default constructor
tape() : publication() {
playing_time = 0.0;
} // Function to get data from the user
void getdata() {
publication::getdata();
std::cout << "Enter the playing time (in minutes): ";
std::cin >> playing_time;
} // Function to display data
void putdata() const {
publication::putdata();
std::cout << "Playing Time: " << playing_time << " minutes" << std::endl;
};int main() {
book b;
tape t;
std::cout << "Enter the details of the book:\n";
b.getdata();
std::cout << "\nEnter the details of the tape:\n"; t.getdata();
std::cout << "\nBook Details:\n";
b.putdata();
std::cout << "\nTape Details:\n";
t.putdata();
return 0;
Output:
#include <iostream>
class Computer {
protected:
int wordsize;
int memorysize;
int storagesize;
int speed;
public:
// Default constructor
Computer() {
wordsize = 0;
memorysize = 0;
storagesize = 0;
speed = 0;
} // Constructor to initialize all components
Computer(int wordsize, int memorysize, int storagesize, int speed) {
this->wordsize = wordsize;
this->memorysize = memorysize;
this->storagesize = storagesize;
this->speed = speed;
}// Function to display data members
void display() {
std::cout << "Word Size: " << wordsize << " bits\n";
std::cout << "Memory Size: " << memorysize << " megabytes\n";
std::cout << "Storage Size: " << storagesize << " megabytes\n";
std::cout << "Speed: " << speed << " megahertz\n";
};class Laptop : public Computer {
private:
int length;
int width;
int height;
int weight;
public:
// Default constructor
Laptop() : Computer() {
length = 0;
width = 0;
height = 0;
weight = 0;
} // Constructor to initialize all components
Laptop(int wordsize, int memorysize, int storagesize, int speed, int length, int width, int height, int weight)
: Computer(wordsize, memorysize, storagesize, speed) {
this->length = length;
this->width = width;
this->height = height;
this->weight = weight;
// Function to display data members
void display() {
Computer::display();
std::cout << "Length: " << length << " units\n";
std::cout << "Width: " << width << " units\n";
std::cout << "Height: " << height << " units\n";
std::cout << "Weight: " << weight << " units\n";
};int main() {
// Create a Computer object
Computer computer(64, 2222, 111, 1500);
std::cout << "Computer:\n";
computer.display();
std::cout << "\n"; // Create a Laptop object
Laptop laptop(64, 2222, 111, 1500, 1, 90, 12, 21);
std::cout << "Laptop:\n";
laptop.display();
return 0;
Output: