Advertisement
Guest User

Untitled

a guest
Oct 20th, 2014
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.87 KB | None | 0 0
  1. /*6.    В библиотеке имеется список книг. Каждая запись этого списка содержит фамилии авторов, название книги, год издания.
  2. Определить, имеются ли в данном списке книга, в названии которых встречается некоторое ключевое слово (например, "ПЭВМ").
  3. Если имеются, то выдать в алфавитном порядке фамилии авторов, название и год издания всех таких книг. Ключевое слово ввести с клавиатуры.*/
  4. #include <iostream>
  5. #include <fstream>
  6. #include <string>
  7. #include <windows.h>
  8.  
  9. using namespace std;
  10. ifstream fin("input.txt");
  11. ofstream fout("output.txt");
  12. struct bibl
  13. {
  14.     string nazk,avt;
  15.     int god,z;
  16. };
  17. string isk;
  18. void vvod(int &r, bibl d[])
  19. {
  20.     r=0;
  21.     while ( !fin.eof())
  22.     {
  23.         fin>>d[r].nazk>>d[r].avt>>d[r].god;
  24.         d[r].z=0;
  25.         r++;
  26.     }
  27. }
  28. void prov(int r, bibl d[],string st)
  29. {
  30.     for (int i=0;i<r;i++)
  31.         if (d[i].nazk.find(st)!=string::npos) d[i].z=1;
  32. }
  33. void puzyrok(int r, bibl d[])
  34. {
  35.     for (int k=1;k<r;k++)
  36.         for (int i=0;i<r-k;i++)
  37.             if (d[i].avt>d[i+1].avt)
  38.             {
  39.                 bibl    t=d[i];
  40.                         d[i]=d[i+1];
  41.                         d[i+1]=t;
  42.             }
  43. }
  44. void vivod(int r, bibl d[])
  45. {
  46.     for (int i=0;i<r;i++)
  47.         if (d[i].z==1) fout<<d[i].avt<<(char)9<<d[i].nazk<<(char)9<<d[i].god<<endl;
  48. }
  49. int main()
  50. {
  51.     SetConsoleCP(1251);
  52.     SetConsoleOutputCP(1251);
  53.     int n;
  54.     bibl a[100];
  55.     vvod(n,a);
  56.     cout<<"Введите часть названия книги"<<endl;
  57.     cin>>isk;
  58.     prov(n,a,isk);
  59.     puzyrok(n,a);
  60.     vivod(n,a);
  61.     return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement