Advertisement
Ansaid

Денису

May 2nd, 2019
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.36 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <vector> // дает возможность рабоать с векторами
  4. #include <string>
  5. #include "Windows.h" // дает возможность подключать ввод русских букв
  6.  
  7. using namespace std;
  8.  
  9. struct Book
  10. {
  11.     string author;
  12.     string title;
  13.     string publisher;
  14.     int circulation;
  15. };
  16.  
  17. Book set_info(); // функция ввода информации о книге
  18.  
  19. void get_info(Book a);// функция вывода информации о книге
  20.  
  21. int main()
  22. {
  23.  
  24.     SetConsoleCP(1251);         // подключает ввод
  25.     SetConsoleOutputCP(1251);   // руссих букв
  26.  
  27.     vector <Book> catalog;
  28.     Book buffer; // временное хранилище для обьектов структуры, для заноса в "вектор"
  29.     int choice = 1; //переменная для выбора варианты действий
  30.     while (choice == 1)
  31.     {
  32.         buffer = set_info(); // ввод данных о обьекте структуры с помощью функции set_info
  33.         catalog.push_back(buffer); // добавление введенного элемента в массив
  34.         choice = 0;
  35.         cout << "\nВарианты действий:\n"  // выбор действий
  36.             << "1. Добавить еще одну книгу\n"
  37.             << "2. Завершить ввод книг в каталог\n"
  38.             << "Выберете желаемый вариант: ";
  39.         cin >> choice;
  40.         cout << endl;
  41.     }
  42.  
  43.     string search_publisher;// переменные для поиска по критериям
  44.     int search_circulation;
  45.  
  46.     cout << "Введите идательство и тираж для поиска книг\n" // вводим критерии поиска
  47.         << "Издательство: ";
  48.     cin >> search_publisher;
  49.     cout << "Тираж: ";
  50.     cin >> search_circulation;
  51.     int k = 0; // счетчик найденных книг
  52.     for (int i = 0; i < catalog.size(); i++) // в цикле от 1 до последнего элемента массива
  53.     {                                        // ищем элементы удовлетворяющие введенным критериям
  54.         if (catalog[i].publisher == search_publisher && catalog[i].circulation > search_circulation) // если  удрвлетворяет критериям
  55.         {
  56.             k++; // увеличиваем счетчик
  57.             cout << "\nСписок найденных книг:" << endl;
  58.             cout << "Книга №" << k << endl;
  59.             get_info(catalog[i]); //вызываем get_info, которая выводит инфу о книге
  60.             cout << endl;
  61.         }
  62.     }
  63.     if (k == 0)
  64.         cout << "\nКниг по данным критерям не найдено!" << endl;
  65. }
  66.  
  67. Book set_info()
  68. {
  69.     Book a;
  70.     cout << "Введите автора книги: ";
  71.     cin >> a.author;
  72.     cout << "Введите название книги: ";
  73.     cin >> a.title;
  74.     cout << "Введите издательство книги: ";
  75.     cin >> a.publisher;
  76.     cout << "Введите тираж книги (в шт.): ";
  77.     cin >> a.circulation;
  78.     return a;
  79. }
  80.  
  81. void get_info(Book a)
  82. {
  83.     cout << "Автор книги: " << a.author << endl;
  84.     cout << "Название книги: " << a.title << endl;
  85.     cout << "Издательство книги: " << a.publisher << endl;
  86.     cout << "Тираж книги (в шт.): " << a.circulation << endl;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement