Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #define SIZE 4 // переменная которая указывает размер массива т.е количество ценников, можно и без нее но тогда вместо нее придется везде подставлять цифры
- using namespace std;
- //структура для даты
- struct _date {
- int day;
- int mon;
- int year;
- _date(int day = 1, int mon = 1, int year = 1){}
- };
- //структура для ценника(тк не говорили какие типы данных использовать, я взял string)
- struct prtag
- {
- string name;
- int price;
- _date date;
- //конструктор для этой структуры по умолчанию
- prtag() {}
- //конструктор с параметрами
- prtag(string name, int price, _date date)
- {
- this->name = name;
- this->date = date;
- this->price = price;
- }
- };
- //Функция для добавления фиксированного количества ценников(если надо изменить, меняем SIZE)
- void add(prtag* n)
- {
- //С помощью цикла пробегаемся по всем элементам массива и заполняем их введенными данными
- for (int i = 0; i < SIZE; i++)
- {
- string name;
- int price;
- int day;
- int month;
- int year;
- cout << "Enter the name, price and date d/m/y" << endl;
- //Вводим данные
- cin >> name >> price >> day >> month >> year;
- //Присваиваем данные к определенному ценнику
- n[i].name = name;
- n[i].price = price;
- n[i].date.day = day;
- n[i].date.mon = month;
- n[i].date.year = year;
- }
- }
- //Функция для отрисовки ценников на экране
- void print(prtag* p)
- {
- //Пробегаемся по всему массиву и выводим информацию о каждом ценнике
- for (int i = 0; i < SIZE; i++)
- {
- cout << "________________________________" << endl;
- cout << "The name is: " << p[i].name << endl;
- cout << "The price is: " << p[i].price << endl;
- cout << "The date is " << p[i].date.day << "/" << p[i].date.mon << "/" << p[i].date.year << endl;
- cout << "________________________________" << endl;
- }
- }
- //Функция для поиска просроченных продуктов ну или близких к просрочке
- void findOutOfDate(prtag* p)
- {
- int day;
- int mon;
- int year;
- //Вводим дату
- cout << "Enter current date" << endl;
- cin >> day >> mon >> year;
- //Создаем массив размера SIZE
- string* res = new string[SIZE];
- //Это будет счетчик для длинны нового массива
- int countProd = 0;
- for (int i = 0; i < SIZE; i++)
- {
- //Если у товара дата совпадает с введенной датой значит этот товар просрочен
- if (p[i].date.day == day && p[i].date.mon == mon && p[i].date.year == year)
- {
- //Заполняем новый массива именем этого продукта
- res[countProd] = p[i].name;
- //Увеличиваем счетчик длинны нового массива
- countProd++;
- }
- }
- //Здесь просто вывод нового массива, т.е просроченных товаров(их имен)
- cout << "____________" << endl;
- for (int i = 0; i < countProd; i++)
- {
- cout << res[i] << endl;
- }
- }
- int main()
- {
- //Создаем динамический массив размера SIZE
- prtag* tags = new prtag[SIZE];
- //Вызываем функцию для заполнения массива
- add(tags);
- //print(tags);
- findOutOfDate(tags);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement