kyrs4a
Never
#include <iostream> #include <fstream> #include <string> #include <locale> #include <vector> #include <iomanip> using namespace std; struct factory { int day, month, year, workshopNumber, amountOfProduction; string product, name, surname; }; bool isFileOpen(string FILE_NAME1) {//проверка на открытие файла ifstream fin(FILE_NAME1, ios::in); if (!fin.is_open()) return false; else { fin.close(); return true; } } void writeInFileWorkers(vector<factory> &factory) { ofstream fout("factory.txt", ios_base::out | ios_base::trunc);//открываем файл, удаляем всё что в нем было и записываем из вектора for (int i = 0; i < factory.size(); i++) {//запись из вектора в файл fout << factory[i].day << endl << factory[i].month << endl << factory[i].year << endl << factory[i].amountOfProduction << endl << factory[i].workshopNumber << endl << factory[i].name << endl << factory[i].surname << endl << factory[i].product << endl; } fout.close();//закрытие файла } int checkOfDigit() {//проверка на ввод цифры int number; cin >> number; while (!cin)//пока не будет правильно введен { cin.clear(); cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); cout << "Введите корректные данные\n"; cin >> number; } return number; } void addWorkshop(vector<factory> &factory) {//добавить цех struct factory workshop; do {//ввод информации cout << "Введите день: "; workshop.day = checkOfDigit(); } while (workshop.day <= 0 || workshop.day > 31); do { cout << "Введите месяц: "; workshop.month = checkOfDigit(); } while (workshop.month <= 0 || workshop.month > 12); cout << "Введите год: "; workshop.year = checkOfDigit(); do { cout << "Введите номер цеха: "; workshop.workshopNumber = checkOfDigit(); } while (workshop.workshopNumber <= 0); do { cout << "Введите количество продукции: "; workshop.amountOfProduction = checkOfDigit(); } while (workshop.workshopNumber<0); cout << "Введите наименование продукции: "; cin >> workshop.product; cout << "Введите имя ответственного: "; cin >> workshop.name; cout << "Введите фамилию ответственного: "; cin >> workshop.surname; factory.push_back(workshop);//добавляем в конец вектора writeInFileWorkers(factory);//перезаписываем в файл } void writeInVector(vector<factory> &factory) {//запись в вектор из файла ifstream fin("factory.txt", ios_base::in); struct factory info; fin.seekg(0, ios_base::beg);//указатель файла в начало int i = 0; while (fin>>info.day) {//если не конец файла то считываем fin >> info.month >> info.year >> info.amountOfProduction >> info.workshopNumber >> info.name >> info.surname >> info.product; factory.push_back(info);//добавляем в вектор } fin.close();//закрываем файл } bool checkForAvailability(string name, int pos, vector<factory> factory, int workshopNumber) {//проверка на наличие по позиции for (int i = 0; i < pos; i++) { if (name == factory[i].product && workshopNumber==factory[i].workshopNumber) return true;//если встретилось вернуть true } return false; } void drawHead() {//вывод шапки cout << setw(10) << "| Номер цеха |"; cout << setw(6) << "| Наименование продукции |"; cout << setw(6) << "| Количество продукции |"; cout << endl; } void searchByDate(vector<factory> factory){//поиск по дате int workshopNumber, i, j, day1, month1, year1, day2, month2, year2, totalAmountOfProduction=0; bool flag = false; cout << "Введите номер цеха:";//ввод информации workshopNumber = checkOfDigit(); do { cout << "Введите с какого дня:"; day1 = checkOfDigit(); } while (day1 <= 0 || day1>31); do { cout << "Введите с какого месяца:"; month1 = checkOfDigit(); } while (month1 <= 0 || month1>12); do { cout << "Введите с какого года:"; year1 = checkOfDigit(); } while (year1 < 0); do { cout << "Введите по какой день:"; day2 = checkOfDigit(); } while (day2 <= 0 || day2 > 31); do { cout << "Введите по какой месяц:"; month2 = checkOfDigit(); } while (month2<=0 || month2>12); do { cout << "Введите по какой год:"; year2 = checkOfDigit(); } while (year2 <= 0); system("cls"); drawHead();//рисуем шапку for (i = 0; i < factory.size(); i++) {//поиск информации за промежуток времени totalAmountOfProduction = 0; if (factory[i].workshopNumber == workshopNumber) { flag = true; if (checkForAvailability(factory[i].product, i, factory,workshopNumber) == false) {//проверка на совпадение продукта и номера цеха for (j = i; j < factory.size(); j++) { if (workshopNumber==factory[j].workshopNumber && factory[i].product == factory[j].product && (factory[j].day>=day1 && factory[j].day<=day2) && (factory[j].month >= month1 && factory[j].month <= month2) && (factory[j].year >= year1 && factory[j].year <= year2)) totalAmountOfProduction += factory[j].amountOfProduction; } if (totalAmountOfProduction != 0)//если продукция найдена вывод cout << setw(13) << workshopNumber << setw(26) << factory[i].product << setw(24) << totalAmountOfProduction << endl; else cout << setw(13) << workshopNumber << setw(26) << factory[i].product << setw(24) << "Нет продукции" << endl;//иначе вывод "Нет продукции" } } } if (flag == false) {//если цех не был найден system("cls"); cout << "Цех не найден." << endl; } } void menu() {//вывод меню cout << "---------МЕНЮ---------" << endl; cout << "1.Просмотр информации." << endl; cout << "2.Просмотр информации по дате." << endl; cout << "3.Добавить информацию." << endl; cout << "4.Выход." << endl; } int numberOfMenu() {//проверка введенного пункта меню int numb; do { numb = checkOfDigit(); } while (numb < 0 || numb>4); return numb; } void showInfo(vector<factory> factory) {//вывод информации о цехах cout << setw(10) << "| Номер цеха |"; cout << setw(6) << "| Дата |"; cout << setw(6) << "| Наименование продукции |"; cout << setw(6) << "| Количество продукции |"; cout << setw(6) << "| ФИО |" << endl; for (int i = 0; i < factory.size(); i++) { cout << setw(13) << factory[i].workshopNumber << setw(6) << factory[i].day<<"." << factory[i].month<<"." << factory[i].year << setw(26) << factory[i].product << setw(24) << factory[i].amountOfProduction <<setw(12)<< factory[i].name << " " << factory[i].surname << endl; } } void useFuncUser(vector<factory> &factory) {//проход по меню system("cls"); menu(); int run; run = numberOfMenu(); while (1) { system("cls"); switch (run) { case 1: showInfo(factory); menu(); run = numberOfMenu(); break; case 2: searchByDate(factory); menu(); run = numberOfMenu(); break; case 3: addWorkshop(factory); system("cls"); menu(); run = numberOfMenu(); break; case 4: system("pause"); exit(1); break; } } } int main() { setlocale(LC_ALL, "Rus"); vector<factory> factory; writeInVector(factory); useFuncUser(factory); }
Raw Text
-
Untitled
6 min ago
-
WhiteBoxxx - Nancy A Gorgeous Ukrainian Babe Best Valentine's Day Fetish Sex Surprise
21 min ago
-
Adult Telegram Channels
36 min ago
-
ytgbfytghbvcytrfytrgv
39 min ago
-
xgcfhvuguiyiuy
50 min ago
-
This pornhub milf with a big ass will fulfill every wish of her favorite subscriber!
51 min ago
-
hand crush glass shoes
1 hour ago
-
gyftdr sesdfg cdfgghj dxf
1 hour ago
-
Licking Her Sweet Pussy And Put Thick Cock Inside! 4K
1 hour ago
-
CP💎 FOLDER 💯📁 R@PED😈😏 LITTLE GIRL🍆👧💦💦
1 hour ago