82 lines
2.6 KiB
C++
82 lines
2.6 KiB
C++
#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;
|
||
}
|