Advertisement
Ne-Biolog

Untitled

Jan 14th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.29 KB | None | 0 0
  1. //
  2. // main.cpp
  3. // task 2
  4. //
  5. // Created by Никита Морозов on 14.01.18.
  6. // Copyright © 2018 Никита Морозов. All rights reserved.
  7. //
  8.  
  9.  
  10. #include <vector>
  11. #include <iostream>
  12. #include <fstream>
  13.  
  14.  
  15. using namespace std;
  16.  
  17. struct tovar
  18. {
  19. char name[100];
  20. int counter;
  21. int price;
  22. int day;
  23. int month;
  24. int year;
  25. };
  26.  
  27. vector <tovar> mass() //масив структур
  28. {
  29. int choice = 0, size = 0;
  30.  
  31. vector <tovar> m;
  32. tovar tov;
  33.  
  34. printf("Какое количество товаров находящихся в файле ? : ");
  35. scanf("%i", &size);
  36. printf("-----------------------------------------------\n");
  37.  
  38. ifstream in("start.txt");
  39.  
  40. for (int i = 0; i < size; i++)
  41. {
  42. in >> tov.name;
  43.  
  44. in >> tov.counter;
  45.  
  46. in >> tov.price;
  47.  
  48. in >> tov.day;
  49.  
  50. in >> tov.month;
  51.  
  52. in >> tov.year;
  53.  
  54. m.emplace_back(tov);
  55. }
  56.  
  57. in.close();
  58.  
  59. return m;
  60. }
  61.  
  62.  
  63. int visual(vector<tovar> &mass) //Просмотр
  64. {
  65. int num = 1;
  66.  
  67. printf("\nВведённые вами товары :\n______________________________________________________________________________________________________________________\n");
  68.  
  69. for (int i = 0; i < mass.size(); i++)
  70. {
  71. printf("%i", num);
  72. printf(".|Наименование : ");
  73. printf("%s", mass[i].name);
  74. printf(" || ");
  75. printf("РљРѕР»-РІРѕ : ");
  76. printf("%i", mass[i].counter);
  77. printf(" || ");
  78. printf("Цена за 1 шт. :");
  79. printf("%i", mass[i].price);
  80. printf(" || ");
  81. printf("День п.: ");
  82. printf("%i", mass[i].day);
  83. printf(" || ");
  84. printf("Месяц п.: ");
  85. printf("%i", mass[i].month);
  86. printf(" || ");
  87. printf("Год п.: ");
  88. printf("%i", mass[i].year);
  89. printf("\n");
  90. num++;
  91. }
  92.  
  93. printf("______________________________________________________________________________________________________________________\n");
  94.  
  95. return num;
  96. }
  97.  
  98.  
  99. vector <tovar> new_struct(vector<tovar> v, int counter) //Добавление
  100. {
  101. int choice = 1;
  102.  
  103. tovar tov;
  104.  
  105. printf("\nБудете ли вы вводить ещё товары? (1 - да)(0 - нет) : ");
  106. scanf("%i", &choice);
  107. printf("-----------------------------------------------\n");
  108.  
  109. while (choice == 1)
  110. {
  111. counter++;
  112.  
  113. printf("Введите наименование товара : ");
  114. scanf("%s", tov.name);
  115.  
  116. printf("Введите количество данного товара : ");
  117. scanf("%i", &tov.counter);
  118.  
  119. printf("Введите цену за 1 ед. товара : ");
  120. scanf("%i", &tov.price);
  121.  
  122. printf("Введите день поступления товара : ");
  123. scanf("%i", &tov.day);
  124.  
  125. printf("Введите месяц поступления товара : ");
  126. scanf("%i", &tov.month);
  127.  
  128. printf("Введите год поступления товара : ");
  129. scanf("%i", &tov.year);
  130.  
  131. v.push_back(tov);
  132.  
  133. printf("-----------------------------------------------\n");
  134.  
  135. printf("\nБудете ли вы вводить ещё товары? (1 - да)(0 - нет) : ");
  136. scanf("%i", &choice);
  137.  
  138.  
  139. }
  140.  
  141. if (choice == 0)
  142. {
  143. out << "Номер\t";
  144. out << "Наименование\t";
  145. out << "РљРѕР»-РІРѕ\t";
  146. out << "Цена\t";
  147. out << "День п.\t";
  148. out << "Месяц п.\t";
  149. out << "Год п.\t";
  150. out << "\n-----------------------------------------------------\n";
  151.  
  152. for (int i = 0; i < counter - 1; i++)
  153. {
  154. out << i + 1 << ".\t";
  155.  
  156. out << v[i].name << "\t";
  157.  
  158. out << v[i].counter << "\t";
  159.  
  160. out << v[i].price << "\t";
  161.  
  162. out << v[i].day << "\t";
  163.  
  164. out << v[i].month << "\t";
  165.  
  166. out << v[i].year << "\n";
  167. }
  168.  
  169. out << "-----------------------------------------------------\n";
  170.  
  171. out.close();
  172. }
  173.  
  174. return v;
  175. }
  176.  
  177.  
  178. void finding(vector <tovar> k, int num) //РїРѕРёСЃРє
  179. {
  180. int choice = 7, d = 0;
  181.  
  182. char s[100];
  183.  
  184. while (choice != 0)
  185. {
  186. printf("\n-----------------------------------------------\n");
  187. printf("Выберите критерий поиска ");
  188. printf("\n1 - наименование");
  189. printf("\n2 - количесвто товара");
  190. printf("\n3 - цена за 1 шт.");
  191. printf("\n4 - день поступления");
  192. printf("\n5 - месяц поступления");
  193. printf("\n6 - год поступления");
  194. printf("\n0 - выход : ");
  195. scanf("%i", &choice);
  196.  
  197. if (choice == 1)
  198. {
  199. printf("\nВводите наименование для поиска : ");
  200. scanf("%s", s);
  201. printf("\n");
  202.  
  203. for (int i = 0; i < num - 1; i++)
  204. {
  205. if (strcmp(s, k[i].name) == 0)
  206. {
  207. printf("Результаты поиска : \n");
  208. printf("%i", i + 1);
  209. printf(".\t");
  210. printf("Наименование : ");
  211. printf("%s", k[i].name);
  212. printf(" || ");
  213. printf("РљРѕР»-РІРѕ : ");
  214. printf("%i", k[i].counter);
  215. printf(" || ");
  216. printf("Цена за 1 шт. :");
  217. printf("%i", k[i].price);
  218. printf(" || ");
  219. printf("День п.: ");
  220. printf("%i", k[i].day);
  221. printf(" || ");
  222. printf("Месяц п.: ");
  223. printf("%i", k[i].month);
  224. printf(" || ");
  225. printf("Год п.: ");
  226. printf("%i", k[i].year);
  227. printf("\n");
  228. }
  229. }
  230. }
  231.  
  232. else if (choice == 2)
  233. {
  234. printf("\nВводите количество товара для поиска : ");
  235. scanf("%i", &d);
  236. printf("\n");
  237.  
  238. for (int i = 0; i < num - 1; i++)
  239. {
  240. if (d == k[i].counter)
  241.  
  242. {
  243. printf("Результаты поиска : \n");
  244. printf("%i", i + 1);
  245. printf(".\t");
  246. printf("Наименование : ");
  247. printf("%s", k[i].name);
  248. printf(" || ");
  249. printf("РљРѕР»-РІРѕ : ");
  250. printf("%i", k[i].counter);
  251. printf(" || ");
  252. printf("Цена за 1 шт. :");
  253. printf("%i", k[i].price);
  254. printf(" || ");
  255. printf("День п.: ");
  256. printf("%i", k[i].day);
  257. printf(" || ");
  258. printf("Месяц п.: ");
  259. printf("%i", k[i].month);
  260. printf(" || ");
  261. printf("Год п.: ");
  262. printf("%i", k[i].year);
  263. printf("\n");
  264. }
  265. }
  266. }
  267.  
  268. else if (choice == 3)
  269. {
  270. printf("\nВводите цену за 1шт. для поиска : ");
  271. scanf("%i", &d);
  272. printf("\n");
  273.  
  274. for (int i = 0; i < num - 1; i++)
  275. {
  276. if (d == k[i].price)
  277.  
  278. {
  279. printf("Результаты поиска : \n");
  280. printf("%i", i + 1);
  281. printf(".\t");
  282. printf("Наименование : ");
  283. printf("%s", k[i].name);
  284. printf(" || ");
  285. printf("РљРѕР»-РІРѕ : ");
  286. printf("%i", k[i].counter);
  287. printf(" || ");
  288. printf("Цена за 1 шт. :");
  289. printf("%i", k[i].price);
  290. printf(" || ");
  291. printf("День п.: ");
  292. printf("%i", k[i].day);
  293. printf(" || ");
  294. printf("Месяц п.: ");
  295. printf("%i", k[i].month);
  296. printf(" || ");
  297. printf("Год п.: ");
  298. printf("%i", k[i].year);
  299. printf("\n");
  300. }
  301. }
  302. }
  303.  
  304. else if (choice == 4)
  305. {
  306. printf("\nВводите день поступления для поиска : ");
  307. scanf("%i", &d);
  308. printf("\n");
  309.  
  310. for (int i = 0; i < num - 1; i++)
  311. {
  312. if (d == k[i].day)
  313.  
  314. {
  315. printf("Результаты поиска : \n");
  316. printf("%i", i + 1);
  317. printf(".\t");
  318. printf("Наименование : ");
  319. printf("%s", k[i].name);
  320. printf(" || ");
  321. printf("РљРѕР»-РІРѕ : ");
  322. printf("%i", k[i].counter);
  323. printf(" || ");
  324. printf("Цена за 1 шт. :");
  325. printf("%i", k[i].price);
  326. printf(" || ");
  327. printf("День п.: ");
  328. printf("%i", k[i].day);
  329. printf(" || ");
  330. printf("Месяц п.: ");
  331. printf("%i", k[i].month);
  332. printf(" || ");
  333. printf("Год п.: ");
  334. printf("%i", k[i].year);
  335. printf("\n");
  336. }
  337. }
  338. }
  339.  
  340. else if (choice == 5)
  341. {
  342. printf("\nВводите месяц поступления для поиска : ");
  343. scanf("%i", &d);
  344. printf("\n");
  345.  
  346. for (int i = 0; i < num - 1; i++)
  347. {
  348. if (d == k[i].month)
  349.  
  350. {
  351. printf("Результаты поиска : \n");
  352. printf("%i", i + 1);
  353. printf(".\t");
  354. printf("Наименование : ");
  355. printf("%s", k[i].name);
  356. printf(" || ");
  357. printf("РљРѕР»-РІРѕ : ");
  358. printf("%i", k[i].counter);
  359. printf(" || ");
  360. printf("Цена за 1 шт. :");
  361. printf("%i", k[i].price);
  362. printf(" || ");
  363. printf("День п.: ");
  364. printf("%i", k[i].day);
  365. printf(" || ");
  366. printf("Месяц п.: ");
  367. printf("%i", k[i].month);
  368. printf(" || ");
  369. printf("Год п.: ");
  370. printf("%i", k[i].year);
  371. printf("\n");
  372. }
  373. }
  374. }
  375.  
  376. else if (choice == 6)
  377. {
  378. printf("\nВводите год поступления для поиска : ");
  379. scanf("%i", &d);
  380. printf("\n");
  381.  
  382. for (int i = 0; i < num - 1; i++)
  383. {
  384. if (d == k[i].year)
  385.  
  386. {
  387. printf("Результаты поиска : \n");
  388. printf("%i", i + 1);
  389. printf(".\t");
  390. printf("Наименование : ");
  391. printf("%s", k[i].name);
  392. printf(" || ");
  393. printf("РљРѕР»-РІРѕ : ");
  394. printf("%i", k[i].counter);
  395. printf(" || ");
  396. printf("Цена за 1 шт. :");
  397. printf("%i", k[i].price);
  398. printf(" || ");
  399. printf("День п.: ");
  400. printf("%i", k[i].day);
  401. printf(" || ");
  402. printf("Месяц п.: ");
  403. printf("%i", k[i].month);
  404. printf(" || ");
  405. printf("Год п.: ");
  406. printf("%i", k[i].year);
  407. printf("\n");
  408. }
  409. }
  410. }
  411.  
  412. }
  413. }
  414.  
  415. vector <tovar> izm(vector<tovar> k, int counter) //изменение
  416. {
  417. int num, choice = 7;
  418. tovar tov;
  419.  
  420. printf("\n-----------------------------------------------\n");
  421. printf("\nВведите номер товара для изменения : ");
  422. scanf("%i", &num);
  423.  
  424. if (num <= counter)
  425. {
  426. printf("Введите наименование товара : ");
  427. scanf("%s", tov.name);
  428.  
  429. printf("Введите количество данного товара : ");
  430. scanf("%i", &tov.counter);
  431.  
  432. printf("Введите цену за 1 ед. товара : ");
  433. scanf("%i", &tov.price);
  434.  
  435. printf("Введите день поступления товара : ");
  436. scanf("%i", &tov.day);
  437.  
  438. printf("Введите месяц поступления товара : ");
  439. scanf("%i", &tov.month);
  440.  
  441. printf("Введите год поступления товара : ");
  442. scanf("%i", &tov.year);
  443.  
  444. k[num - 1] = tov;
  445. }
  446.  
  447. return k;
  448. }
  449.  
  450.  
  451. vector <tovar> del(vector<tovar> k, int counter)
  452. {
  453. int num, choice = 7;
  454.  
  455. printf("\n-----------------------------------------------\n");
  456. printf("\nВведите номер товаров для удаления : ");
  457. scanf("%i", &num);
  458.  
  459. auto iter = k.cbegin();
  460. k.erase(iter + num - 1);
  461.  
  462. return k;
  463. }
  464.  
  465.  
  466. void sort(vector<tovar> k, int counter)
  467. {
  468. int pr, year = 2018, day = 4, month = 1;
  469.  
  470. for (int i = 0; i < counter - 1; i++)
  471. {
  472. pr = k[i].counter * k[i].price;
  473. if (pr > 1000000)
  474. {
  475. if (k[i].year < year || month - k[i].month > 1)
  476. {
  477. printf("Результаты сортировки : \n");
  478. printf("%i", i + 1);
  479. printf(".\t");
  480. printf("Наименование : ");
  481. printf("%s", k[i].name);
  482. printf(" || ");
  483. printf("РљРѕР»-РІРѕ : ");
  484. printf("%i", k[i].counter);
  485. printf(" || ");
  486. printf("Цена за 1 шт. :");
  487. printf("%i", k[i].price);
  488. printf(" || ");
  489. printf("День п.: ");
  490. printf("%i", k[i].day);
  491. printf(" || ");
  492. printf("Месяц п.: ");
  493. printf("%i", k[i].month);
  494. printf(" || ");
  495. printf("Год п.: ");
  496. printf("%i", k[i].year);
  497. printf("\n");
  498. }
  499. else if ((month = k[i].month && day > k[i].day))
  500. {
  501. printf("Результаты сортировки : \n");
  502. printf("%i", i + 1);
  503. printf(".\t");
  504. printf("Наименование : ");
  505. printf("%s", k[i].name);
  506. printf(" || ");
  507. printf("РљРѕР»-РІРѕ : ");
  508. printf("%i", k[i].counter);
  509. printf(" || ");
  510. printf("Цена за 1 шт. :");
  511. printf("%i", k[i].price);
  512. printf(" || ");
  513. printf("День п.: ");
  514. printf("%i", k[i].day);
  515. printf(" || ");
  516. printf("Месяц п.: ");
  517. printf("%i", k[i].month);
  518. printf(" || ");
  519. printf("Год п.: ");
  520. printf("%i", k[i].year);
  521. printf("\n");
  522. }
  523. }
  524. }
  525. }
  526.  
  527. int main()
  528. {
  529.  
  530. ofstream out("finish.txt");
  531. int counter, choice = 7;
  532.  
  533. vector<tovar> v = mass();
  534. counter = visual(v);
  535.  
  536. vector<tovar> k = new_struct(v, counter);
  537. visual(k);
  538.  
  539. while (choice != 0)
  540. {
  541. printf("\n-----------------------------------------------\n");
  542. printf("Выберите действие ");
  543. printf("\n1 - поиск товара.");
  544. printf("\n2 - изменение данных о товаре.");
  545. printf("\n3 - удаление товара из базы.");
  546. printf("\n4 - вывести товары стоимость которых > 1000000 и хранятся > месяца + записать все товары в файл ");
  547. printf("\n0 - выход : ");
  548. scanf("%i", &choice);
  549.  
  550. if (choice == 1) finding(k, counter);
  551. if (choice == 2)
  552. {
  553. vector<tovar> i;
  554. i = izm(k, counter);
  555. visual(i);
  556. }
  557.  
  558. if (choice == 3)
  559. {
  560. vector<tovar> j;
  561. j = del(k, counter);
  562. visual(j);
  563. }
  564.  
  565. if (choice == 4)
  566. {
  567. sort(k, counter);
  568. }
  569. }
  570.  
  571. return 0;
  572. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement