
Вопрос задан 19.07.2023 в 09:12.
Предмет Информатика.
Спрашивает Кособуцький Микола.
ООЧЕНЬ СРОЧНО!!!! С++!!!1. Написать структуру «Домашняя библиотека». Структура должна содержать
не менее 5 полей (автор, название, жанр, издательство, год выпуска, т.п.). Cоздать массив структур (например, с размером 10), заполнить его данными. • Реализовать поиск книги по названию, • по автору, учитывая, что может быть несколько книг одного автора• вывод на экран данных• предусмотреть возможность редактирования отдельных полей

Ответы на вопрос

Отвечает Бурий Тарас.
c++
#include<iostream>
const int n=10;
struct Library{
char author;
char name;
char genre;
int publish;
int date;
} List[n];
int main(void) {
int i;
for(i=0; i<n;i++) {
cin>>List[n].author>>List[n].name>>List[n].genre>>List[n].publish>>List[n].weight;
}
}



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Конечно! Ниже представлена структура "Домашняя библиотека" на языке C++ с реализацией функций поиска, вывода данных и редактирования полей:
cpp#include <iostream>
#include <string>
const int MAX_BOOKS = 10;
struct Book {
std::string author;
std::string title;
std::string genre;
std::string publisher;
int year;
};
// Функция для поиска книги по названию
void searchByTitle(Book library[], int size, std::string searchTitle) {
for (int i = 0; i < size; ++i) {
if (library[i].title == searchTitle) {
std::cout << "Найдена книга:\n";
std::cout << "Автор: " << library[i].author << "\n";
std::cout << "Название: " << library[i].title << "\n";
std::cout << "Жанр: " << library[i].genre << "\n";
std::cout << "Издательство: " << library[i].publisher << "\n";
std::cout << "Год выпуска: " << library[i].year << "\n";
return;
}
}
std::cout << "Книга с названием '" << searchTitle << "' не найдена.\n";
}
// Функция для поиска книг по автору
void searchByAuthor(Book library[], int size, std::string searchAuthor) {
for (int i = 0; i < size; ++i) {
if (library[i].author == searchAuthor) {
std::cout << "Найдена книга автора " << searchAuthor << ":\n";
std::cout << "Название: " << library[i].title << "\n";
std::cout << "Жанр: " << library[i].genre << "\n";
std::cout << "Издательство: " << library[i].publisher << "\n";
std::cout << "Год выпуска: " << library[i].year << "\n";
}
}
}
// Функция для вывода данных всех книг в библиотеке
void displayLibrary(Book library[], int size) {
std::cout << "Все книги в библиотеке:\n";
for (int i = 0; i < size; ++i) {
std::cout << "Автор: " << library[i].author << "\n";
std::cout << "Название: " << library[i].title << "\n";
std::cout << "Жанр: " << library[i].genre << "\n";
std::cout << "Издательство: " << library[i].publisher << "\n";
std::cout << "Год выпуска: " << library[i].year << "\n";
std::cout << "----------------------------------\n";
}
}
// Функция для редактирования полей книги
void editBook(Book& book) {
std::cout << "Введите новые данные для книги:\n";
std::cout << "Автор: ";
std::cin.ignore();
std::getline(std::cin, book.author);
std::cout << "Название: ";
std::getline(std::cin, book.title);
std::cout << "Жанр: ";
std::getline(std::cin, book.genre);
std::cout << "Издательство: ";
std::getline(std::cin, book.publisher);
std::cout << "Год выпуска: ";
std::cin >> book.year;
}
int main() {
Book library[MAX_BOOKS];
// Пример заполнения данных в массиве структур
library[0] = {"Айзек Азимов", "Я, робот", "Научная фантастика", "Эксмо", 1950};
library[1] = {"Дж. Р. Р. Толкин", "Властелин колец", "Фэнтези", "Азбука", 1954};
library[2] = {"Грегори Дэвид Робертс", "Шантарам", "Приключения", "Эксмо", 2003};
library[3] = {"Маргарет Митчелл", "Унесенные ветром", "Роман", "АСТ", 1936};
library[4] = {"Дан Браун", "Ангелы и демоны", "Триллер", "Эксмо", 2000};
int choice;
do {
std::cout << "Выберите действие:\n";
std::cout << "1. Поиск книги по названию\n";
std::cout << "2. Поиск книг по автору\n";
std::cout << "3. Вывод всех данных\n";
std::cout << "4. Редактирование данных\n";
std::cout << "0. Выход\n";
std::cin >> choice;
switch (choice) {
case 1: {
std::cout << "Введите название книги для поиска: ";
std::string searchTitle;
std::cin.ignore();
std::getline(std::cin, searchTitle);
searchByTitle(library, MAX_BOOKS, searchTitle);
break;
}
case 2: {
std::cout << "Введите автора для поиска: ";
std::string searchAuthor;
std::cin.ignore();
std::getline(std::cin, searchAuthor);
searchByAuthor(library, MAX_BOOKS, searchAuthor);
break;
}
case 3: {
displayLibrary(library, MAX_BOOKS);
break;
}
case 4: {
std::cout << "Введите номер книги для редактирования (от 0 до " << MAX_BOOKS - 1 << "): ";
int bookIndex;
std::cin >> bookIndex;
if (bookIndex >= 0 && bookIndex < MAX_BOOKS) {
editBook(library[bookIndex]);
} else {
std::cout << "Некорректный номер книги.\n";
}
break;
}
case 0: {
std::cout << "Выход.\n";
break;
}
default: {
std::cout << "Неверный выбор.\n";
break;
}


Похожие вопросы

Информатика 61

Информатика 262
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili