Тема: допоможіть(С++(стрічки))
ось все завдання
▼Прихований текст
Розробіть програму «Бібліотека». Створіть структуру «Книга» (назва, автор, видавництво, жанр). Створіть масив з декількох книг. Реалізуйте такі можливості:
Друк всіх книг.
Пошук книги по автору.
Пошук книги по назві
Редагування книги(пошук по назві і перезаписування нових даних).
Сортування масиву по назві книг.
Сортування масиву по автору.
Сортування масиву по видавництву.
Добавлення нової книжки.
Видалення книжки з певною назвою.
ось завдання яке зараз виконую
▼Прихований текст
Сортування масиву по назві книг.
ось весь код
▼Прихований текст
#include <iostream>
using namespace std;
struct Book {
char name[100];
char avtor[100];
char vudavnuztvo[100];
char zanr[100];
};
void set(Book&book);
void print(Book&book);
void posch_avt(Book&book, int n, char avtor);
void posch_name(Book&book, int n, char name);
void red(Book&book, int n, char name);
void sort(Book&book, int n);
void main() {
int n = 3;
Book* book = new Book[n];
for (int i = 0; i < n; i++) {
set(book[i]);
}
int ch = 1;
char name[100];
for (; ch > 0;) {
switch (ch) {
case 1:
for (int i = 0; i < n; i++) {
print(book[i]);
}
break;
case 2:
char avtor[100];
cout << "Enter avtor: ";
gets_s(avtor);
for (int i = 0; i < n; i++) {
posch_avt(book[i], n, *avtor);
}
break;
case 3:
cout << "Enter name: ";
gets_s(name);
for (int i = 0; i < n; i++) {
posch_name(book[i], n, *name);
}
break;
case 4:
cout << "Enter name: ";
gets_s(name);
for (int i = 0; i < n; i++) {
red(book[i], n, *name);
}
break;
case 5:
sort(*book, n);
break;
}
cout << "Enter choise: ";
(cin >> ch).get();
}
system("pause");
}
void sort(Book&book, int n) {
char tmp[100];
int prov;
for (int i = 0; i < n; i++) {
prov = strcmp(book[i].name, book[i + 1].name);
}
}
void red(Book&book, int n, char name) {
int prov = strcmp(book.name, &name);
if (prov == 0) {
set(book);
}
}
void posch_name(Book&book, int n, char name) {
int prov = strcmp(book.name, &name);
if (prov == 0) {
print(book);
}
}
void posch_avt(Book&book, int n, char avtor) {
int prov = strcmp(book.avtor, &avtor);
if (prov == 0) {
print(book);
}
}
void print(Book&book) {
puts(book.name);
puts(book.avtor);
puts(book.vudavnuztvo);
puts(book.zanr);
}
void set(Book&book) {
gets_s(book.name);
gets_s(book.avtor);
gets_s(book.vudavnuztvo);
gets_s(book.zanr);
}
ось код з помилкою
▼Прихований текст
void sort(Book&book, int n) {
char tmp[100];
int prov;
for (int i = 0; i < n; i++) {
prov = strcmp(book[i].name, book[i + 1].name);
}
}
ось помилки
бінарний "[": "Book" не визначає цей оператор або перетворення до типу прийнятно до вбудованого оператору ряд 66
функція не приймає 1 аргументів ряд 66