From c57af373bb02dda147744543c8ded47b0fd5ac94 Mon Sep 17 00:00:00 2001 From: Wolf Date: Sat, 3 May 2025 11:24:19 +0000 Subject: [PATCH] Upload files to "/" --- main.cpp | 58 +++++++++++++++++++++++++++++++++++++ menedjer.cbp | 40 +++++++++++++++++++++++++ task.cpp | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++ task.h | 18 ++++++++++++ 4 files changed, 198 insertions(+) create mode 100644 main.cpp create mode 100644 menedjer.cbp create mode 100644 task.cpp create mode 100644 task.h diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..128d768 --- /dev/null +++ b/main.cpp @@ -0,0 +1,58 @@ +#include +#include +#include "task.h" +#include + +using namespace std; + + + + +int main() { + vector spysok; + int vibor; + + while (true) { + cout << "\n--- Меню ---\n"; + cout << "1. Додати завдання\n"; + cout << "2. Показати список зав дань\n"; + cout << "3. Позначити завдання як виконане\n"; + cout << "4. Зберегти завдання у файл\n"; // Додано + cout << "5. Завантажити завдання з файлу\n"; // Додано + cout << "6. Вийти\n"; + cout << "Ваш вибір: "; + cout<>vibor; + cin.ignore(); // очищає буфер перед getline +if(vibor>0){ switch (vibor) { + case 1: + dodatyZavdannya(spysok); + break; + case 2: + pokazatySpysok(spysok); + break; + case 3: + poznachytyVykonane(spysok); + break; + case 4: + zberihytyUFile(spysok); + break; + case 5: + zavantazhytyZFile(spysok); + break; + case 6: + cout << "До побачення!" << endl; + return 0; + default: + cout << "Невірний вибір! Спробуйте ще раз." << endl; + } }else{cout << "Помилка: введіть число!" << endl; + cin.clear(); // скидає стан помилки + cin.ignore(); // очищає буфер до кінця рядка + continue; } + + + + +} +return 0;} + diff --git a/menedjer.cbp b/menedjer.cbp new file mode 100644 index 0000000..686ed85 --- /dev/null +++ b/menedjer.cbp @@ -0,0 +1,40 @@ + + + + + + diff --git a/task.cpp b/task.cpp new file mode 100644 index 0000000..6311af3 --- /dev/null +++ b/task.cpp @@ -0,0 +1,82 @@ +#include "task.h" +#include +#include +#include +#include +using namespace std; + +void dodatyZavdannya(vector& spysok) { + Task t; + cout << "Введіть назву завдання: "; + //cin.ignore(); // очищає буфер від залишків '\n' + + getline(cin,t.nazva); + t.vykonano= false; + spysok.push_back(t); +} + + +void pokazatySpysok(const vector& spysok){ + if(spysok.empty()){ + cout<<"Список порожній"<<"\n";} else{cout<<"Список завдань:"<& spysok){ + + size_t i=0; + for(size_t j=0; j>i; + + if(i>=1 && i <=spysok.size()){ spysok[i-1].vykonano =true; + cout<<"Статус змінено "<& spysok) { + string name; + //cin.ignore(); + getline(cin, name); + + ofstream file(name); + if (!file.is_open()) { + cout << "невдалося відкрити файл" << endl; + return; + } + + for (const Task& t : spysok) { + file << t.nazva << "|" << (t.vykonano ? "Виконано" : "Не виконано") << endl; + } + cout << "завдання збережено в файл: " << name << endl; +} + +void zavantazhytyZFile(std::vector& spysok) { + string name; + cout << "Ведіть назву файлу який хочете відкрити: "; + + getline(cin, name); + + ifstream file(name); + if (!file.is_open()) { + cout << "не вдалося відкрити файл" << endl; + return; + } + + string line; + while (getline(file, line)) { + size_t delimiterPos = line.find('|'); + if (delimiterPos != string::npos) { + Task t; + t.nazva = line.substr(0, delimiterPos); + string status = line.substr(delimiterPos + 1); + t.vykonano = (status == "Виконано"); + spysok.push_back(t); + } + } + + cout << "Завдання успішно завантажено з файлу: " << name << endl; +} diff --git a/task.h b/task.h new file mode 100644 index 0000000..03336fb --- /dev/null +++ b/task.h @@ -0,0 +1,18 @@ + +#pragma once +#include +#include +using namespace std; + +struct Task { + string nazva; + bool vykonano; +}; + +void dodatyZavdannya(vector& spysok); +void pokazatySpysok(const vector& spysok); +void poznachytyVykonane(vector& spysok); +void zberihytyUFile(std::vector& spysok); +void zavantazhytyZFile(std::vector& spysok); + +