Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include <stdlib.h>
- #include <conio.h>
- #include <stdio.h>
- #include <cstdlib>
- #include <cstring>
- #include <fstream>
- #include <sstream>
- #include <clocale>
- #include <stdlib.h>
- #include <iomanip>
- #include <string.h>
- #include <Windows.h>
- #include <algorithm> // std::sort
- #pragma warning(disable : 4996)
- using namespace std;
- class food1 *t;
- class Date
- {
- public:
- int day; // день
- int month; // месяц
- int year; // год
- Date(int d, int m, int y)
- {
- day = d;
- month = m;
- year = y;
- }
- public:
- Date()
- {
- day = 25;
- month = 04;
- year = 1999;
- }
- void print_date()
- {
- cout << day << "." << month << "." << year;
- }
- };
- class food1
- {
- public:
- char* fam; //название изделия
- int type; //тип изделия (1- булочка, 2-пирожок, 3-пирожное)
- double weight; //вес
- bool shelflife;
- Date dat;
- int quant; //количество
- double cost; //стоимость
- static int count; // счетчик существующих объектов класса
- friend class Date;
- food1 &operator = (const food1& r)
- {
- fam = r.fam;
- type = r.type;
- weight = r.weight;
- cost = r.cost;
- dat.day = r.dat.day;
- dat.month = r.dat.month;
- dat.year = r.dat.year;
- return *this;
- }
- bool operator > (const food1& r)
- {
- if (this->dat.year > r.dat.year)
- if (this->dat.month > dat.month)
- if (this->dat.day > dat.year)
- return true;
- }
- friend ostream &operator << (ostream& cout, const food1& r);
- friend bool operator ! (const food1& r);
- food1()
- {
- fam = (char*)calloc(256, sizeof(char));
- fam = strcpy(fam, "По умолчанию");
- type = 1;
- weight = 1;
- quant = 1;
- cost = 1;
- dat.day = 1;
- dat.month = 1;
- dat.year = 1;
- }
- food1(char* f, int t, double w, int q, double c, int day, int month, int year)
- {
- fam = f;
- type = t;
- weight = w;
- quant = q;
- cost = c;
- dat.day = day;
- dat.month = month;
- dat.year = year;
- }
- food1(food1 &food1)
- {
- fam = (char*)calloc(256, sizeof(char));
- strcpy(fam, food1.fam);
- }
- ~food1()
- {
- free(fam);
- }
- friend void searchtype(int type);
- virtual void searсhfam(char *fam)
- {
- int count1 = 0;
- bool k = 0; // для единичного вывода таблицы
- for (int i = 0; i < count; ++i)
- {
- int flag1;
- char *p1_tek; // текущий указатель
- p1_tek = t[i].fam;
- flag1 = strcmp(fam, p1_tek);
- if (flag1 == 0)
- {
- while (k == 0)
- {
- cout << endl;
- cout << endl;
- cout << "Вот что удалось найти: " << endl;
- cout << endl;
- cout << endl;
- cout << setw(18) << left << "Название изделия" << setw(18) << left << "Тип изделия" << setw(18) << left << "Вес изделия" << setw(18) << left << "Кол - во изделий" << setw(18) << left << "Стоимость изделия" << setw(18) << left << "День изготовления" << setw(18) << left << "Месяц изготовления" << setw(18) << left << "Год изготовления" << endl;
- for (int i = 0; i < 140; i++)
- cout << "-";
- cout << endl;
- k = 1;
- };
- cout << setw(18) << left << t[i].fam << setw(18) << left << t[i].type << setw(18) << left << t[i].weight << setw(18) << left << t[i].quant << setw(18) << left << t[i].cost << setw(18) << left << t[i].dat.day << setw(18) << left << t[i].dat.month << setw(18) << left << t[i].dat.year << endl;
- for (int i = 0; i < 140; i++)
- cout << "-";
- cout << endl;
- k = 1;
- count1++;
- }
- }
- if (count1 == 0)
- {
- cout << "Такого изделия нет, хотете добавить? (ДА - 1; НЕТ - 0) " << endl;
- int ans;
- cin >> ans;
- if (ans == 1)
- add();
- }
- }
- virtual int start()
- {
- ifstream f("file.txt");
- if (f.fail()) return 0;
- t = (class food1*)malloc(64 * sizeof(class food1));
- while (!f.eof())
- {
- t[count].fam = (char*)calloc(256, sizeof(char));
- f >> t[count].fam;
- f >> t[count].type;
- f >> t[count].weight;
- f >> t[count].quant;
- f >> t[count].cost;
- f >> t[count].dat.day;
- f >> t[count].dat.month;
- f >> t[count].dat.year;
- count++;
- }
- f.close();
- return count;
- }
- virtual void printbase()
- {
- cout << endl;
- cout << endl;
- cout << setw(18) << left << "Название изделия" << setw(18) << left << "Тип изделия" << setw(18) << left << "Вес изделия" << setw(18) << left << "Кол - во изделий" << setw(18) << left << "Стоимость изделия" << setw(18) << left << "День изготовления" << setw(18) << left << "Месяц изготовления" << setw(18) << left << "Год изготовления" << endl;
- for (int i = 0; i < 140; i++)
- {
- cout << "-";
- }
- cout << endl;
- for (int i = 0; i < count; i++)
- {
- cout << setw(18) << left << t[i].fam << setw(18) << left << t[i].type << setw(18) << left << t[i].weight << setw(18) << left << t[i].quant << setw(18) << left << t[i].cost << setw(18) << left << t[i].dat.day << setw(18) << left << t[i].dat.month << setw(18) << left << t[i].dat.year << endl;
- for (int i = 0; i < 140; i++)
- cout << "-";
- cout << endl;
- }
- cout << endl;
- }
- virtual double num(void)
- {
- double buff;
- cin >> buff;
- while (cin.fail())
- {
- cin.clear();
- char c[30];
- cin >> c;
- cout << "Неверное значение, введите занаво:";
- cin >> buff;
- }
- return buff;
- }
- virtual void addnew(food1 f)
- {
- static int c = 10;//расширение сруктуры для десятка новых строчек
- if (c == 10)//если этот десяток закончился, то добавим
- {
- t = (class food1*)realloc(t, (count + 10) * sizeof(class food1));
- c = 0;
- }
- c++;
- t[count].fam = (char*)calloc(strlen(fam) + 1, sizeof(char));
- strcpy_s(t[count].fam, strlen(fam) + 1, fam);
- t[count].type = type;
- t[count].weight = weight;
- t[count].quant = quant;
- t[count].cost = cost;
- t[count].dat.day = dat.day;
- t[count].dat.month = dat.month;
- t[count].dat.year = dat.year;
- }
- virtual int add()
- {
- fam = (char*)calloc(256, sizeof(char));
- int readtype;
- double readweight;
- int readquant;
- double readcost;
- int readday;
- int readmonth;
- int readyear;
- class food1 tr;
- cout << "Введите название изделия: "; cin >> fam;
- tr.fam = fam;
- cout << "Введите тип изделия (1- булочка, 2-пирожок, 3-пирожное): "; cin >> readtype;
- tr.type = readtype;
- cout << "Введите вес изделия: "; cin >> readweight;
- tr.weight = readweight;
- cout << "Введите количество изделий: "; cin >> readquant;
- tr.quant = readquant;
- cout << "Введите стоимость изделия: "; cin >> readcost;
- tr.cost = readcost;
- cout << "Введите день изготовления изделия: "; cin >> readday;
- tr.dat.day = readday;
- cout << "Введите месяц изготовления изделия: "; cin >> readmonth;
- tr.dat.month = readmonth;
- cout << "Введите год изготовления изделия: "; cin >> readyear;
- tr.dat.year = readyear;
- addnew(tr);
- count++;
- return count;
- }
- virtual void sortir()
- {
- // Сортировка массива пузырьком
- bool k = 0; // для единичного вывода таблицы
- food1 * tmps = new food1[count];
- food1 * tmp = new food1;
- for (int i = 0; i < food1::count; i++)
- tmps[i] = t[i];
- for (int i = 0; i < food1::count; i++)
- {
- for (int j = i; j < food1::count; j++)
- {
- if (tmps[i].cost < tmps[j].cost) {
- // меняем элементы местами
- *tmp = tmps[i];
- tmps[i] = tmps[j];
- tmps[j] = *tmp;
- }
- }
- }
- double *p_darr = new double[count];
- for (int i = 0; i < count; i++)
- {
- p_darr[i] = t[i].cost;
- }
- sort(p_darr, p_darr + count);
- for (int i = 0; i < count; i++)
- {
- while (k == 0)
- {
- cout << setw(18) << left << "Название изделия" << setw(18) << left << "Тип изделия" << setw(18) << left << "Вес изделия" << setw(18) << left << "Кол - во изделий" << setw(18) << left << "Стоимость изделия" << setw(18) << left << "День изготовления" << setw(18) << left << "Месяц изготовления" << setw(18) << left << "Год изготовления" << endl;
- for (int i = 0; i < 140; i++)
- {
- cout << "-";
- }
- cout << endl;
- k = 1;
- };
- cout << setw(18) << left << tmps[i].fam << setw(18) << left << tmps[i].type << setw(18) << left << tmps[i].weight << setw(18) << left << tmps[i].quant << setw(18) << left << tmps[i].cost << setw(18) << left << tmps[i].dat.day << setw(18) << left << tmps[i].dat.month << setw(18) << left << tmps[i].dat.year << endl;
- for (int i = 0; i < 140; i++)
- cout << "-";
- cout << endl;
- k = 1;
- }
- delete[] p_darr;
- }
- virtual void end()
- {
- ofstream f("file.txt");
- for (int i = 0; i < food1::count; i++)
- {
- f << t[i].fam << endl;
- f << t[i].type << endl;
- f << t[i].weight << endl;
- f << t[i].quant << endl;
- f << t[i].cost << endl;
- f << t[i].dat.day << endl;
- f << t[i].dat.month << endl;
- f << t[i].dat.year;
- if (i < count - 1) f << endl;
- }
- f.close();
- free(t);
- }
- virtual void searchdate(int y, int m, int d)
- {
- int k = 0; //для единождого вывода шапки таблицы
- int count1 = 0; //для проверки на наличие владельца в базе
- for (int i = 0; i < food1::count; ++i)
- {
- int flag1;
- int flag2;
- int flag3;
- int p_tekyear; // текущий указатель
- int p_tekmonth; // текущий указатель
- int p_tekday; // текущий указатель
- p_tekyear = t[i].dat.year;
- p_tekmonth = t[i].dat.month;
- p_tekday = t[i].dat.day;
- flag1 = (y == p_tekyear);
- if (flag1 == 1)
- {
- flag2 = (m == p_tekmonth);
- if (flag2 == 1)
- {
- flag3 = (d == p_tekday);
- if (flag3 == 1)
- {
- while (k == 0)
- {
- cout << endl;
- cout << endl;
- cout << "Вот что удалось найти: " << endl;
- cout << endl;
- cout << endl;
- cout << setw(18) << left << "Название изделия" << setw(18) << left << "Тип изделия" << setw(18) << left << "Вес изделия" << setw(18) << left << "Кол - во изделий" << setw(18) << left << "Стоимость изделия" << setw(18) << left << "День изготовления" << setw(18) << left << "Месяц изготовления" << setw(18) << left << "Год изготовления" << endl;
- for (int i = 0; i < 140; i++)
- cout << "-";
- cout << endl;
- k++;
- };
- cout << setw(18) << left << t[i].fam << setw(18) << left << t[i].type << setw(18) << left << t[i].weight << setw(18) << left << t[i].quant << setw(18) << left << t[i].cost << setw(18) << left << t[i].dat.day << setw(18) << left << t[i].dat.month << setw(18) << left << t[i].dat.year << endl;
- for (int i = 0; i < 140; i++)
- cout << "-";
- cout << endl;
- cin.fail();
- cin.fail();
- k++;
- count1++;
- }
- }
- }
- }
- }
- virtual void searchdatemorethan(int y, int m, int d)
- {
- int k = 0; //для единождого вывода шапки таблицы
- int count1 = 0; //для проверки на наличие владельца в базе
- for (int i = 0; i < food1::count; ++i)
- {
- if (dat.year > y)
- if (dat.month > m)
- if (dat.day > d)
- {
- while (k == 0)
- {
- cout << endl;
- cout << endl;
- cout << "Вот что удалось найти: " << endl;
- cout << endl;
- cout << endl;
- cout << setw(18) << left << "Название изделия" << setw(18) << left << "Тип изделия" << setw(18) << left << "Вес изделия" << setw(18) << left << "Кол - во изделий" << setw(18) << left << "Стоимость изделия" << setw(18) << left << "День изготовления" << setw(18) << left << "Месяц изготовления" << setw(18) << left << "Год изготовления" << endl;
- for (int i = 0; i < 140; i++)
- cout << "-";
- cout << endl;
- k++;
- }
- cout << setw(18) << left << t[i].fam << setw(18) << left << t[i].type << setw(18) << left << t[i].weight << setw(18) << left << t[i].quant << setw(18) << left << t[i].cost << setw(18) << left << t[i].dat.day << setw(18) << left << t[i].dat.month << setw(18) << left << t[i].dat.year << endl;
- for (int i = 0; i < 140; i++)
- cout << "-";
- cout << endl;
- cin.fail();
- cin.fail();
- k++;
- count1++;
- }
- }
- for (int i = 0; i < food1::count; ++i)
- {
- if (!t[i])
- cout << t[i];
- }
- }
- };
- class food2 : public food1
- {
- public:
- char* fam;
- int quant;
- double cost;
- Date dat;
- Date product;
- food2(char* f, int t, double w, int q, double c, int day, int month, int year)
- {
- fam = f;
- type = t;
- weight = w;
- quant = q;
- cost = c;
- dat.day = day;
- dat.month = month;
- dat.year = year;
- }
- food2()
- {
- fam = (char*)calloc(256, sizeof(char));
- fam = strcpy(fam, "По умолчанию");
- type = 1;
- weight = 1;
- quant = 1;
- cost = 1;
- dat.day = 1;
- dat.month = 1;
- dat.year = 1;
- }
- food2(food2 &food2)
- {
- fam = (char*)calloc(256, sizeof(char));
- strcpy(fam, food2.fam);
- }
- ~food2()
- {
- free(fam);
- }
- int start() override
- {
- ifstream f("file.txt");
- if (f.fail()) return 0;
- t = (class food2*)malloc(64 * sizeof(class food2));
- while (!f.eof())
- {
- t[count].fam = (char*)calloc(256, sizeof(char));
- f >> t[count].fam;
- f >> t[count].type;
- f >> t[count].weight;
- f >> t[count].quant;
- f >> t[count].cost;
- f >> t[count].dat.day;
- f >> t[count].dat.month;
- f >> t[count].dat.year;
- count++;
- }
- f.close();
- return count;
- };
- void printbase() override
- {
- cout << endl;
- cout << endl;
- cout << setw(18) << left << "Название изделия" << setw(18) << left << "Тип изделия" << setw(18) << left << "Вес изделия" << setw(18) << left << "Кол - во изделий" << setw(18) << left << "Стоимость изделия" << setw(18) << left << "День изготовления" << setw(18) << left << "Месяц изготовления" << setw(18) << left << "Год изготовления" << endl;
- for (int i = 0; i < 140; i++)
- {
- cout << "-";
- }
- cout << endl;
- for (int i = 0; i < count; i++)
- {
- cout << setw(18) << left << t[i].fam << setw(18) << left << t[i].type << setw(18) << left << t[i].weight << setw(18) << left << t[i].quant << setw(18) << left << t[i].cost << setw(18) << left << t[i].dat.day << setw(18) << left << t[i].dat.month << setw(18) << left << t[i].dat.year << endl;
- for (int i = 0; i < 140; i++)
- cout << "-";
- cout << endl;
- }
- cout << endl;
- };
- double num() override
- {
- double buff;
- cin >> buff;
- while (cin.fail())
- {
- cin.clear();
- char c[30];
- cin >> c;
- cout << "Неверное значение, введите занаво:";
- cin >> buff;
- }
- return buff;
- };
- void addnew(food1 f) override
- {
- static int c = 10;//расширение сруктуры для десятка новых строчек
- if (c == 10)//если этот десяток закончился, то добавим
- {
- t = (class food1*)realloc(t, (count + 10) * sizeof(class food1));
- c = 0;
- }
- c++;
- t[count].fam = (char*)calloc(strlen(fam) + 1, sizeof(char));
- strcpy_s(t[count].fam, strlen(fam) + 1, fam);
- t[count].type = type;
- t[count].weight = weight;
- t[count].quant = quant;
- t[count].cost = cost;
- t[count].dat.day = dat.day;
- t[count].dat.month = dat.month;
- t[count].dat.year = dat.year;
- };
- int add() override
- {
- fam = (char*)calloc(256, sizeof(char));
- int readtype;
- double readweight;
- int readquant;
- double readcost;
- int readday;
- int readmonth;
- int readyear;
- class food1 tr;
- cout << "Введите название изделия: "; cin >> fam;
- tr.fam = fam;
- cout << "Введите тип изделия (1- булочка, 2-пирожок, 3-пирожное): "; cin >> readtype;
- tr.type = readtype;
- cout << "Введите вес изделия: "; cin >> readweight;
- tr.weight = readweight;
- cout << "Введите количество изделий: "; cin >> readquant;
- tr.quant = readquant;
- cout << "Введите стоимость изделия: "; cin >> readcost;
- tr.cost = readcost;
- cout << "Введите день изготовления изделия: "; cin >> readday;
- tr.dat.day = readday;
- cout << "Введите месяц изготовления изделия: "; cin >> readmonth;
- tr.dat.month = readmonth;
- cout << "Введите год изготовления изделия: "; cin >> readyear;
- tr.dat.year = readyear;
- addnew(tr);
- count++;
- return count;
- };
- void sortir() override
- {
- // Сортировка массива пузырьком
- bool k = 0; // для единичного вывода таблицы
- food1 * tmps = new food1[count];
- food1 * tmp = new food1;
- for (int i = 0; i < food2::count; i++)
- tmps[i] = t[i];
- for (int i = 0; i < food2::count; i++)
- {
- for (int j = i; j < food2::count; j++)
- {
- if (tmps[i].cost < tmps[j].cost) {
- // меняем элементы местами
- *tmp = tmps[i];
- tmps[i] = tmps[j];
- tmps[j] = *tmp;
- }
- }
- }
- double *p_darr = new double[count];
- for (int i = 0; i < count; i++)
- {
- p_darr[i] = t[i].cost;
- }
- sort(p_darr, p_darr + count);
- for (int i = 0; i < count; i++)
- {
- while (k == 0)
- {
- cout << setw(18) << left << "Название изделия" << setw(18) << left << "Тип изделия" << setw(18) << left << "Вес изделия" << setw(18) << left << "Кол - во изделий" << setw(18) << left << "Стоимость изделия" << setw(18) << left << "День изготовления" << setw(18) << left << "Месяц изготовления" << setw(18) << left << "Год изготовления" << endl;
- for (int i = 0; i < 140; i++)
- {
- cout << "-";
- }
- cout << endl;
- k = 1;
- };
- cout << setw(18) << left << tmps[i].fam << setw(18) << left << tmps[i].type << setw(18) << left << tmps[i].weight << setw(18) << left << tmps[i].quant << setw(18) << left << tmps[i].cost << setw(18) << left << tmps[i].dat.day << setw(18) << left << tmps[i].dat.month << setw(18) << left << tmps[i].dat.year << endl;
- for (int i = 0; i < 140; i++)
- cout << "-";
- cout << endl;
- k = 1;
- }
- delete[] p_darr;
- };
- void end() override
- {
- ofstream f("file.txt");
- for (int i = 0; i < food2::count; i++)
- {
- f << t[i].fam << endl;
- f << t[i].type << endl;
- f << t[i].weight << endl;
- f << t[i].quant << endl;
- f << t[i].cost << endl;
- f << t[i].dat.day << endl;
- f << t[i].dat.month << endl;
- f << t[i].dat.year;
- if (i < count - 1) f << endl;
- }
- f.close();
- free(t);
- };
- void searchdate(int y, int m, int d) override
- {
- int k = 0; //для единождого вывода шапки таблицы
- int count1 = 0; //для проверки на наличие владельца в базе
- for (int i = 0; i < food2::count; ++i)
- {
- int flag1;
- int flag2;
- int flag3;
- int p_tekyear; // текущий указатель
- int p_tekmonth; // текущий указатель
- int p_tekday; // текущий указатель
- p_tekyear = t[i].dat.year;
- p_tekmonth = t[i].dat.month;
- p_tekday = t[i].dat.day;
- flag1 = (y == p_tekyear);
- if (flag1 == 1)
- {
- flag2 = (m == p_tekmonth);
- if (flag2 == 1)
- {
- flag3 = (d == p_tekday);
- if (flag3 == 1)
- {
- while (k == 0)
- {
- cout << endl;
- cout << endl;
- cout << "Вот что удалось найти: " << endl;
- cout << endl;
- cout << endl;
- cout << setw(18) << left << "Название изделия" << setw(18) << left << "Тип изделия" << setw(18) << left << "Вес изделия" << setw(18) << left << "Кол - во изделий" << setw(18) << left << "Стоимость изделия" << setw(18) << left << "День изготовления" << setw(18) << left << "Месяц изготовления" << setw(18) << left << "Год изготовления" << endl;
- for (int i = 0; i < 140; i++)
- cout << "-";
- cout << endl;
- k++;
- };
- cout << setw(18) << left << t[i].fam << setw(18) << left << t[i].type << setw(18) << left << t[i].weight << setw(18) << left << t[i].quant << setw(18) << left << t[i].cost << setw(18) << left << t[i].dat.day << setw(18) << left << t[i].dat.month << setw(18) << left << t[i].dat.year << endl;
- for (int i = 0; i < 140; i++)
- cout << "-";
- cout << endl;
- cin.fail();
- cin.fail();
- k++;
- count1++;
- }
- }
- }
- }
- };
- void searchdatemorethan(int y, int m, int d) override
- {
- int k = 0; //для единождого вывода шапки таблицы
- int count1 = 0; //для проверки на наличие владельца в базе
- for (int i = 0; i < food1::count; ++i)
- {
- if (dat.year > y)
- if (dat.month > m)
- if (dat.day > d)
- {
- while (k == 0)
- {
- cout << endl;
- cout << endl;
- cout << "Вот что удалось найти: " << endl;
- cout << endl;
- cout << endl;
- cout << setw(18) << left << "Название изделия" << setw(18) << left << "Тип изделия" << setw(18) << left << "Вес изделия" << setw(18) << left << "Кол - во изделий" << setw(18) << left << "Стоимость изделия" << setw(18) << left << "День изготовления" << setw(18) << left << "Месяц изготовления" << setw(18) << left << "Год изготовления" << endl;
- for (int i = 0; i < 140; i++)
- cout << "-";
- cout << endl;
- k++;
- }
- cout << setw(18) << left << t[i].fam << setw(18) << left << t[i].type << setw(18) << left << t[i].weight << setw(18) << left << t[i].quant << setw(18) << left << t[i].cost << setw(18) << left << t[i].dat.day << setw(18) << left << t[i].dat.month << setw(18) << left << t[i].dat.year << endl;
- for (int i = 0; i < 140; i++)
- cout << "-";
- cout << endl;
- cin.fail();
- cin.fail();
- k++;
- count1++;
- }
- }
- for (int i = 0; i < food2::count; ++i)
- {
- if (!t[i])
- cout << t[i];
- }
- };
- };
- void searchtype(int type)
- {
- int k = 0; //для единождого вывода шапки таблицы
- int count1 = 0; //для проверки на наличие владельца в базе
- for (int i = 0; i < food1::count; ++i)
- {
- int flag;
- int p_tek; // текущий указатель
- p_tek = t[i].type;
- flag = (type == p_tek);
- if (flag == 1)
- {
- while (k == 0)
- {
- cout << endl;
- cout << endl;
- cout << "Вот что удалось найти: " << endl;
- cout << endl;
- cout << endl;
- cout << setw(18) << left << "Название изделия" << setw(18) << left << "Тип изделия" << setw(18) << left << "Вес изделия" << setw(18) << left << "Кол - во изделий" << setw(18) << left << "Стоимость изделия" << setw(18) << left << "День изготовления" << setw(18) << left << "Месяц изготовления" << setw(18) << left << "Год изготовления" << endl;
- for (int i = 0; i < 140; i++)
- cout << "-";
- cout << endl;
- k++;
- };
- cout << setw(18) << left << t[i].fam << setw(18) << left << t[i].type << setw(18) << left << t[i].weight << setw(18) << left << t[i].quant << setw(18) << left << t[i].cost << setw(18) << left << t[i].dat.day << setw(18) << left << t[i].dat.month << setw(18) << left << t[i].dat.year << endl;
- for (int i = 0; i < 140; i++)
- cout << "-";
- cout << endl;
- cin.fail();
- cin.fail();
- k++;
- count1++;
- }
- }
- }
- ostream &operator << (ostream& cout, const food1& r)
- {
- cout << "Изделия с нормальным сроком годности" << endl;
- cout << endl;
- cout << endl;
- cout << setw(18) << left << "Название изделия" << setw(18) << left << "Тип изделия" << setw(18) << left << "Вес изделия" << setw(18) << left << "Кол - во изделий" << setw(18) << left << "Стоимость изделия" << setw(18) << left << "День изготовления" << setw(18) << left << "Месяц изготовления" << setw(18) << left << "Год изготовления" << endl;
- for (int i = 0; i < 140; i++)
- cout << "-";
- cout << endl;
- cout << setw(18) << left << r.fam << setw(18) << left << setw(18) << left << r.type << setw(18) << left << r.weight << setw(18) << left << r.quant << setw(18) << left << r.cost << setw(18) << left << r.dat.day << setw(18) << left << r.dat.month << setw(18) << left << r.dat.year << endl;
- for (int i = 0; i < 140; i++)
- cout << "-";
- cout << endl;
- return cout;
- }
- bool operator ! (const food1& r)
- {
- int day = 2;
- int month = 2;
- int year = 2;
- /*cout << "Введите год создания изделия" << endl;
- cin >> day;
- cout << "Введите месяц создания изделия" << endl;
- cin >> month;
- cout << "Введите день создания изделия" << endl;
- cin >> year;*/
- if (r.dat.year > year)
- if (r.dat.month > month)
- if (r.dat.day > day)
- return true;
- return false;
- }
- int food1::count;
- int main()
- {
- food1 bread;
- setlocale(LC_ALL, "Russian");
- bread.start(); //считывание из файла
- bool cont = 0;
- do {
- int choose;
- cout << "Выберите действие:\n" << "1. Печать всех элементов базы \n" << "2. Добавить новый элемент \n" << "3. Поиск изделия по названию \n" << "4. Фильтр по типу изделия \n" << "5. Сортировать по цене (сначало дорогие изделия) \n" << "6. Поиск по дате изготовления\n" << "7. Поиск изделий, у которых срок годности не истек\n" << "8. Выход (с сохранением данных) \n" << endl;
- cout << "Ваш выбор: ";
- cin >> choose;
- while (cin.fail())
- {
- cin.clear();
- char c[30];
- cin >> c;
- cout << "Неверное значение, введите ещё раз:";
- cin >> choose;
- };
- cout << "Количество изделий в базе: ";
- cout << food1::count << endl;
- cout << endl;
- switch (choose)
- {
- case 1: {
- bread.printbase(); //печать базы
- cout << endl << endl;
- break;
- };
- case 2: {
- bread.add(); //довавить изделие
- cout << endl << endl;
- break;
- };
- case 3: {
- char fam[30]; //Поиск изделия по названию
- cout << "Введите название: ";
- cin >> fam;
- bread.searсhfam(fam); cout << endl << endl;
- break;
- };
- case 4: { //Фильтр по типу изделия
- int type;
- cout << "Введите тип изделия: ";
- cin >> type;
- searchtype(type); cout << endl << endl;
- break;
- };
- case 5: { //сортироввка по цене
- bread.sortir();
- cout << endl << endl;
- break;
- };
- case 6: {
- int year;
- cout << "Введите год создания изделия: ";
- cin >> year;
- int month;
- cout << "Введите месяц создания изделия: ";
- cin >> month;
- cout << "Введите день создания изделия: ";
- int day;
- cin >> day;
- bread.searchdate(year, month, day);
- cout << endl << endl;
- break;
- }
- case 7: {
- int year;
- cout << "Введите год создания изделия: ";
- cin >> year;
- int month;
- cout << "Введите месяц создания изделия: ";
- cin >> month;
- cout << "Введите день создания изделия: ";
- int day;
- cin >> day;
- bread.searchdatemorethan(year, month, day);
- cout << endl << endl;
- break;
- }
- case 8: bread.end(); //ошибка
- break;
- default: cout << "Нет такого действия " << endl;
- };
- cout << "Хотите продолжить? (ДА - 1; НЕТ - 0) ";
- cin >> cont;
- } while (cont == 1);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement