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;
- };
- //вы собираетесь передавать в функцию строки а передаете символы (вот так обозначается строка const char[] director, а вот так символ: const char director)
- 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);
- strcpy(my_store.store[my_store.films_number].rating, rating); // rating это int, для него не нужна функция strcpy
- 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 << my_store.store[i].director << my_store.store[i].genre << my_store.store[i].rating << endl;
- }
- cout << endl;
- }
- void DelFilm(video_store& my_store, const char film_name) { // то же что и в строке 24, вместо строки передаете отдельный char
- char name_u[100];
- cout << "Введите название фильма для удаления" << endl;
- cin >> name_u; // если вы передали в функцию вторым параметром название фильма для удаления, то зачем вы здесь его запрашиваете? (либо запрашиваем, либо передаем параметром функции)
- for (int i = 0; i < my_store.films_number; i++) {
- if (!strcpy(my_store.store[i].film_name, name_u)) {
- delete my_store.store[i];
- 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--;
- }
- }
- }
- int main() {
- setlocale(LC_ALL, "Russian");
- film film_arhiv[5]; // для чего вы создаете массив из пяти структур film
- video_store my_store[100]; // и здесь зачем создавать массив магазинов если нам нужен один (уберите [100] чтобы это был отдельный store?
- film film_arhiv[5]{ // для чего вам заполнять отдельный массив фильмов вместо my_store?
- { "Titanic", "Jaims Kameron", "melodrama", 9 } ,
- { "Gone with the wind", "Victor Fleming","melodrama", 8 },
- { "Pretty Woman", "Garry Marshall", "melodrama", 7 },
- { "Avatar", "Jaims Kameron","fantazy", 9},
- { "Paddington", "Pol King", "family", 5}
- };
- for (int i = 0; i < 2 ; i++) {
- cout << film_arhiv[i].film_name << film_arhiv[i].director << film_arhiv[i].genre << film_arhiv[i].rating << endl;
- }
- cout << endl;
- video_store.AddFilm("Up", "Bob Piterson", "family", 7); // video_store это тип данных а не название конкретной структуры
- video_store.AddFilm("Star Wars", "George Lukas", "fantazy", 8);
- video_store.AddFilm("Hitch", "Andy Tennat", "family", 6);
- video_store.AddFilm("Guardians of Galaxy", " James Gann", "fantazy", 5);
- video_store.AddFilm("Zootopia", "Bairon Hovard", "family", 6);
- video_store.ShowAllFilms(my_store);
- video_store.DelFilm(my_store,my_store.store.film_name); // вторым параметром нужно передавать строку, например "Up"
- }
Advertisement
Add Comment
Please, Sign In to add comment