Другие языки программирования и технологии

Создать класс иметирующую следующу ситуацию в c++

Библиотека (главный объект) имеет номер общегородской, адрес по которому она находиться и статус (детская, городская, обломтная...). В библиотеке есть N книг или журналов. Для журнала должно быть известно название журнала, год и месяц издания. Для книги по мимо этого существует ещё и автор.
#include <iostream>
#include <windows.h>
#include <string>
#include <vector>
#include <sstream>

using namespace std;

class Book
{
public:
string name;
unsigned year;
unsigned month;
string author;
};

class Journal
{
public:
string name;
unsigned year;
unsigned month;
};

class Library
{
public:
unsigned number;
string address;
string status;
vector<Book> list_books;
vector<Journal> list_journals;
};

template<class T>
void show(const T &v)
{
auto n = 0u;
for (const auto &t : v)
{
cout << n++ << " " << t.name << endl;
}
cout << endl;
}

int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
system("color 0A");

vector<Book> vb;
vector<Journal> vj;

cout << "Укажите сколько книг желаете добавить ";
unsigned cnt;
cin >> cnt;
for (; cnt--> 0;)
{
Book temp;
cout << "Название ";
cin.get();
getline(cin, temp.name);
cout << "Год издания ";
cin >> temp.year;
cout << "Месяц издания ";
cin >> temp.month;
cout << "Автор ";
cin.get();
getline(cin, temp.author);
vb.push_back(temp);
}

cout << "Укажите сколько журналов желаете добавить ";
cin >> cnt;
for (; cnt--> 0;)
{
Journal temp;
cout << "Название ";
cin.get();
getline(cin, temp.name);
cout << "Год издания ";
cin >> temp.year;
cout << "Месяц издания ";
cin >> temp.month;
vj.push_back(temp);
}

cout << "Укажите сколько библиотек желаете добавить ";
cin >> cnt;
for (; cnt--> 0;)
{
Library temp;
cout << "Номер ";
cin >> temp.number;
cout << "Адрес ";
cin >> temp.address;
cout << "Статус ";
cin >> temp.status;
cout << "Укажите номера книг, находящихся в этой библиотеке через пробел в одну строку" << endl;
show(vb);
cin.get();
string s;
getline(cin, s);
stringstream ss(s);
for (; ss;)
{
auto ind = 0u;
ss >> ind;
temp.list_books.push_back(vb[ind]);
}
cout << "Укажите номера журналов, находящихся в этой библиотеке через пробел в одну строку" << endl;
show(vj);
cin.get();
getline(cin, s);
stringstream ss2(s);
for (; ss2;)
{
auto ind = 0u;
ss2 >> ind;
temp.list_journals.push_back(vj[ind]);
}
}

system("pause");
return 0;
}
Бехруз Шарипов
Бехруз Шарипов
8 552
Лучший ответ
Или группа авторов. Или это сборник.
А у автора еще существует фамилия, имя, а иногда и отчество
Артур Калаев
Артур Калаев
25 516
Нужно создать классы книги и журнала. Тогда в классе библиотеки будут два списка из классов книг и журналов
Жан Зайцев
Жан Зайцев
8 860