Срочно Нужна Помощь

paNDa

New Member
30.11.2014
2
0
#1
нужно построить класс
Дані відомості про 15 книг. Відомості про кожну з книг - це прізвище автора, назва книги і рік видання. Визначити кількість книг даного автора, виданих у період з 1990 по 2004 р.

Добавлено:
#include<iostream>
#include<conio.h>
#include<string.h>
#pragma warning(disable:4996)
using namespace std;

class Books{
public:
Books();
Books(char*, char*, int);
Books(Books&);

void setBooks(char*, char*, int);
void setBooks();
void printBooks();
char *getavtor(){ return avtor; }
int getyear(){ return year; }
char *getnazv(){ return nazv; }
void setavtor(char* m){ strcpy(avtor, m); }
void setyear(int n){ year = n; }
void setnazv(char* f){ strcpy(nazv, f); }
friend void find(Books, int);
private:
char avtor[20];
int year;
char nazv[20];
};


Books::Books()
{
year = 0; strcpy(avtor, "no avtor"); strcpy(nazv, "no nazv");
}
Books::Books(char* m,char *f ,int n )
{
year = n; strcpy(avtor, m); strcpy(nazv, f);
}
Books::Books(Books&a)
{
year = a.year; strcpy(avtor, a.avtor); strcpy(nazv,
a.nazv);
}
void Books::setBooks(char* m, char *f,int n)
{
year = n; strcpy(avtor, m); strcpy(nazv, f);
}
void Books::setBooks()
{
cout << "Vvedite avtora knige> "; cin >> avtor;
cout << "Vvedite god izdaniya knigi (cifry (0-9))> "; cin >> year;
cout << "nazvanie knigio> "; cin >> nazv;
}
void Books::printBooks()
{
cout << "avtor knige: " << avtor << endl
<< "god izdaniya: " << year << endl
<< ": " << nazv << endl;
}
void find(Books a, int n)
{
if (n == a.year) cout << "\nMarka:" << a.avtor << "\nnazv:"<<a.nazv;

}
int main()
{
setlocale(0, "rus");
Books Alies[2];
for (int i = 0; i< 10; i++)Alies.setBooks();
for (int i = 0; i< 10; i++)Alies.printBooks();

int n, c;
do{
cout << "\n Vvesti avtora: ";
cin >> n;
for (int i = 0; i< 2; i++)find(Alies, n);
cout << "\n Vvesti povtorno?(0 - Exit, 1-9 - Da) :";
cin >> c;
} while (c != 0);
getch();
return 0;
}

Добавлено: и выбивает такие ошибки
Ошибка 1 error C2511: Books::Books(char *,int,char *): перегруженная функция-член не найдена в "Books" c:\users\саша\documents\visual studio 2013\projects\лр5\лр5\books.cpp 36 1 ЛР5
Ошибка 2 error C2597: недопустимая ссылка на нестатический член "Books::year" c:\users\саша\documents\visual studio 2013\projects\лр5\лр5\books.cpp 37 1 ЛР5
Ошибка 3 error C2597: недопустимая ссылка на нестатический член "Books::avtor" c:\users\саша\documents\visual studio 2013\projects\лр5\лр5\books.cpp 37 1 ЛР5
Ошибка 4 error C2597: недопустимая ссылка на нестатический член "Books::nazv" c:\users\саша\documents\visual studio 2013\projects\лр5\лр5\books.cpp 37 1 ЛР5
Ошибка 5 error C2511: void Books::setBooks(int,char *,char *): перегруженная функция-член не найдена в "Books" c:\users\саша\documents\visual studio 2013\projects\лр5\лр5\books.cpp 45 1 ЛР5
Ошибка 6 error C2597: недопустимая ссылка на нестатический член "Books::year" c:\users\саша\documents\visual studio 2013\projects\лр5\лр5\books.cpp 46 1 ЛР5
Ошибка 7 error C2597: недопустимая ссылка на нестатический член "Books::avtor" c:\users\саша\documents\visual studio 2013\projects\лр5\лр5\books.cpp 46 1 ЛР5
Ошибка 8 error C2597: недопустимая ссылка на нестатический член "Books::nazv" c:\users\саша\documents\visual studio 2013\projects\лр5\лр5\books.cpp 46 1 ЛР5
 

Whatka

Well-Known Member
09.10.2011
428
4
24
Минск
#2
C++:
//
#include <iostream> 
#include <vector>

using namespace std;

struct Book
{
char author[20];
char book[20];
int year;
};

class Library{
vector<Book> collection;
public:
Library()
{

}
bool Exists(Book book)
{
return false;
}
void AddBook(Book newBook)
{
if (!Exists(newBook))
{
collection.push_back(newBook);
}
}
void ShowAllBooks()
{
for (int i = 0; i < collection.size(); i++)
{
cout << collection[i].author << " ";
cout << collection[i].book << " ";
cout << collection[i].year << endl;
}
}
void ShowAllWritersBooksInPeriod(char* writerName, int left, int right)
{
for (int i = 0; i < collection.size(); i++)
{
if (strcmp(writerName, collection[i].author) == 0)
{
if (collection[i].year >= left && collection[i].year <= right)
{
cout << collection[i].author << " ";
cout << collection[i].book << " ";
cout << collection[i].year << endl;
}

}
}
}
};
//
 

paNDa

New Member
30.11.2014
2
0
#3
спасибо конечно а можно просто чуть исправить мой код и добавить деструктор туда?
а то в твоем немного не доганяю
 

Whatka

Well-Known Member
09.10.2011
428
4
24
Минск
#4
ты спрашивай,что не понятно - я объясню.

p.s.
если бы у меня было желание и время разбирать и отлаживать твой код,
я бы так и сделал.