35657

Untitled

Jun 10th, 2023
740
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.52 KB | None | 0 0
  1.  
  2. /*
  3. Задание:
  4. Реализовать класс video_store, в котором хранятся структуры film со следующими полями:
  5. -название фильма;
  6. -режиссер;
  7. -жанр;
  8. -рейтинг популярности.
  9. Класс должен иметь конструктор по умолчанию, деструктор, параметризованные конструкторы для одного параметра (желаемая емкость хранилища) и двух параметров (массив структур film и его размер)
  10. Реализовать следующие возможности:
  11. -поиск по названию;
  12. -поиск по жанру;
  13. -поиск по режиссеру;
  14. -самый популярный фильм в жанре;
  15. -показ всех записей, добавление, удаление записей.
  16. Емкость video_store - 100 фильмов, при невозможности добавить очередной фильм, необходимо вывести диагностическое сообщение об этом.
  17. */
  18.  
  19.  
  20. #define _CRT_SECURE_NO_WARNINGS
  21.  
  22. #include <iostream>
  23. #include <cstring>
  24.  
  25. using namespace std;
  26.  
  27. struct film {
  28.     char name[100];
  29.     char producer[100];
  30.     char genre[20];
  31.     int rating;
  32. };
  33.  
  34. class video_store {
  35.  
  36. public:
  37.  
  38.     video_store();
  39.  
  40.     video_store(int max_number);
  41.  
  42.     video_store(film arr[], int arr_size);
  43.  
  44.     void ShowAllMovies();
  45.  
  46.     void AddMovie(const char name[], const char producer[], const char genre[], const int rating);
  47.  
  48.     void DelMovie(const char name[]);
  49.  
  50.     void FindMovieName(const char name[]);
  51.  
  52.     void FindMovieProducer(const char producer[];
  53.  
  54.     void FindMovieGenre(const char genre[]);
  55.  
  56.     void FindMovieMostPopular(const char genre[]);
  57.  
  58.     ~video_store();
  59.  
  60.  
  61. private:
  62.     film** store;
  63.     int films_number;
  64.     int max_films_number;
  65.  
  66. };
  67.  
  68.  
  69. int main() { // для проверки функционала
  70.  
  71.     video_store my_store; // для проверки конструктора по умолчанию
  72.  
  73.     //video_store my_store(50); // для проверки конструктора для одного параметра
  74.  
  75.     //film some_films[]{ {"Pirates of the Caribbean", "Gore Verbinski", "fantasy", 5}, {"Harry Potter", "Chris Columbus", "fantasy", 4}, {"Diamond Hand", "Leonid Gaidai", "comedy", 5} }; // для проверки конструктора для двух параметров (закомментировать первые три добавления фильма)
  76.  
  77.     //video_store my_store(some_films, 3); // для проверки конструктора для двух параметров
  78.  
  79.     my_store.AddMovie("Pirates of the Caribbean", "Gore Verbinski", "fantasy", 5);
  80.     my_store.AddMovie("Harry Potter", "Chris Columbus", "fantasy", 4);
  81.     my_store.AddMovie("Diamond Hand", "Leonid Gaidai", "comedy", 5);
  82.     my_store.AddMovie("Ivan Vasilyevich is changing his profession", "Leonid Gaidai", "comedy", 4);
  83.     my_store.AddMovie("Sherlock Holmes", "Guy Ritchie", "detective", 5);
  84.     my_store.AddMovie("Lock, Stock and Two Smoking Barrels", "Guy Ritchie", "comedy", 5);
  85.  
  86.     my_store.ShowAllMovies();
  87.  
  88.     my_store.DelMovie("Pirates of the Caribbean");
  89.  
  90.     my_store.ShowAllMovies();
  91.  
  92.     my_store.AddMovie("Pirates of the Caribbean", "Gore Verbinski", "fantasy", 5);
  93.  
  94.     my_store.FindMovieName("Diamond Hand");
  95.  
  96.     my_store.FindMovieProducer("Guy Ritchie");
  97.  
  98.     my_store.FindMovieGenre("fantasy");
  99.  
  100.     my_store.FindMovieMostPopular("fantasy");
  101. }
Advertisement
Add Comment
Please, Sign In to add comment