Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2017
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.69 KB | None | 0 0
  1. //Описать класс "домашняя библеотека". Предусмотреть возможность работы с произвольным числос книг, поиска книг по какому-либо
  2. //признаку(например, по автору или году издания), добавление книг в библеотеку, удаления книг из неё, сортировка книг по разным полям.
  3. //Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса.
  4. //
  5. # include <iostream>
  6. #include <conio.h>
  7. #include <string.h>
  8. #include <stdio.h>
  9. using namespace std;
  10.  
  11. struct mas
  12. {
  13. char name[50];
  14. char autor[30];
  15. int year;
  16. };
  17. class HomeLib
  18. {
  19. private:
  20. mas book;
  21. public:
  22. void in(HomeLib[],int&); //Ввод
  23. void choise(HomeLib[],int&); //Выбор
  24. void search(HomeLib[],int&); //Поиск
  25. void del(HomeLib[],int&); //Удаление
  26. void add(HomeLib[],int&); //Добавление
  27. void display(HomeLib[],int&); //Вывод
  28. };
  29. void HomeLib::in(HomeLib a[], int&x)
  30. {
  31. for(int i=0;i<x;i++)
  32. {
  33. cout<<i+1<<". ";
  34. cout<<"Название: ";
  35. cin>>a[i].book.name;
  36. cout<<" Автор: ";
  37. cin>>a[i].book.autor;
  38. cout<<" Год издания: ";
  39. cin>>a[i].book.year;
  40. }
  41. getch();
  42. a[x].choise(a,x);
  43. }
  44. void HomeLib::choise(HomeLib a[],int&x)
  45. {
  46. int chois=0;
  47. do
  48. {
  49. system("cls");
  50. cout<<"1. Поиск книг."<<endl<<"2. Удаление книги."<<endl<<"3. Добавление книги."<<endl<<"4. Показать библеотеку."<<endl<<"5. Выход."<<endl<<"Ваш выбор: ";
  51. cin>>chois;
  52. system("cls");
  53. if(chois==1)
  54. a[x].search(a,x);
  55. if(chois==2)
  56. a[x].del(a,x);
  57. if(chois==3)
  58. a[x].add(a,x);
  59. if(chois==4)
  60. a[x].display(a,x);
  61. }
  62. while(chois!=5);
  63. }
  64. void HomeLib::search(HomeLib a[],int&x)
  65. {
  66. int p=0;
  67. int year=0;
  68. char name[20];
  69. char autor[20];
  70. cout<<"1. Поиск по названию. "<<endl<<"2. Поиск по автору."<<endl<<"3. Поиск по году издания."<<endl<<"Ваш выбор: ";
  71. cin>>p;
  72. system("cls");
  73.  
  74. if(p==1)
  75. {
  76. int f=0;
  77. cout<<"Введите название: ";
  78. cin>>name;
  79. for(int i=0;i<x;i++)
  80. {
  81. if(strcmp(name,a[i].book.name)==0)
  82. {
  83.  
  84. cout<< f+1 <<a[i].book.name<<", "<<a[i].book.autor<<", "<<a[i].book.year<<endl;
  85. f++;
  86. }
  87. }
  88. if(f==0)
  89. cout<<"Таких книг нет.";
  90. getch();
  91. }
  92. if(p==2)
  93. {
  94. int h=0;
  95. cout<<"Введите автора: ";
  96. cin>>autor;
  97. for(int i=0;i<x;i++)
  98. {
  99. if(strcmp(autor,a[i].book.autor)==0)
  100. {
  101. cout<< h+1 <<a[i].book.name<<", "<<a[i].book.autor<<", "<<a[i].book.year<<endl;
  102. h++;
  103. }
  104. }
  105. if(h==0)
  106. cout<<"Таких книг нет.";
  107. getch();
  108. }
  109. if(p==3)
  110. {
  111. int y=0;
  112. cout<<"Введите год издания: ";
  113. cin>>year;
  114. for(int i=0;i<x;i++)
  115. {
  116. if(year==a[i].book.year)
  117. {
  118. cout<< y+1<<a[i].book.name<<", "<<a[i].book.autor<<", "<<a[i].book.year<<endl;
  119. y++;
  120. }}
  121. if(y==0)
  122. cout<<"Таких книг нет.";
  123. getch();
  124. }
  125. }
  126. void HomeLib::del(HomeLib a[],int&x)
  127. {
  128. int del;
  129. a[x].display(a,x);
  130. cout<<"Введите адрес для удаления < "<<x<<endl;
  131. cin>>del;
  132. if(x==1)
  133. {
  134. cout<<"Удаление невозможно!"<<endl;
  135. system("pause");
  136. }
  137. else{
  138. strcpy(a[del-1].book.name,a[x-1].book.name);
  139. strcpy(a[del-1].book.autor,a[x-1].book.autor);
  140. a[del-1].book.year=a[x-1].book.year;
  141. x--;
  142. cout<<"Удалено!"<<endl;
  143. system("pause");
  144. }
  145. }
  146. void HomeLib::add(HomeLib a[],int&x)
  147. {
  148. cout<<"Название: ";
  149. cin>>a[x+1].book.name;
  150. cout<<"Автор ";
  151. cin>>a[x+1].book.autor;
  152. cout<<"Год издания: ";
  153. cin>>a[x+1].book.year;
  154. x++;
  155. }
  156. void HomeLib::display(HomeLib a[],int&x)
  157. {
  158. for(int i=0;i<x;i++)
  159. {
  160. cout<<a[i].book.name<<", "<<a[i].book.autor<<", "<<a[i].book.year<<endl;
  161. }
  162. getch();
  163. //system("cls");
  164. }
  165. void main()
  166. {
  167. setlocale(LC_ALL, ".1251");
  168. HomeLib a[10];
  169. int x=0;
  170. cout<<"Введите число книг: ";
  171. cin>>x;
  172. cout<<"Введите ваши книги: "<<endl;
  173. a[x].in(a,x);
  174. system("pause");
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement