Advertisement
force1987

Untitled

Apr 29th, 2021
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.75 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. #include <stdio.h>
  4.  
  5. struct ВИДЕОМАГАЗИН
  6. {
  7. char Название_фильма[256];
  8. char Режиссёр[32];
  9. char Жанр[32];
  10. float Рейтинг_популярности;
  11. float Цена_диска;
  12. };
  13.  
  14. void show(ВИДЕОМАГАЗИН* cd) {
  15. cout << cd->Название_фильма << " ";
  16. cout << cd->Режиссёр << " ";
  17. cout << cd->Жанр << " ";
  18. cout << cd->Рейтинг_популярности << " ";
  19. cout << cd->Цена_диска << endl;
  20. }
  21.  
  22.  
  23. void Поиск_по_названию(ВИДЕОМАГАЗИН* ptr, char название[], int size) {
  24. for (int i = 0; i < size; i++) {
  25. if (strstr((ptr[i].Название_фильма), название) != NULL) {
  26. Поиск_по_названию(ptr + i + 1, название, size - i - 1);
  27. if ((size - i) == 10) {
  28. if (название[0] >= 65 && название[0] <= 90) название[0] += 32;
  29. else if (название[0] >= 97 && название[0] <= 122) название[0] -= 32;
  30. else if (название[0] >= -64 && название[0] <= -33) название[0] += 32;
  31. else if (название[0] >= -32 && название[0] <= -1) название[0] -= 32;
  32. else if (название[0] == -88) название[0] == -72;
  33. else if (название[0] == -72) название[0] == -88;
  34. for (int j = 0; j < size; j++) {
  35. if (strstr((ptr[j].Название_фильма), название) != NULL) {
  36. Поиск_по_названию(ptr + j + 1, название, size - j - 1);
  37. Поиск_по_названию(ptr + j, название, size - (size - 1));
  38. return show(&ptr[i]);
  39. }
  40. }
  41. }
  42. return show(&ptr[i]);
  43. }
  44. else if ((size - i) == 10) {
  45. Поиск_по_названию(ptr + i + 1, название, size - i - 1);
  46. if (название[0] >= 65 && название[0] <= 90) название[0] += 32;
  47. else if (название[0] >= 97 && название[0] <= 122) название[0] -= 32;
  48. else if (название[0] >= -64 && название[0] <= -33) название[0] += 32;
  49. else if (название[0] >= -32 && название[0] <= -1) название[0] -= 32;
  50. else if (название[0] == -88) название[0] == -72;
  51. else if (название[0] == -72) название[0] == -88;
  52. for (int j = 0; j < size; j++) {
  53. if (strstr((ptr[j].Название_фильма), название) != NULL) {
  54. Поиск_по_названию(ptr + j + 1, название, size - j - 1);
  55. return show(&ptr[j]);
  56. }
  57. }
  58. }
  59. }
  60. }
  61.  
  62. void Поиск_по_жанру(ВИДЕОМАГАЗИН* ptr, char название[], int size) {
  63. for (int i = 0; i < size; i++) {
  64. if (strstr((ptr[i].Жанр), название) != NULL) {
  65. Поиск_по_жанру(ptr + i + 1, название, size - i - 1);
  66. if ((size - i) == 10) {
  67. if (название[0] >= 65 && название[0] <= 90) название[0] += 32;
  68. else if (название[0] >= 97 && название[0] <= 122) название[0] -= 32;
  69. else if (название[0] >= -64 && название[0] <= -33) название[0] += 32;
  70. else if (название[0] >= -32 && название[0] <= -1) название[0] -= 32;
  71. else if (название[0] == -88) название[0] == -72;
  72. else if (название[0] == -72) название[0] == -88;
  73. for (int j = 0; j < size; j++) {
  74. if (strstr((ptr[j].Жанр), название) != NULL) {
  75. Поиск_по_жанру(ptr + j + 1, название, size - j - 1);
  76. Поиск_по_жанру(ptr + j, название, size - (size - 1));
  77. return show(&ptr[i]);
  78. }
  79. }
  80. }
  81. return show(&ptr[i]);
  82. }
  83. else if ((size - i) == 10) {
  84. Поиск_по_жанру(ptr + i + 1, название, size - i - 1);
  85. if (название[0] >= 65 && название[0] <= 90) название[0] += 32;
  86. else if (название[0] >= 97 && название[0] <= 122) название[0] -= 32;
  87. else if (название[0] >= -64 && название[0] <= -33) название[0] += 32;
  88. else if (название[0] >= -32 && название[0] <= -1) название[0] -= 32;
  89. else if (название[0] == -88) название[0] == -72;
  90. else if (название[0] == -72) название[0] == -88;
  91. for (int j = 0; j < size; j++) {
  92. if (strstr((ptr[j].Жанр), название) != NULL) {
  93. Поиск_по_жанру(ptr + j + 1, название, size - j - 1);
  94. return show(&ptr[j]);
  95. }
  96. }
  97. }
  98. }
  99. }
  100.  
  101. void Поиск_по_режиссёру(ВИДЕОМАГАЗИН* ptr, char название[], int size) {
  102. for (int i = 0; i < size; i++) {
  103. if (strstr((ptr[i].Режиссёр), название) != NULL) {
  104. Поиск_по_режиссёру(ptr + i + 1, название, size - i - 1);
  105. if ((size - i) == 10) {
  106. if (название[0] >= 65 && название[0] <= 90) название[0] += 32;
  107. else if (название[0] >= 97 && название[0] <= 122) название[0] -= 32;
  108. else if (название[0] >= -64 && название[0] <= -33) название[0] += 32;
  109. else if (название[0] >= -32 && название[0] <= -1) название[0] -= 32;
  110. else if (название[0] == -88) название[0] == -72;
  111. else if (название[0] == -72) название[0] == -88;
  112. for (int j = 0; j < size; j++) {
  113. if (strstr((ptr[j].Режиссёр), название) != NULL) {
  114. Поиск_по_режиссёру(ptr + j + 1, название, size - j - 1);
  115. Поиск_по_режиссёру(ptr + j, название, size - (size - 1));
  116. return show(&ptr[i]);
  117. }
  118. }
  119. }
  120. return show(&ptr[i]);
  121. }
  122. else if ((size - i) == 10) {
  123. Поиск_по_режиссёру(ptr + i + 1, название, size - i - 1);
  124. if (название[0] >= 65 && название[0] <= 90) название[0] += 32;
  125. else if (название[0] >= 97 && название[0] <= 122) название[0] -= 32;
  126. else if (название[0] >= -64 && название[0] <= -33) название[0] += 32;
  127. else if (название[0] >= -32 && название[0] <= -1) название[0] -= 32;
  128. else if (название[0] == -88) название[0] == -72;
  129. else if (название[0] == -72) название[0] == -88;
  130. for (int j = 0; j < size; j++) {
  131. if (strstr((ptr[j].Режиссёр), название) != NULL) {
  132. Поиск_по_режиссёру(ptr + j + 1, название, size - j - 1);
  133. return show(&ptr[j]);
  134. }
  135. }
  136. }
  137. }
  138. }
  139.  
  140. ВИДЕОМАГАЗИН* temp;
  141. float look = 0.0;
  142. void Самый_популярный_фильм_в_жанре(ВИДЕОМАГАЗИН* ptr, char название[], int size) {
  143. for (int i = 0; i < size; i++) {
  144. if (strstr((ptr[i].Жанр), название) != NULL) {
  145. Самый_популярный_фильм_в_жанре(ptr + i + 1, название, size - i - 1);
  146. if ((size - i) == 10) {
  147. if (название[0] >= 65 && название[0] <= 90) название[0] += 32;
  148. else if (название[0] >= 97 && название[0] <= 122) название[0] -= 32;
  149. else if (название[0] >= -64 && название[0] <= -33) название[0] += 32;
  150. else if (название[0] >= -32 && название[0] <= -1) название[0] -= 32;
  151. else if (название[0] == -88) название[0] == -72;
  152. else if (название[0] == -72) название[0] == -88;
  153. for (int j = 0; j < size; j++) {
  154. if (strstr((ptr[j].Жанр), название) != NULL) {
  155. Самый_популярный_фильм_в_жанре(ptr + j + 1, название, size - j - 1);
  156. Самый_популярный_фильм_в_жанре(ptr + j, название, size - (size - 1));
  157. if (ptr[i].Рейтинг_популярности > look) { ::temp = &ptr[i]; ::look = ptr[i].Рейтинг_популярности; }
  158. }
  159. }
  160. }
  161. if (ptr[i].Рейтинг_популярности > look) { ::temp = &ptr[i]; ::look = ptr[i].Рейтинг_популярности; }
  162. }
  163. else if ((size - i) == 10) {
  164. Самый_популярный_фильм_в_жанре(ptr + i + 1, название, size - i - 1);
  165. if (название[0] >= 65 && название[0] <= 90) название[0] += 32;
  166. else if (название[0] >= 97 && название[0] <= 122) название[0] -= 32;
  167. else if (название[0] >= -64 && название[0] <= -33) название[0] += 32;
  168. else if (название[0] >= -32 && название[0] <= -1) название[0] -= 32;
  169. else if (название[0] == -88) название[0] == -72;
  170. else if (название[0] == -72) название[0] == -88;
  171. for (int j = 0; j < size; j++) {
  172. if (strstr((ptr[j].Жанр), название) != NULL) {
  173. Самый_популярный_фильм_в_жанре(ptr + j + 1, название, size - j - 1);
  174. if (ptr[j].Рейтинг_популярности > look) { ::temp = &ptr[j]; ::look = ptr[j].Рейтинг_популярности; }
  175. }
  176. }
  177. }
  178. }
  179. }
  180.  
  181. int main()
  182. {
  183. setlocale(LC_ALL, "RUS");
  184. system("chcp 1251");
  185. system("cls");
  186. ВИДЕОМАГАЗИН* массив = new ВИДЕОМАГАЗИН[10];
  187. массив[0] = { "The Shawshank Redemption","Frank Darabont","Драма",9.3,349.00 };
  188. массив[1] = { "The Godfather","Francis Ford Coppola","Криминальная драма",9.2,310.00 };
  189. массив[2] = { "The Godfather: Part II","Francis Ford Coppola","Криминальная драма",9.0,310.00 };
  190. массив[3] = { "The Dark Knight","Christopher Nolan","Криминальная драма, боевик",9.0,2790.00 };
  191. массив[4] = { "12 Angry Men","Sidney Lumet","Криминальная драма",9.0,130.00 };
  192. массив[5] = { "Schindler's List","Steven Spielberg","Историческая драма",8.9,726.00 };
  193. массив[6] = { "The Lord of the Rings: The Return of the King","Peter Jackson","Приключенческая драма",8.9,330.00 };
  194. массив[7] = { "Pulp Fiction","Quentin Tarantino","Криминальная драма",8.8,237.00 };
  195. массив[8] = { "Il buono, il brutto, il cattivo","Sergio Leone","Вестерн",8.8,229.00 };
  196. массив[9] = { "Fight Club","David Fincher","Драма",8.8,342.00 };
  197. char action;
  198. cout << "Добро пожаловать в меню ВИДЕОМАГАЗИНА\n\nВведите действие: " << endl << "\"1\" Поиск по названию\n";
  199. cout << "\"2\" Поиск по жанру\n\"3\" Поиск по режиссеру\n\"4\" Самый популярный фильм в жанре\n";
  200. cout << "\"5\" Показ всех записей и добавление\n";
  201. do {
  202. cin >> action;
  203. } while (action < 49 || action>53);
  204. if (action == '1') {
  205. char inp[256];
  206. cin.ignore();
  207. gets_s(inp, 255);
  208. Поиск_по_названию(массив, inp, _msize(массив) / sizeof(ВИДЕОМАГАЗИН));
  209. }
  210. if (action == '2') {
  211. char inp[32];
  212. cin.ignore();
  213. gets_s(inp, 31);
  214. Поиск_по_жанру(массив, inp, _msize(массив) / sizeof(ВИДЕОМАГАЗИН));
  215. }
  216. if (action == '3') {
  217. char inp[32];
  218. cin.ignore();
  219. gets_s(inp, 31);
  220. Поиск_по_режиссёру(массив, inp, _msize(массив) / sizeof(ВИДЕОМАГАЗИН));
  221. }
  222. if (action == '4') {
  223. char inp[32];
  224. cin.ignore();
  225. gets_s(inp, 31);
  226. Самый_популярный_фильм_в_жанре(массив, inp, _msize(массив) / sizeof(ВИДЕОМАГАЗИН));
  227. show(temp);
  228. }
  229. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement