Advertisement
vallec

Читател

Dec 15th, 2024
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.98 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. // Клас Читател
  6. class Reader {
  7. protected:
  8.     string name;  // Име на читателя
  9.     int number;   // Номер на читателя
  10.  
  11. public:
  12.     // Конструктор с параметри
  13.     Reader(string readerName, int readerNumber) : name(readerName), number(readerNumber) {}
  14.  
  15.     // Метод за извеждане на информация за читателя
  16.     void printReaderInfo() const {
  17.         cout << "Reader Name: " << name << ", Reader Number: " << number << endl;
  18.     }
  19. };
  20.  
  21. // Клас Библиотека (наследник на Читател)
  22. class Library : public Reader {
  23. private:
  24.     string bookName; // Име на книгата
  25.     bool isBorrowed; // Статус на книгата: заета или свободна
  26.  
  27. public:
  28.     // Конструктор с параметри
  29.     Library(string readerName, int readerNumber, string bookName, bool status)
  30.         : Reader(readerName, readerNumber), bookName(bookName), isBorrowed(status) {}
  31.  
  32.     // Функция за заемане на книга
  33.     void borrowBook() {
  34.         if (!isBorrowed) {
  35.             isBorrowed = true;
  36.             cout << "The book \"" << bookName << "\" has been borrowed by " << name << "." << endl;
  37.         } else {
  38.             cout << "The book \"" << bookName << "\" is already borrowed." << endl;
  39.         }
  40.     }
  41.  
  42.     // Функция за проверка дали дадена книга е заета
  43.     bool checkBookStatus() const {
  44.         return isBorrowed;
  45.     }
  46.  
  47.     // Функция за извеждане на информация за книгата
  48.     void printBookInfo() const {
  49.         cout << "Book Name: " << bookName
  50.              << ", Status: " << (isBorrowed ? "Borrowed" : "Available") << endl;
  51.     }
  52.  
  53.     // Връщане на името на книгата
  54.     string getBookName() const {
  55.         return bookName;
  56.     }
  57. };
  58.  
  59. // Главна функция
  60. int main() {
  61.     // Масив от обекти Library
  62.     Library books[] = {
  63.         Library("Ivan Ivanov", 1, "C++ Programming", false),
  64.         Library("Maria Petrova", 2, "Data Structures", true),
  65.         Library("Georgi Georgiev", 3, "Algorithms", false),
  66.         Library("Anna Dimitrova", 4, "Operating Systems", true),
  67.         Library("Petar Petrov", 5, "Computer Networks", false),
  68.     };
  69.  
  70.     // Извеждане на книги със статус "свободна"
  71.     cout << "Available Books:" << endl;
  72.     for (const Library& book : books) {
  73.         if (!book.checkBookStatus()) {
  74.             book.printBookInfo();
  75.         }
  76.     }
  77.  
  78.     cout << endl;
  79.  
  80.     // Пример за заемане на книга
  81.     cout << "Attempting to borrow a book:" << endl;
  82.     books[0].borrowBook(); // Опит за заемане на първата книга
  83.     books[0].borrowBook(); // Опит за повторно заемане
  84.  
  85.     return 0;
  86. }
  87.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement