Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- // Клас Читател
- class Reader {
- protected:
- string name; // Име на читателя
- int number; // Номер на читателя
- public:
- // Конструктор с параметри
- Reader(string readerName, int readerNumber) : name(readerName), number(readerNumber) {}
- // Метод за извеждане на информация за читателя
- void printReaderInfo() const {
- cout << "Reader Name: " << name << ", Reader Number: " << number << endl;
- }
- };
- // Клас Библиотека (наследник на Читател)
- class Library : public Reader {
- private:
- string bookName; // Име на книгата
- bool isBorrowed; // Статус на книгата: заета или свободна
- public:
- // Конструктор с параметри
- Library(string readerName, int readerNumber, string bookName, bool status)
- : Reader(readerName, readerNumber), bookName(bookName), isBorrowed(status) {}
- // Функция за заемане на книга
- void borrowBook() {
- if (!isBorrowed) {
- isBorrowed = true;
- cout << "The book \"" << bookName << "\" has been borrowed by " << name << "." << endl;
- } else {
- cout << "The book \"" << bookName << "\" is already borrowed." << endl;
- }
- }
- // Функция за проверка дали дадена книга е заета
- bool checkBookStatus() const {
- return isBorrowed;
- }
- // Функция за извеждане на информация за книгата
- void printBookInfo() const {
- cout << "Book Name: " << bookName
- << ", Status: " << (isBorrowed ? "Borrowed" : "Available") << endl;
- }
- // Връщане на името на книгата
- string getBookName() const {
- return bookName;
- }
- };
- // Главна функция
- int main() {
- // Масив от обекти Library
- Library books[] = {
- Library("Ivan Ivanov", 1, "C++ Programming", false),
- Library("Maria Petrova", 2, "Data Structures", true),
- Library("Georgi Georgiev", 3, "Algorithms", false),
- Library("Anna Dimitrova", 4, "Operating Systems", true),
- Library("Petar Petrov", 5, "Computer Networks", false),
- };
- // Извеждане на книги със статус "свободна"
- cout << "Available Books:" << endl;
- for (const Library& book : books) {
- if (!book.checkBookStatus()) {
- book.printBookInfo();
- }
- }
- cout << endl;
- // Пример за заемане на книга
- cout << "Attempting to borrow a book:" << endl;
- books[0].borrowBook(); // Опит за заемане на първата книга
- books[0].borrowBook(); // Опит за повторно заемане
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement