소스코드
#include <iostream>
#include <vector>
#include <string>
using namespace std;
// Function to display the menu
void displayMenu() {
cout << "\nTo-Do List Manager\n";
cout << "-------------------\n";
cout << "1. Add Task\n";
cout << "2. View Tasks\n";
cout << "3. Mark Task as Done\n";
cout << "4. Clear Completed Tasks\n";
cout << "5. Exit\n";
cout << "Enter your choice: ";
}
int main() {
vector<string> tasks;
vector<bool> isCompleted;
int choice;
do {
displayMenu();
cin >> choice;
switch (choice) {
case 1: {
string task;
cout << "Enter a new task: ";
cin.ignore();
getline(cin, task);
tasks.push_back(task);
isCompleted.push_back(false);
cout << "Task added successfully.\n";
break;
}
case 2: {
if (tasks.empty()) {
cout << "No tasks in the list.\n";
} else {
cout << "Tasks:\n";
for (size_t i = 0; i < tasks.size(); i++) {
cout << (isCompleted[i] ? "[X] " : "[ ] ") << tasks[i] << endl;
}
}
break;
}
case 3: {
int taskIndex;
cout << "Enter the index of the task to mark as done: ";
cin >> taskIndex;
if (taskIndex >= 0 && taskIndex < static_cast<int>(tasks.size())) {
isCompleted[taskIndex] = true;
cout << "Task marked as done.\n";
} else {
cout << "Invalid index.\n";
}
break;
}
case 4: {
int removed = 0;
for (size_t i = 0; i < tasks.size(); i++) {
if (isCompleted[i]) {
tasks.erase(tasks.begin() + i);
isCompleted.erase(isCompleted.begin() + i);
i--; // Adjust the loop index
removed++;
}
}
if (removed > 0) {
cout << removed << " completed tasks removed.\n";
} else {
cout << "No completed tasks to remove.\n";
}
break;
}
case 5:
cout << "Goodbye!\n";
break;
default:
cout << "Invalid choice. Please try again.\n";
}
} while (choice != 5);
return 0;
}
출력 결과
To-Do List Manager
-------------------
1. Add Task
2. View Tasks
3. Mark Task as Done
4. Clear Completed Tasks
5. Exit
Enter your choice: 1
Enter a new task: Buy groceries
Task added successfully.
To-Do List Manager
-------------------
1. Add Task
2. View Tasks
3. Mark Task as Done
4. Clear Completed Tasks
5. Exit
Enter your choice: 1
Enter a new task: Finish homework
Task added successfully.
To-Do List Manager
-------------------
1. Add Task
2. View Tasks
3. Mark Task as Done
4. Clear Completed Tasks
5. Exit
Enter your choice: 2
Tasks:
[ ] Buy groceries
[ ] Finish homework
To-Do List Manager
-------------------
1. Add Task
2. View Tasks
3. Mark Task as Done
4. Clear Completed Tasks
5. Exit
Enter your choice: 3
Enter the index of the task to mark as done: 0
Task marked as done.
To-Do List Manager
-------------------
1. Add Task
2. View Tasks
3. Mark Task as Done
4. Clear Completed Tasks
5. Exit
Enter your choice: 2
Tasks:
[X] Buy groceries
[ ] Finish homework
To-Do List Manager
-------------------
1. Add Task
2. View Tasks
3. Mark Task as Done
4. Clear Completed Tasks
5. Exit
Enter your choice: 4
1 completed tasks removed.
To-Do List Manager
-------------------
1. Add Task
2. View Tasks
3. Mark Task as Done
4. Clear Completed Tasks
5. Exit
Enter your choice: 2
Tasks:
[ ] Finish homework
To-Do List Manager
-------------------
1. Add Task
2. View Tasks
3. Mark Task as Done
4. Clear Completed Tasks
5. Exit
Enter your choice: 5
Goodbye!
'Programming language > C++' 카테고리의 다른 글
[C++] 환율 계산 프로그램 (0) | 2023.10.06 |
---|---|
[C++] 행맨(Hang man) 구현하기 (0) | 2023.10.06 |
[C++] 텍스트 편집기 구현하기 (0) | 2023.10.06 |
[C++] 업다운 게임 구현하기 (숫자맞추기) (0) | 2023.10.06 |
[C++] 계산기 만들기 (0) | 2023.10.06 |