#include <iostream> using namespace std; class Book{ int BookID; string Title; string Author; double price; static int numOfBooks; public: //Parameter Constructor Book(int BookID, string Title, string Author, double price){ this->BookID = BookID; this->Title = Title; this->Author = Author; this->price = price; numOfBooks ++; } int getBookID(){ return BookID; } string getTitle(){ return Title; } string getAuthor(){ return Author; } double getPrice(){ return price; } //Static Function static int getTotalNumOfBooks(){ return numOfBooks; } }; int Book::numOfBooks = 0; class Library{ Book *book; string name; string address; public: Library(string name, string address){ this->name = name; this->address = address; } void setBook(Book *book){ this->book = book; } Book* getBook(){ return book; } string getName(){ return name; } void setName(string name){ this->name = name; } string getAddress(){ return address; } void setAddress(string address){ this->address = address; } }; //Class User class Users{ public: string name; string address; string email; int phoneNum; Users(string n, string addre,string em, int pN){ name = n; address = addre; email = em; phoneNum = pN; } //Virtual Function & Overiding function virtual void display(){ } }; //Derived Class from Base class User class Student: public Users{ int studentID; public: Student(int studentID, string name, string address, string email, int phoneNum):Users(name, address, email, phoneNum){ this->studentID = studentID; } int getStudentID(){ return studentID; } //Function Overloading, Same Name but different arguments. void print(string name){ cout<<"student Name: "<<name<<endl; } void print(string name, int studentID){ cout<<"Student Name: "<<name<<endl; cout<<"Student ID: "<<studentID<<endl; } //Default arguments void print(string name, string email, int studentID = 1111){ cout<<"Student Name: "<<name<<endl; cout<<"Student Email: "<<email<<endl; cout<<"Student ID: "<<studentID<<endl; } void display(){ cout<<"\n_____Student Info:____ "<<endl; cout<<"ID: "<<studentID<<endl; cout<<"Name: "<<name<<endl; cout<<"Address: "<<address<<endl; cout<<"Email: "<<email<<endl; cout<<"Phone Number: "<<phoneNum<<endl; } //Friend Function friend void globalFunction(Student &stud); }; class Staff: public Users{ int staffID; public: Staff(int staffID, string name, string address, string email, int phoneNum):Users(name, address, email, phoneNum){ this->staffID = staffID; } int getStaffID(){ return staffID; } void display(){ cout<<"\n______Staff Info:____ "<<endl; cout<<"ID: "<<staffID<<endl; cout<<"Name: "<<name<<endl; cout<<"Address: "<<address<<endl; cout<<"Email: "<<email<<endl; cout<<"Phone Number: "<<phoneNum<<endl; } friend void globalFunction(Staff &staf); }; //Friend Function implementation void globalFunction(Student &stud, Staff &staf){ cout<<"\nAccessing Student ID: "<<stud.getStudentID()<<endl; cout<<"Accessing Staff ID: "<<staf.getStaffID()<<endl; } int main() { cout<<"_____Library Management System._____"<<endl; Library lib("University Library","Uskudar"); cout<<"\n____Library Info____"<<endl; cout<<"Name: "<<lib.getName()<<endl; cout<<"Address: "<<lib.getAddress()<<endl; lib.setBook(new Book(1, "Java", "James", 20.99)); cout<<"____Book Info____"<<endl; cout<<"Book ID: "<<lib.getBook()->getBookID()<<endl; cout<<"Book Title: "<<lib.getBook()->getTitle()<<endl; cout<<"Book Author: "<<lib.getBook()->getAuthor()<<endl; cout<<"Book Price: "<<lib.getBook()->getPrice()<<endl; //Calling static function in the Book class cout<<"Total Books in the Library are: "<<Book::getTotalNumOfBooks()<<endl; lib.setBook(new Book(2, "Math", "Mike", 24.99)); cout<<"____Book Info____"<<endl; cout<<"Book ID: "<<lib.getBook()->getBookID()<<endl; cout<<"Book Title: "<<lib.getBook()->getTitle()<<endl; cout<<"Book Author: "<<lib.getBook()->getAuthor()<<endl; cout<<"Book Price: "<<lib.getBook()->getPrice()<<endl; cout<<"Total Books in the Library are: "<<Book::getTotalNumOfBooks()<<endl; Student s1(2023, "Mohamed","Istanbul","Student@gmail.com", 11111); Users *user; user = & s1; user->display(); Staff stff(3034,"Staff1","Istnabul","Staff@gmail.com", 9999); user = &stff; user->display(); //Friend Function globalFunction(s1,stff); //Calling Overloading Function in the Student class cout<<"_____"<<endl; s1.print("Musa"); s1.print("Musa",5555); //Calling default arguments in the student class s1.print("Yahya", "yahya@emial.com"); return 0; } ___________________________________________________________________________ //OUTPUT: _____Library Management System._____ ____Library Info____ Name: University Library Address: Uskudar ____Book Info____ Book ID: 1 Book Title: Java Book Author: James Book Price: 20.99 Total Books in the Library are: 1 ____Book Info____ Book ID: 2 Book Title: Math Book Author: Mike Book Price: 24.99 Total Books in the Library are: 2 _____Student Info:____ ID: 2023 Name: Mohamed Address: Istanbul Email: Student@gmail.com Phone Number: 11111 ______Staff Info:____ ID: 3034 Name: Staff1 Address: Istnabul Email: Staff@gmail.com Phone Number: 9999 Accessing Student ID: 2023 Accessing Staff ID: 3034 _____ student Name: Musa Student Name: Musa Student ID: 5555 Student Name: Yahya Student Email: yahya@emial.com Student ID: 1111
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter