Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*6. В библиотеке имеется список книг. Каждая запись этого списка содержит фамилии авторов, название книги, год издания.
- Определить, имеются ли в данном списке книга, в названии которых встречается некоторое ключевое слово (например, "ПЭВМ").
- Если имеются, то выдать в алфавитном порядке фамилии авторов, название и год издания всех таких книг. Ключевое слово ввести с клавиатуры.*/
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <windows.h>
- using namespace std;
- ifstream fin("input.txt");
- ofstream fout("output.txt");
- struct bibl
- {
- string nazk,avt;
- int god,z;
- };
- string isk;
- void vvod(int &r, bibl d[])
- {
- r=0;
- while ( !fin.eof())
- {
- fin>>d[r].nazk>>d[r].avt>>d[r].god;
- d[r].z=0;
- r++;
- }
- }
- void prov(int r, bibl d[],string st)
- {
- for (int i=0;i<r;i++)
- if (d[i].nazk.find(st)!=string::npos) d[i].z=1;
- }
- void puzyrok(int r, bibl d[])
- {
- for (int k=1;k<r;k++)
- for (int i=0;i<r-k;i++)
- if (d[i].avt>d[i+1].avt)
- {
- bibl t=d[i];
- d[i]=d[i+1];
- d[i+1]=t;
- }
- }
- void vivod(int r, bibl d[])
- {
- for (int i=0;i<r;i++)
- if (d[i].z==1) fout<<d[i].avt<<(char)9<<d[i].nazk<<(char)9<<d[i].god<<endl;
- }
- int main()
- {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- int n;
- bibl a[100];
- vvod(n,a);
- cout<<"Введите часть названия книги"<<endl;
- cin>>isk;
- prov(n,a,isk);
- puzyrok(n,a);
- vivod(n,a);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement