F
Firiat
C++:
/*
Здорова . Как сделать выдачу сведений о всех книгах, упорядоченных по фамилиям авторов с помощью контейнера vector ? Спс.
*/
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
void add();//добавление книг и данных
void vivod();//вывод данных о книгах
void allavtor(string);//вывод по автору
void allgod(int);//вывод по году
int t,u;
vector <int> god,kol;
vector <string> famil,imy,naz;
void main()
{
setlocale (0,"Rus");
bool q=0;
while (q!=1)
{
cout<<"Выберите :\n";
cout<<"1 - Добавление данных о книгах\n";
cout<<"2 - Вывод о всех книгах\n";
cout<<"4 - Вывод сведений по автору\n";
cout<<"5 - Вывод сведений по году\n";
cout<<"0 - Выход\n";
char n;
cin>>n;
switch(n)
{
case '1':
{
add();
break;
}
case '2':
{
vivod();
break;
}
case '3':
{
cout<<"Введите автора книги:\n";
string j;
cin>>j;
allavtor(j);
break;
}
case '4':
{
cout<<"Введите год издания:\n";
int g;
cin>>g;
allgod(g);
break;
}
case '0':
{
q=1;
break;
}
default:cout<<"Введите другие данные\n";
}
}
}
void add()//добавление книг
{
cout<<"Сколько нужно добавить книг?\n";
int a;
cin>>a;
t=a;
for (int i=0;i<a;i++)
{
cout<<"Введите фамилию автора:\n";
string r;
cin>>r;
famil.push_back(r);
cout<<"Введите имя:\n";
string e;
cin>>e;
imy.push_back(e);
cout<<"Введите название книги:\n";
string s;
cin>>s;
naz.push_back(s);
cout<<"Введите год издания:\n";
int k;
cin>>k;
god.push_back(k);
cout<<"Введите количество экземпляров:\n";
int m;
cin>>m;
kol.push_back(m);
}
}
void vivod()//вывод данных о всех книгах
{
for (int i=0;i<t;i++)
{
cout<<"Фамилия автора: "<<famil[i]<<"\n";
cout<<"Имя автора: "<<imy[i]<<"\n";
cout<<"Название книги: "<<naz[i]<<"\n";
cout<<"Год издания книги: "<<god[i]<<"\n";
cout<<"Количество экземпляров: "<<kol[i]<<"\n\n";
}
}
void allavtor(string a)
bool r=0;
for (int i=0;i<t;i++)
{
if (famil[i]==a)
{
cout<<"Фамилия автора: "<<famil[i]<<"\n";
cout<<"Имя автора: "<<imy[i]<<"\n";
cout<<"Название книги: "<<naz[i]<<"\n";
cout<<"Год издания книги: "<<god[i]<<"\n";
cout<<"Количество экземпляров: "<<kol[i]<<"\n\n";
r=1;
}
}
if (r==0) cout<<"Такого автора нет\n";
}
void allgod(int a)
{
bool r=0;
for (int i=0;i<t;i++)
{
if (god[i]==a)
{
cout<<"Фамилия автора: "<<famil[i]<<"\n";
cout<<"Имя автора: "<<imy[i]<<"\n";
cout<<"Название книги: "<<naz[i]<<"\n";
cout<<"Год издания книги: "<<god[i]<<"\n";
cout<<"Количество экземпляров: "<<kol[i]<<"\n\n";
r=1;
}
}
if (r==0) cout<<"Такого года издания нет\n";
}