Advertisement
Guest User

Untitled

a guest
Oct 25th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.30 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5.  
  6. class BOOK{ //класс книга
  7. private: //поля класса
  8.     string name;
  9.     string autor;
  10.     double price;
  11. public:
  12.     BOOK(){}; //конструктор без параметров
  13.     BOOK(string n, string o, double y){name = n; autor = o; price = y;}; //конструктор с параметрами
  14.     ~BOOK() {}; //деструктор
  15.  
  16.     void Input(){ //ф-я ввода
  17.         cout << "Название книги: "; getline(cin, name);
  18.         cout << "Автор: "; getline(cin, autor);
  19.         cout << "Цена: "; cin >> price;
  20.     }
  21.  
  22.     void Show(){ //ф-я вывода
  23.         cout << "Книга: " << name << endl;
  24.         cout << "Автор: " << autor << endl;
  25.         cout << "Цена: " << price << endl;
  26.     }
  27.  
  28.      BOOK operator/ (double t) { //перегрузка оператора "/"
  29.         BOOK temp;
  30.         temp.name = name;
  31.         temp.autor = autor;
  32.         temp.price = price / t; //делим цену на t
  33.         return temp;
  34.     }
  35.    
  36.      bool operator==(string t){ //перегрузка оператора "=="
  37.          if(this->autor == t)
  38.              return 1;
  39.          else
  40.              return 0;
  41.      }
  42.  
  43.      
  44. };
  45.  
  46.  
  47. int main()
  48. {
  49.     setlocale(0, ""); //поддержка кирилицы
  50.     int N;
  51.  
  52.     cout << "Сколько книг добавить в базу: "; cin >> N;
  53.  
  54.     BOOK *p = new BOOK[N]; //массив объектов
  55.    
  56.     for(int i = 0; i < N; i++)
  57.     {
  58.         cin.ignore(); //очистка буфера
  59.         cout << i + 1 << ":";
  60.         p[i].Input(); //ввод
  61.     }
  62.  
  63.     cout << "\nУменьшаем цену в два раза...\n";
  64.     cout << "Книги: ";
  65.     for(int i = 0; i < N; i++)
  66.     {
  67.         p[i] = p[i]/2; //делим на два
  68.         p[i].Show(); //вывод с измененной ценой
  69.     }
  70.    
  71.     char aut[20]; int k = 0;
  72.     cout << "\nНайти книги автора "; cin >> aut; //ввод автора, которого будем искать книги
  73.  
  74.     for(int i = 0; i < N; i++) //проход по массиву
  75.     {
  76.         if(p[i] == aut) //сравниваем введенного автора с текущим элементом
  77.             k++; //если совпадение - увеличиваем счетчик
  78.     }
  79.  
  80.     cout << "В базе найдено " << k << " книг автора " << aut << endl; //вывод информации
  81.     system("pause");
  82.     return 0;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement