Убедитесь, что функция изменения статуса выполнения работает правильно.
Проверьте, что список задач возвращается в правильном порядке.
Добавьте тесты для ситуаций с пустым списком задач и изменением статуса несуществующей задачи.
ОПИСАНИЕ КОДА
Каждая задача представляется структурой, содержащей уникальный идентификатор, описание и статус выполнения (выполнена или нет). Используйте вектор для хранения задач. Функции должны предоставлять возможность добавления новых задач, изменения статуса выполнения и получения списка задач.
Реализация (C++):
#include <iostream>
#include <vector>
// Структура, представляющая задачу
struct Task {
int id; // Уникальный идентификатор задачи
std::string description; // Описание задачи
bool isCompleted; // Флаг, указывающий, выполнена ли задача
// Конструктор для инициализации задачи
Task(int taskId, const std::string& taskDescription)
: id(taskId), description(taskDescription), isCompleted(false) {}
};
// Функция для добавления новой задачи в вектор задач
void addTask(std::vector<Task>& tasks, int& nextTaskId, const std::string& description) {
tasks.emplace_back(nextTaskId++, description); // Создаем новую задачу и добавляем в вектор
}
// Функция для пометки задачи с заданным идентификатором как выполненной
void completeTask(std::vector<Task>& tasks, int taskId) {
for (Task& task : tasks) {
if (task.id == taskId) {
task.isCompleted = true; // Помечаем задачу как выполненную
break;
}
}
}
// Функция для получения копии вектора задач
std::vector<Task> getTasks(const std::vector<Task>& tasks) {
return tasks;
}
int main() {
// Пример использования функций
std::vector<Task> tasks; // Вектор для хранения задач
int nextTaskId = 1; // Идентификатор следующей задачи
// Добавление нескольких задач
addTask(tasks, nextTaskId, "Подготовить отчет");
addTask(tasks, nextTaskId, "Провести совещание");
addTask(tasks, nextTaskId, "Отправить письмо");
completeTask(tasks, 2); // Пометка второй задачи как выполненной
// Получение копии вектора задач и вывод информации о каждой задаче
std::vector<Task> allTasks = getTasks(tasks);
for (const Task& task : allTasks) {
std::cout << "ID: " << task.id << ", Описание: " << task.description
<< ", Выполнена: " << (task.isCompleted ? "Да" : "Нет") << std::endl;
}
return 0;
}