Dido09

4.

Jan 29th, 2024
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.56 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. // Клас, описващ читател
  5. class Reader {
  6. private:
  7.     std::string name;
  8.     int number;
  9.  
  10. public:
  11.     // Конструктор за инициализация на член-данните
  12.     Reader(const std::string& name, int number) : name(name), number(number) {}
  13.  
  14.     // Метод за извеждане на информацията за читателя
  15.     void displayReaderInfo() const {
  16.         std::cout << "Reader " << number << ": Name: " << name << std::endl;
  17.     }
  18.  
  19.     // Метод за вземане на име на читателя
  20.     const std::string& getName() const {
  21.         return name;
  22.     }
  23.  
  24.     // Метод за вземане на номер на читателя
  25.     int getNumber() const {
  26.         return number;
  27.     }
  28. };
  29.  
  30. // Клас, описващ библиотека, наследник на клас Читател
  31. class Library : public Reader {
  32. private:
  33.     std::string bookName;
  34.     bool isBookTaken;
  35.  
  36. public:
  37.     // Конструктор за инициализация на член-данните
  38.     Library(const std::string& name, int number, const std::string& bookName)
  39.         : Reader(name, number), bookName(bookName), isBookTaken(false) {}
  40.  
  41.     // Метод за заемане на книга
  42.     void takeBook() {
  43.         if (!isBookTaken) {
  44.             isBookTaken = true;
  45.             std::cout << "Book '" << bookName << "' taken by Reader " << getNumber() << std::endl;
  46.         } else {
  47.             std::cout << "Book '" << bookName << "' is already taken." << std::endl;
  48.         }
  49.     }
  50.  
  51.     // Метод за проверка дали книгата е заета
  52.     bool isBookOccupied() const {
  53.         return isBookTaken;
  54.     }
  55.  
  56.     // Метод за вземане на име на книгата
  57.     const std::string& getBookName() const {
  58.         return bookName;
  59.     }
  60. };
  61.  
  62. int main() {
  63.     // Създаване на масив от обекти от клас Библиотека
  64.     const int numBooks = 3;
  65.     Library books[numBooks] = {
  66.         Library("Alice", 1, "Book1"),
  67.         Library("Bob", 2, "Book2"),
  68.         Library("Charlie", 3, "Book3")
  69.     };
  70.  
  71.     // Извеждане на информацията за книгите със статус "свободна"
  72.     std::cout << "Books with status 'free':\n";
  73.     for (const auto& book : books) {
  74.         if (!book.isBookOccupied()) {
  75.             std::cout << "Book '" << book.getBookName() << "' is free.\n";
  76.         }
  77.     }
  78.  
  79.     return 0;
  80. }
  81.  
Add Comment
Please, Sign In to add comment