- Màn hình chào mừng: Hiển thị thông điệp chào mừng khi khởi động ứng dụng.
- Xem danh sách công việc: Xem tất cả các công việc hiện có trong danh sách ToDo.
- Thêm công việc: Tạo mới các công việc để thêm vào danh sách.
- Xóa công việc: Xóa các công việc khỏi danh sách theo số thứ tự.
- Cập nhật công việc: Thêm các công việc mới vào danh sách hiện tại.
- Xem danh sách công việc: Chọn
1
trong menu chính để xem tất cả các công việc hiện có. - Thêm công việc: Chọn
2
để tạo mới các công việc. - Xóa công việc: Chọn
3
và nhập số thứ tự của công việc muốn xóa. - Cập nhật công việc: Chọn
4
để thêm công việc mới vào cuối danh sách. - Thoát: Chọn
5
để thoát khỏi ứng dụng.
- Trình biên dịch C (ví dụ: GCC)
- Giao diện dòng lệnh (CLI) trên hệ thống hỗ trợ C (ví dụ: Windows, Linux, macOS)
- Clone repository này về máy:
git clone https://github.com/your-username/todo-list-c.git
- Biên dịch chương trình bằng GCC hoặc bất kỳ trình biên dịch C nào khác:
gcc -o todo main.c
- Chạy chương trình:
./todo
typedef struct ToDo {
char data[100];
struct ToDo *link;
int count;
} todo;
Struct này định nghĩa một mục To-Do đơn lẻ, chứa phần mô tả nhiệm vụ (data), con trỏ tới nhiệm vụ tiếp theo (link), và vị trí của nhiệm vụ trong danh sách (count).
welcomeUser()
: Hiển thị thông điệp chào mừng và thiết lập màu sắc cho giao diện console.seeToDo()
: Hiển thị danh sách các nhiệm vụ hiện có.createToDo()
: Cho phép người dùng thêm nhiệm vụ mới vào danh sách.deleteToDo()
: Xóa một nhiệm vụ khỏi danh sách dựa trên số thứ tự của nó.updateToDo()
: Thêm nhiệm vụ mới vào cuối danh sách hiện có.fixCount()
: Cập nhật lại số thứ tự của các nhiệm vụ sau khi danh sách bị thay đổi.
Hàm main
chạy một vòng lặp vô hạn, liên tục hiển thị menu để người dùng tương tác với danh sách To-Do cho đến khi họ chọn thoát.
- Thực hiện lưu/đọc dữ liệu từ tệp tin để lưu trữ danh sách To-Do và tải lại khi khởi động chương trình.
- Thêm xử lý lỗi cho việc cấp phát bộ nhớ thất bại.
Do ứng dụng còn một số lỗi không mong muốn nên nếu bạn muốn đóng góp vào dự án, hãy fork repository này, tạo một nhánh mới, thực hiện các thay đổi và gửi pull request. Cảm ơn bạn !