Menedjer_Zavdany/task.cpp
2025-05-03 11:24:19 +00:00

82 lines
2.6 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "task.h"
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
void dodatyZavdannya(vector<Task>& spysok) {
Task t;
cout << "Введіть назву завдання: ";
//cin.ignore(); // очищає буфер від залишків '\n'
getline(cin,t.nazva);
t.vykonano= false;
spysok.push_back(t);
}
void pokazatySpysok(const vector<Task>& spysok){
if(spysok.empty()){
cout<<"Список порожній"<<"\n";} else{cout<<"Список завдань:"<<endl;cout<<endl; for(size_t i=0; i<spysok.size();i++){
cout<<i+1<<"."<<spysok[i].nazva<<"["<<(spysok[i].vykonano ? "Виконано" : "Не виконано")<<"]"<<endl;}
}
}
void poznachytyVykonane(vector<Task>& spysok){
size_t i=0;
for(size_t j=0; j<spysok.size(); ++j){
cout<<j+1<<"."<<spysok[j].nazva<<"["<<(spysok[j].vykonano ? "виконано" : "Не виконано")<<"]"<<endl;}
cout<<"\nВведіть номер завдання, статус якого хочете змінити: "<<endl; cin>>i;
if(i>=1 && i <=spysok.size()){ spysok[i-1].vykonano =true;
cout<<"Статус змінено "<<spysok[i-1].nazva<<" Виконано"<<endl;}else{cout<<"Невірний номер завдання"<<endl;}
}
void zberihytyUFile(std::vector<Task>& 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<Task>& 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;
}