Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Работает только с латинским вводом
- Дата вводится одной строкой дд мм гггг
- Выводится в нормальном формате дд.мм.гггг
- Проверка на валидность даты есть
- */
- #include <iostream>
- #include <clocale>
- #include <Windows.h>
- #include <string.h>
- #include <errno.h>
- #include <stdlib.h>
- using namespace std;
- void structInit(struct price *pr, int n);
- void structOut(struct price *pr, int n);
- void structOutExp(struct price*, int n, int expDay, int expMonth, int expYear);
- struct price {
- char name[64];
- int p;
- int year;
- int month;
- int day;
- };
- int main() {
- setlocale(LC_ALL, "Russian");
- int n;
- cout << "Введите количество товаров: ";
- cin >> n;
- struct price *pr = new price[n];
- structInit(pr, n);
- cout << "****************************************************" << endl;
- cout << "Список товаров: " << endl;
- structOut(pr, n);
- cout << endl;
- cout << "****************************************************" << endl;
- int expDay, expMonth, expYear;
- cout << "Введите текущую дату (в формате день месяц год):";
- cin >> expDay;
- cin >> expMonth;
- cin >> expYear;
- cout << "****************************************************" << endl;
- cout << "Товары, у которых истек срок годности: " << endl;
- structOutExp(pr, n, expDay, expMonth, expYear);
- system("PAUSE");
- }
- void structInit(struct price *pr, int n) {
- for (int i = 0; i < n; i++) {
- cout << "Товар № " << i + 1 << ": " << endl;
- cout << "Введите название товара: ";
- cin >> pr[i].name;
- cout << "Введите цену товара: ";
- cin >> pr[i].p;
- cout << "Введите дату истечения срока годности у товара (в формате день месяц год) ";
- cin >> pr[i].day;
- cin >> pr[i].month;
- cin >> pr[i].year;
- while (pr[i].day > 31 && pr[i].month > 12) {
- cout << "Invalid Data (>31 Days or >12 Months) " << endl;
- cin >> pr[i].day;
- cin >> pr[i].month;
- cin >> pr[i].year;
- }
- }
- }
- void structOut(struct price *pr, int n) {
- for (int i = 0; i < n; i++) {
- cout << "Товар № " << i + 1 << ": " << endl;
- cout << "Название товара: " << pr[i].name << endl;
- cout << "Цена: " << pr[i].p << endl;
- cout << "Годен до: " << pr[i].day << "." << pr[i].month << "." << pr[i].year;
- cout << endl;
- }
- }
- void structOutExp(struct price *pr, int n, int expDay, int expMonth, int expYear) {
- for (int i = 0; i < n; i++) {
- if ((pr[i].day <= expDay && pr[i].month <= expMonth && pr[i].year <= expYear) || (pr[i].month <= expMonth && pr[i].year <= expYear) || (pr[i].year < expYear)) {
- cout << "Товар № " << i + 1 << ": " << endl;
- cout << "Название товара: " << pr[i].name << endl;
- cout << "Цена: " << pr[i].p << endl;
- cout << "Годен до: " << pr[i].day << "." << pr[i].month << "." << pr[i].year << endl;
- cout << endl;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement