Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include <clocale>
- #include <string.h>
- using namespace std;
- struct film {
- char name[100];
- char producer[100];
- char genre[20];
- int rating;
- };
- class video_store {
- public:
- video_store() {
- store = new film* [100];
- films_number = 0;
- max_films_number = 100;
- };
- video_store(int max_number) {
- store = new film* [max_number];
- films_number = 0;
- max_films_number = max_number;
- };
- video_store(film arr[], int arr_size) {
- store = new film * [100];
- for (int i = 0; i < arr_size; i++) {
- AddMovie(arr[i].name, arr[i].producer, arr[i].genre, arr[i].rating);
- }
- films_number = arr_size;
- max_films_number = 100;
- };
- void ShowAllMovies() {
- cout << " По вашему запросу найдено: " << endl;
- if (films_number == 0) {
- cout << "Нет фильмов";
- }
- for (int i = 0; i < films_number; i++) {
- cout << '\"' << store[i]->name << "\", producer: " << store[i]->producer << ", genre: " << store[i]->genre << ", rating: " << store[i]->rating << endl;
- }
- cout << endl;
- };
- void AddMovie(const char name[], const char producer[], const char genre[], const int rating) {
- if (films_number == max_films_number) {
- cout << "Фильм не может быть добавлен" << endl;
- return;
- }
- store[films_number] = new film{};
- strcpy(store[films_number]->name, name);
- strcpy(store[films_number]->producer, producer);
- strcpy(store[films_number]->genre, genre);
- store[films_number]->rating = rating;
- films_number++;
- };
- void DelMovie(const char name[]) {
- for (int i = 0; i < films_number; i++) {
- if (!strcmp(store[i]->name, name)) {
- delete store[i];
- for (int j = i; j < films_number - 1; j++) {
- store[j] = store[j + 1];
- }
- store[films_number - 1] = nullptr;
- films_number--;
- }
- }
- };
- void FindMovieName(const char name[]) {
- cout << " По вашему запросу найдено: " << endl;
- for (int i = 0; i < films_number; i++) {
- if (!strcmp(store[i]->name, name)) {
- cout << '\"' << store[i]->name << "\", producer: " << store[i]->producer << ", genre: " << store[i]->genre << ", rating: " << store[i]->rating << endl;
- }
- }
- cout << endl;
- };
- void FindMovieProducer(const char producer[]) {
- cout << " По вашему запросу найдено: " << endl;
- for (int i = 0; i < films_number; i++) {
- if (!strcmp(store[i]->producer, producer)) {
- cout << '\"' << store[i]->name << "\", producer: " << store[i]->producer << ", genre: " << store[i]->genre << ", rating: " << store[i]->rating << endl;
- }
- }
- cout << endl;
- };
- void FindMovieGenre(const char genre[]) {
- cout << " По вашему запросу найдено: " << endl;
- for (int i = 0; i < films_number; i++) {
- if (!strcmp(store[i]->genre, genre)) {
- cout << '\"' << store[i]->name << "\", producer: " << store[i]->producer << ", genre: " << store[i]->genre << ", rating: " << store[i]->rating << endl;
- }
- }
- cout << endl;
- };
- void FindMovieMostPopular(const char genre[]) {
- cout << " По вашему запросу найдено: " << endl;
- int index = -1;
- int rating = 0;
- for (int i = 0; i < films_number; i++) {
- if (!strcmp(store[i]->genre, genre)) {
- if (store[i]->rating > rating) {
- index = i;
- rating = store[i]->rating;
- }
- }
- }
- if (index != -1) {
- cout << '\"' << store[index]->name << "\", producer: " << store[index]->producer << ", genre: " << store[index]->genre << ", rating: " << store[index]->rating << endl;
- }
- cout << endl;
- };
- private:
- film** store;
- int films_number;
- int max_films_number;
- };
- int main() {
- setlocale(LC_ALL, "Russian");
- video_store my_store;
- my_store.AddMovie("Pirates of the Caribbean", "Gore Verbinski", "fantasy", 5);
- my_store.AddMovie("Harry Potter", "Chris Columbus", "fantasy", 4);
- my_store.AddMovie("Diamond Hand", "Leonid Gaidai", "comedy", 5);
- my_store.AddMovie("Ivan Vasilyevich is changing his profession", "Leonid Gaidai", "comedy", 4);
- my_store.AddMovie("Sherlock Holmes", "Guy Ritchie", "detective", 5);
- my_store.AddMovie("Lock, Stock and Two Smoking Barrels", "Guy Ritchie", "comedy", 5);
- my_store.ShowAllMovies();
- my_store.DelMovie("Pirates of the Caribbean");
- my_store.ShowAllMovies();
- my_store.AddMovie("Pirates of the Caribbean", "Gore Verbinski", "fantasy", 5);
- my_store.FindMovieName("Diamond Hand");
- my_store.FindMovieProducer("Guy Ritchie");
- my_store.FindMovieGenre("fantasy");
- my_store.FindMovieMostPopular("fantasy");
- }
Advertisement
Add Comment
Please, Sign In to add comment