Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Описать класс "домашняя библеотека". Предусмотреть возможность работы с произвольным числос книг, поиска книг по какому-либо
- //признаку(например, по автору или году издания), добавление книг в библеотеку, удаления книг из неё, сортировка книг по разным полям.
- //Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса.
- //
- # include <iostream>
- #include <conio.h>
- #include <string.h>
- #include <stdio.h>
- using namespace std;
- struct mas
- {
- char name[50];
- char autor[30];
- int year;
- };
- class HomeLib
- {
- private:
- mas book;
- public:
- void in(HomeLib[],int&); //Ввод
- void choise(HomeLib[],int&); //Выбор
- void search(HomeLib[],int&); //Поиск
- void del(HomeLib[],int&); //Удаление
- void add(HomeLib[],int&); //Добавление
- void display(HomeLib[],int&); //Вывод
- };
- void HomeLib::in(HomeLib a[], int&x)
- {
- for(int i=0;i<x;i++)
- {
- cout<<i+1<<". ";
- cout<<"Название: ";
- cin>>a[i].book.name;
- cout<<" Автор: ";
- cin>>a[i].book.autor;
- cout<<" Год издания: ";
- cin>>a[i].book.year;
- }
- getch();
- a[x].choise(a,x);
- }
- void HomeLib::choise(HomeLib a[],int&x)
- {
- int chois=0;
- do
- {
- system("cls");
- cout<<"1. Поиск книг."<<endl<<"2. Удаление книги."<<endl<<"3. Добавление книги."<<endl<<"4. Показать библеотеку."<<endl<<"5. Выход."<<endl<<"Ваш выбор: ";
- cin>>chois;
- system("cls");
- if(chois==1)
- a[x].search(a,x);
- if(chois==2)
- a[x].del(a,x);
- if(chois==3)
- a[x].add(a,x);
- if(chois==4)
- a[x].display(a,x);
- }
- while(chois!=5);
- }
- void HomeLib::search(HomeLib a[],int&x)
- {
- int p=0;
- int year=0;
- char name[20];
- char autor[20];
- cout<<"1. Поиск по названию. "<<endl<<"2. Поиск по автору."<<endl<<"3. Поиск по году издания."<<endl<<"Ваш выбор: ";
- cin>>p;
- system("cls");
- if(p==1)
- {
- int f=0;
- cout<<"Введите название: ";
- cin>>name;
- for(int i=0;i<x;i++)
- {
- if(strcmp(name,a[i].book.name)==0)
- {
- cout<< f+1 <<a[i].book.name<<", "<<a[i].book.autor<<", "<<a[i].book.year<<endl;
- f++;
- }
- }
- if(f==0)
- cout<<"Таких книг нет.";
- getch();
- }
- if(p==2)
- {
- int h=0;
- cout<<"Введите автора: ";
- cin>>autor;
- for(int i=0;i<x;i++)
- {
- if(strcmp(autor,a[i].book.autor)==0)
- {
- cout<< h+1 <<a[i].book.name<<", "<<a[i].book.autor<<", "<<a[i].book.year<<endl;
- h++;
- }
- }
- if(h==0)
- cout<<"Таких книг нет.";
- getch();
- }
- if(p==3)
- {
- int y=0;
- cout<<"Введите год издания: ";
- cin>>year;
- for(int i=0;i<x;i++)
- {
- if(year==a[i].book.year)
- {
- cout<< y+1<<a[i].book.name<<", "<<a[i].book.autor<<", "<<a[i].book.year<<endl;
- y++;
- }}
- if(y==0)
- cout<<"Таких книг нет.";
- getch();
- }
- }
- void HomeLib::del(HomeLib a[],int&x)
- {
- int del;
- a[x].display(a,x);
- cout<<"Введите адрес для удаления < "<<x<<endl;
- cin>>del;
- if(x==1)
- {
- cout<<"Удаление невозможно!"<<endl;
- system("pause");
- }
- else{
- strcpy(a[del-1].book.name,a[x-1].book.name);
- strcpy(a[del-1].book.autor,a[x-1].book.autor);
- a[del-1].book.year=a[x-1].book.year;
- x--;
- cout<<"Удалено!"<<endl;
- system("pause");
- }
- }
- void HomeLib::add(HomeLib a[],int&x)
- {
- cout<<"Название: ";
- cin>>a[x+1].book.name;
- cout<<"Автор ";
- cin>>a[x+1].book.autor;
- cout<<"Год издания: ";
- cin>>a[x+1].book.year;
- x++;
- }
- void HomeLib::display(HomeLib a[],int&x)
- {
- for(int i=0;i<x;i++)
- {
- cout<<a[i].book.name<<", "<<a[i].book.autor<<", "<<a[i].book.year<<endl;
- }
- getch();
- //system("cls");
- }
- void main()
- {
- setlocale(LC_ALL, ".1251");
- HomeLib a[10];
- int x=0;
- cout<<"Введите число книг: ";
- cin>>x;
- cout<<"Введите ваши книги: "<<endl;
- a[x].in(a,x);
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement