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 film_name[100]{};
- char director[30]{};
- char genre[10]{};
- int rating = 0;
- };
- struct video_store {
- film store[100]{};
- int films_number = 0;
- int max_film_number = 100;
- };
- void AddFilm(video_store& my_store, const char film_name[], const char director[], const char genre[], const int rating) {
- if (my_store.films_number == 100) {
- cout << "Фильм не может быть добавлен" << endl;
- return;
- }
- strcpy(my_store.store[my_store.films_number].film_name, film_name);
- strcpy(my_store.store[my_store.films_number].director, director);
- strcpy(my_store.store[my_store.films_number].genre, genre);
- my_store.store[my_store.films_number].rating = rating;
- my_store.films_number++;
- };
- void ShowAllFilms(video_store& my_store) {
- cout << "Все фильмы магазина" << endl;
- for (int i = 0; i < my_store.films_number; i++) {
- cout << '\"' << my_store.store[i].film_name << "\",director: " << my_store.store[i].director << ",genre: " << my_store.store[i].genre << ",rating: " << my_store.store[i].rating << endl;
- }
- cout << endl;
- };
- void DelFilm(video_store& my_store) {
- char name_u[100]{};
- cout << "Введите название фильма для удаления" << endl;
- cin >> name_u;
- for (int i = 0; i < my_store.films_number; i++) {
- if (!strcmp(my_store.store[i].film_name, name_u)) {
- //delete my_store.store[i].film_name; // у вас массив на стеке, у вас нет указателей, просто уберите эту строку (и ниже тоже)
- for (int j = i; j < my_store.films_number - 1; j++) {
- my_store.store[j] = my_store.store[j + 1];
- }
- //my_store[films_number - 1] = nullptr; // у вас массив на стеке, у вас нет указателей
- my_store.films_number--;
- }
- }
- };
- void DelFilm(video_store& my_store, const char film_name[]) {
- for (int i = 0; i < my_store.films_number; i++) {
- if (!strcmp(my_store.store[i].film_name, film_name)) {
- //delete(my_store.store[i].film_name); // у вас массив на стеке, у вас нет указателей
- for (int j = i; j < my_store.films_number - 1; j++) {
- my_store.store[j + 1] = my_store.store[j];
- }
- //my_store.films_number - 1 = nullptr; // у вас массив на стеке, у вас нет указателей
- my_store.films_number--;
- }
- }
- };
- void FindFilmName(video_store& my_store, const char film_name[]) {
- cout << "По вашему запросу найдено: " << endl;
- for (int i = 0; i < my_store.films_number; i++) {
- if (!strcmp(my_store.store[i].film_name, film_name)) {
- cout << '\"' << my_store.store[i].film_name << " " << "\", director: " << my_store.store[i].director << ", genre: " << my_store.store[i].genre << ", rating: " << my_store.store[i].rating << endl;
- }
- }
- cout << endl;
- };
- void FindFilmDirector(video_store& my_store, const char director[]) {
- cout << "По вашему запросу найдено" << endl;
- for (int i = 0; i = my_store.films_number; i++) { // обратите внимание на знак в условии окончания цикла, вы запустили бесконечный цикл, программа будет выполнять его без конца
- if (!strcmp(my_store.store[i].director, director)) {
- cout << '\"' << my_store.store[i].film_name << " " << "\", director: " << my_store.store[i].director << ", genre: " << my_store.store[i].genre << ", rating: " << my_store.store[i].rating << endl;
- }
- }
- cout << endl;
- };
- void FindFilmRating(video_store& my_store, const char genre[]) {
- cout << "По вашему запросу найдено: " << endl;
- int index = -1;
- int rating = 0;
- for (int i = 0; i < my_store.films_number; i++) {
- if (!strcmp(my_store.store[i].genre, genre)) {
- if (my_store.store[i].rating > rating) {
- index = i;
- rating = my_store.store[i].rating;
- }
- }
- }
- if (index != -1) {
- cout << '\"' << my_store.store[index].film_name << "\", director: " << my_store.store[index].director << ", genre: " << my_store.store[index].genre << ", raiting: " << my_store.store[index].rating << endl;
- }
- cout << endl;
- };
- int main() {
- setlocale(LC_ALL, "Russian");
- video_store my_store;
- AddFilm(my_store, "Up", "Bob Piterson", "family", 7);
- AddFilm(my_store, "Star Wars", "George Lukas", "fantazy", 8);
- AddFilm(my_store, "Hitch", "Andy Tennat", "family", 6);
- AddFilm(my_store, "Guardians of Galaxy", " James Gann", "fantazy", 5);
- AddFilm(my_store, "Zootopia", "Bairon Hovard", "family", 6);
- ShowAllFilms(my_store);
- //DelFilm(my_store);
- ShowAllFilms(my_store);
- FindFilmName(my_store, "Up");
- FindFilmDirector(my_store, "Bob Piterson");
- FindFilmRating(my_store, "family");
- }
Advertisement
Add Comment
Please, Sign In to add comment