Другие языки программирования и технологии
Создать класс иметирующую следующу ситуацию в 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;
}
#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;
}
Или группа авторов. Или это сборник.
А у автора еще существует фамилия, имя, а иногда и отчество
А у автора еще существует фамилия, имя, а иногда и отчество
Нужно создать классы книги и журнала. Тогда в классе библиотеки будут два списка из классов книг и журналов
Похожие вопросы
- Создать класс типа круг. C++
- Как создать современную 2D игру на языке C#
- Нужно создать класс треугольник. Задание небольшое. Очень прошу помочь, кому не сложно
- Как создать обозреватель решений в Microsoft Visual C# Express 2010?
- visual c++(form project) подскажите где там можно создать и описать свой класс? что то не выходит ((
- Как правильно создать и использовать radiobutton-ы на win api c++ ?Можно ли из программы узнать версию Windows ?
- программно создать объект в C#
- Есть ли ошибка? Может ли возникнуть? И вообще приемлимо ли? C++ классы
- Visual Studio 2010 C++: Как создать оконное приложение?
- Создать список работников предприятия C++