Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stack>
- using namespace std;
- struct Book {
- string udc = "";
- string author = "";
- string title = "";
- int year = -1;
- int copies = -1;
- };
- class Library {
- private:
- stack <Book> shelves;
- public:
- // Начальное формирование данных о книгах
- void generateData() {
- cout << "Поля заполняются без пробелов!\n";
- int n;
- do {
- cout << "\nЧисло книг в библиотеке: ";
- cin >> n;
- } while (n <= 0);
- for (int i = 0; i < n; i++) {
- Book tmpBook;
- cout << "\nКнига №" << i + 1 << ":\n";
- cout << "УДК: ";
- do {
- cin >> tmpBook.udc;
- } while (tmpBook.udc.empty());
- cout << "Автор: ";
- do {
- cin >> tmpBook.author;
- } while (tmpBook.author.empty());
- cout << "Название: ";
- do {
- cin >> tmpBook.title;
- } while (tmpBook.title.empty());
- cout << "Год издания: ";
- do {
- cin >> tmpBook.year;
- } while (tmpBook.year < 0);
- cout << "Количество экземпляров: ";
- do {
- cin >> tmpBook.copies;
- } while (tmpBook.copies < 0);
- shelves.push(tmpBook);
- }
- }
- // Добавление книги в конец
- void addBook() {
- Book tmpBook;
- cout << "\nНовая книга: ";
- cout << "\nУДК: ";
- do {
- cin >> tmpBook.udc;
- } while (tmpBook.udc.empty());
- cout << "Автор: ";
- do {
- cin >> tmpBook.author;
- } while (tmpBook.author.empty());
- cout << "Название: ";
- do {
- cin >> tmpBook.title;
- } while (tmpBook.title.empty());
- cout << "Год издания: ";
- do {
- cin >> tmpBook.year;
- } while (tmpBook.year < 0);
- cout << "Количество экземпляров: ";
- do {
- cin >> tmpBook.copies;
- } while (tmpBook.copies < 0);
- shelves.push(tmpBook);
- }
- // Удаление последней книги
- void deleteBook() {
- shelves.pop();
- }
- // Выдача последней книги
- void takeBook() {
- if (shelves.top().copies > 0) {
- shelves.top().copies--;
- }
- else {
- cout << "\nВсе экземпляры на руках";
- }
- }
- // Возврат последней книги
- void returnBook() {
- shelves.top().copies++;
- }
- // Сведения о последней доступной книге
- void infoProvision() {
- cout << "\n\nЧисло книг в библиотеке: " << shelves.size();
- cout << "\n\nПоследняя книга:";
- cout << "\nУДК: " << shelves.top().udc;
- cout << "\nАвтор: " << shelves.top().author;
- cout << "\nНазвание: " << shelves.top().title;
- cout << "\nГод издания: " << shelves.top().year;
- cout << "\nКоличество экземпляров: " << shelves.top().copies;
- }
- };
- int main() {
- // Ниже - пример работы с классом Library
- Library myLibrary;
- myLibrary.generateData();
- myLibrary.addBook();
- myLibrary.infoProvision();
- myLibrary.deleteBook();
- myLibrary.infoProvision();
- myLibrary.takeBook();
- myLibrary.infoProvision();
- myLibrary.returnBook();
- myLibrary.infoProvision();
- return 0;
- }
Add Comment
Please, Sign In to add comment