Advertisement
LittleMax

Untitled

May 19th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.80 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #define SIZE 4 // переменная которая указывает размер массива т.е количество ценников, можно и без нее но тогда вместо нее придется везде подставлять цифры
  4. using namespace std;
  5.  
  6. //структура для даты
  7. struct _date {
  8.     int day;
  9.     int mon;
  10.     int year;
  11.  
  12.     _date(int day = 1, int mon = 1, int year = 1){}
  13. };
  14.  
  15. //структура для ценника(тк не говорили какие типы данных использовать, я взял string)
  16. struct prtag
  17. {
  18.     string name;
  19.     int price;
  20.     _date date;
  21.  
  22.     //конструктор для этой структуры по умолчанию
  23.     prtag() {}
  24.  
  25.     //конструктор с параметрами
  26.     prtag(string name, int price, _date date)
  27.     {
  28.         this->name = name;
  29.         this->date = date;
  30.         this->price = price;
  31.     }
  32. };
  33.  
  34. //Функция для добавления фиксированного количества ценников(если надо изменить, меняем SIZE)
  35. void add(prtag* n)
  36. {
  37.     //С помощью цикла пробегаемся по всем элементам массива и заполняем их введенными данными
  38.     for (int i = 0; i < SIZE; i++)
  39.     {
  40.         string name;
  41.         int price;
  42.         int day;
  43.         int month;
  44.         int year;
  45.         cout << "Enter the name, price and date d/m/y" << endl;
  46.         //Вводим данные
  47.         cin >> name >> price >> day >> month >> year;
  48.         //Присваиваем данные к определенному ценнику
  49.         n[i].name = name;
  50.         n[i].price = price;
  51.         n[i].date.day = day;
  52.         n[i].date.mon = month;
  53.         n[i].date.year = year;
  54.  
  55.     }
  56. }
  57.  
  58. //Функция для отрисовки ценников на экране
  59. void print(prtag* p)
  60. {
  61.     //Пробегаемся по всему массиву и выводим информацию о каждом ценнике
  62.     for (int i = 0; i < SIZE; i++)
  63.     {
  64.         cout << "________________________________" << endl;
  65.         cout << "The name is: " << p[i].name << endl;
  66.         cout << "The price is: " << p[i].price << endl;
  67.         cout << "The date is " << p[i].date.day << "/" << p[i].date.mon << "/" << p[i].date.year << endl;
  68.         cout << "________________________________" << endl;
  69.     }
  70. }
  71.  
  72. //Функция для поиска просроченных продуктов ну или близких к просрочке
  73. void findOutOfDate(prtag* p)
  74. {
  75.     int day;
  76.     int mon;
  77.     int year;
  78.     //Вводим дату
  79.     cout << "Enter current date" << endl;
  80.     cin >> day >> mon >> year;
  81.  
  82.     //Создаем массив размера SIZE
  83.     string* res = new string[SIZE];
  84.     //Это будет счетчик для длинны нового массива
  85.     int countProd = 0;
  86.  
  87.     for (int i = 0; i < SIZE; i++)
  88.     {
  89.         //Если у товара дата совпадает с введенной датой значит этот товар просрочен
  90.         if (p[i].date.day == day && p[i].date.mon == mon && p[i].date.year == year)
  91.         {
  92.             //Заполняем новый массива именем этого продукта
  93.             res[countProd] = p[i].name;
  94.             //Увеличиваем счетчик длинны нового массива
  95.             countProd++;
  96.         }
  97.     }
  98.  
  99.     //Здесь просто вывод нового массива, т.е просроченных товаров(их имен)
  100.     cout << "____________" << endl;
  101.     for (int i = 0; i < countProd; i++)
  102.     {
  103.         cout << res[i] << endl;
  104.     }
  105. }
  106.  
  107. int main()
  108. {
  109.     //Создаем динамический массив размера SIZE
  110.     prtag* tags = new prtag[SIZE];
  111.     //Вызываем функцию для заполнения массива
  112.     add(tags);
  113.    
  114.     //print(tags);
  115.     findOutOfDate(tags);
  116.    
  117.     return 0;
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement