lOMoARcPSD| 47205411
LỜI CẢM ƠN
lOMoARcPSD| 47205411
2
Trước khi vào bài tập lớn, nhóm 1 chúng em xin gửi lời cảm ơn sâu sắc đến
Đinh Thị với sự hướng dẫn và giảng dạy nhiệt tình. đã truyền đạt lại cho chúng
em vô vàn kiến thức đó hành trang quý giá trên con đường phát triển sau này của
mỗi chúng em.
Về học phần Lập trình Python, đây học phần tính thực tế vô cùng cao, cung
cấp một lượng lớn kiến thức gắn liền với nhu cầu thực tiễn của sinh viên cũng như
hội. Tuy vậy, do vốn kiến thức còn nhiều hạn chế và còn bỡ ngỡ với phương thức học
của môi trường mới n không thể tránh khỏi những thiếu sót chưa hoàn thiện một
cách chỉn chu nhất. nh mong sẽ xem xét góp ý để bài tập lớn được hoàn thiện
hơn.
Nhóm chúng em xin chân thành cảm ơn!
lOMoARcPSD| 47205411
3
Số
thứ
tự
Họ và tên
Mã SV
Nhiệm vụ
Điểm
đánh giá
1
Bùi Thị Lan Anh
24D192001
- Xây dựng ý tưởng cho bài
tập lớn, chỉnh sửa word, viết mô
tả
- Vẽ sơ đồ khối.
A
2
Nguyễn Huy Hoàng
Anh
24D192002
- Xây dựng ý tưởng cho bài
tập lớn
- Xây dựng chương trình
B+
3
Nguyễn Phương Anh
24D192003
- Đặt bài toán, xử lý các
phần rìa, chỉnh sửa word
- Xây dựng ý tưởng cho bài
tập lớn.
A
4
Nguyễn Tuấn Anh
24D192004
- Xây dựng ý tưởng cho bài
tập lớn
- Xây dựng chương trình
B
5
Nguyễn Ngọc Ánh
24D192005
- Xây dựng ý tưởng cho bài
tập lớn
- Xây dựng chương trình
B+
6
Trần Thị An Bình
24D192006
- Xây dựng ý tưởng cho bài
tập lớn
- Vẽ sơ đồ khối
B+
MỤC LỤC LỜI MỞ ĐẦU ............................................... Error! Bookmark not defined.
lOMoARcPSD| 47205411
4
I. ĐẶT BÀI TOÁN ......................................................................................................... 5
II. PHÂN TÍCH BÀI TOÁN VÀ TRÌNH BÀY QUY TRÌNH CÁC THAO TÁC DƯỚI
DẠNG SƠ ĐỒ KHỐI .................................................................................................... 6
2.1. Phân tích bài toán ................................................................................................ 6
2.1.1. Các chức năng chính của chương trình: ........................................................ 6
2.2. Sơ đồ khối thể hiện các chức năng chính của chương trình ................................ 9
2.3. Đặc tả các chức năng chính của chương trình ..................................................... 9
III. CÀI ĐẶT CHƯƠNG TRÌNH ................................................................................ 15
3.1. Quản lý các chức năng liên quan đến dự án (du_an.py).................................... 15
3.2. Hàm tiện ích (utils.py) ....................................................................................... 19
3.3. Chương trình chính (main.py) ........................................................................... 20
3.4. Code Python ...................................................................................................... 21
IV. KẾT LUẬN ............................................................................................................ 24
LỜI MỞ ĐẦU
Công ty phát triển phần mềm Bravo là một doanh nghiệp hoạt động trong lĩnh vực
phát triển phần mềm với nhiều dự án quy khác nhau. Trong bối cảnh các doanh
nghiệp ngày càng phải đối mặt với cạnh tranh gay gắt nhu cầu tối ưu hoá quy trình
quản lý, việc áp dụng các công cụ hỗ trợ quản hiệu quả là yêu cầu bắt buộc. Tuy nhiên,
việc quản nhiều dự án khác nhau đòi hỏi không chỉ sự chính xác, còn phải tối đa
hoá tính nhẹ nhàng và tiết kiệm thời gian.
Do đó, một chương trình quảndự án chuyên biệt cho Công ty Bravo là cần thiết
để hỗ trợ các công việc như theo dõi, quản thông tin các dự án, cập nhật tiến độ
đánh giá kết quả. Chương trình sẽ giúp tối ưu hoá việc quản lý, giảm thiểu sai sót trong
việc xử lý dữ liệu, đồng thời đảm bảo minh bạch và dễ dàng truy xuất thông tin khi cần
thiết.
Bài tập này nhằm mục đích thiết kế một chương trình quản lý dự án cho Bravo với
các chức năng chính như: thêm mới, xóa bỏ, cập nhật tìm kiếm thông tin dự án.
Chương trình này không chỉ giúp đơn giản hóa quy trình quản lý mà còn góp phần nâng
cao hiệu quả làm việc cho Công ty Bravo.
lOMoARcPSD| 47205411
5
I. ĐẶT BÀI TOÁN
Công ty Phát triển Phần mềm Bravo một trong những công ty hàng đầu trong
lĩnh vực phát triển phần mềm quản tại Việt Nam. Với sự phát triển nhanh chóng của
các dự án phần mềm, nhu cầu quản lý dự án một cách hiệu quả, chính xác và minh bạch
đã trở thành một ưu tiên hàng đầu. Để đạt được điều này, công ty cần một hệ thống quản
lý dự án có thể hỗ trợ trong việc tổ chức, giám sát và cập nhật thông tin dự án một cách
dễ dàng.
Các thông tin của từng dự án cần được nhập và quản lý bao gồm:
- Tên dự án
- Mã dự án
- Trạng thái dự án
- Ngày bắt đầu và ngày kết thúc dự án
- Mô tả chi tiết về dự án
Chương trình quản dự án này không chỉ giúp công ty theo dõi tiến độ còn
hỗ trợ trong việc phân tích dữ liệu để tối ưu hóa quy trình làm việc. Đây sẽ là một công
cụ quan trọng giúp Bravo duy trì vị thế dẫn đầu trong ngành công nghiệp phần mềm.
lOMoARcPSD| 47205411
6
Vì vậy, công ty yêu cầu xây dựng một chương trình có các chức năng cụ thể sau:
- Thêm dự án mới: Cho phép người dùng nhập thông tin chi tiết của dự án,
bao gồm tên, mã dự án, người phụ trách, thời hạn, và trạng thái.
- Xóa bỏ dự án: Xóa thông tin một dự án không còn cần thiết trong sở
dữ liệu.
- Cập nhật thông tin dự án: Chỉnh sửa thông tin của các dự án đang hoạt
động, chẳng hạn như thay đổi người phụ trách hoặc gia hạn thời gian.
- Tìm kiếm thông tin dự án: Hỗ trợ người dùng tìm kiếm dự án dựa trên các
tiêu chí như mã dự án, tên dự án hoặc trạng thái.
II. PHÂN TÍCH BÀI TOÁN VÀ TRÌNH BÀY QUY TRÌNH CÁC THAO
TÁC DƯỚI DẠNG SƠ ĐỒ KHỐI
2.1. Phân tích bài toán.
a. Mục tiêu:
Xây dựng một chương trình quản lý dự án bằng Python.
Chương trình phải các chức năng: thêm, xóa, cập nhật, tìm kiếm dự án, đồng
thời được tổ chức dưới dạng các hàm và module.
b. Dữ liệu cần quản lý:
Mỗi dự án sẽ chứa các thông tin sau:
- Mã dự án (duy nhất): Định danh cho từng dự án.
- Tên dự án: Tên gọi cụ thể của dự án.
- Trạng thái.
- Ngày bắt đầu và ngày kết thúc: Mốc thời gian của dự án.
- Mô tả: Thông tin chi tiết về dự án (không bắt buộc).
2.1.1. Các chức năng chính của chương trình:
a. Thêm dự án:
lOMoARcPSD| 47205411
7
Mục tiêu: Cho phép người dùng nhập thông tin của một dự án mới lưu trữ vào
danh sách.
Quy trình:
- Yêu cầu người dùng nhập:
Mã dự án (kiểm tra tính duy nhất).
Tên dự án.
Trạng thái dự án.
Ngày bắt đầu và ngày kết thúc (kiểm tra tính hợp lệ: ngày kết thúc
không nhỏ hơn ngày bắt đầu).
Mô tả (không bắt buộc).
- Kiểm tra:
dự án bị trùng không (nếu trùng, hiển thị thông báo và yêu
cầu nhập lại).
Các giá trị nhập hợp lệ không (ví dụ: ngày tháng đúng định
dạng).
- Lưu thông tin vào danh sách dự án. - Hiển thị thông báo thêm thành công.
b. Xóa dự án:
Mục tiêu: Xóa bỏ một dự án khỏi danh sách dựa trên dự án do người dùng cung
cấp.
Quy trình:
- Yêu cầu người dùng nhập mã dự án cần xóa.
- Tìm kiếm dự án trong danh sách:
Nếu không tìm thấy, hiển thị thông báo lỗi.
Nếu tìm thấy, xác nhận việc xóa.
- Xóa dự án khỏi danh sách. - Hiển thị thông báo hoàn tất.
lOMoARcPSD| 47205411
8
c. Cập nhật dự án:
Mục tiêu: Sửa đổi thông tin của một dự án hiện có.
Quy trình:
- Yêu cầu người dùng nhập mã dự án cần cập nhật.
- Tìm kiếm dự án trong danh sách:
Nếu không tìm thấy, hiển thị thông báo lỗi.
Nếu tìm thấy, hiển thị thông tin hiện tại của dự án.
- Yêu cầu người dùng chọn thông tin cần cập nhật:
Có thể sửa tên, trạng thái, ngày bắt đầu, ngày kết thúc, hoặc mô tả.
Kiểm tra tính hợp lệ (ví dụ: không được thay đổi ngày kết thúc nhỏ
hơn ngày bắt đầu).
- u các thay đổi vào danh sách. - Hiển thị thông báo cập nhật thành công.
d. Tìm kiếm dự án:
Mục tiêu: Tìm hiển thị thông tin dự án dựa trên các tiêu chí mà người dùng cung
cấp.
Quy trình:
- Yêu cầu người dùng nhập tiêu chí tìm kiếm:
Mã dự án (nếu biết chính xác).
Hoặc tìm kiếm theo tên, trạng thái.
- Lọc danh sách dự án dựa trên tiêu chí:
Nếu không tìm thấy dự án phù hợp, hiển thị thông báo.
Nếu tìm thấy, hiển thị danh sách các dự án khớp với tiêu chí.
- Cho phép người dùng xem chi tiết một dự án cụ thể nếu có nhiều kết quả.
lOMoARcPSD| 47205411
9
2.2. Sơ đồ khối thể hiện các chức năng chính của chương trình
Hình 1. Sơ đồ khối các chức năng chính
2.3. Đặc tả các chức năng chính của chương trình
a. Chức năng thêm dự án
lOMoARcPSD| 47205411
10
Mô tả: Chương trình cho phép người quản lý thêm dự án bằng tên
Hình 2. Biểu đồ hoạt động của chức năng thêm dự án
lOMoARcPSD| 47205411
. Chứ
Mô tả
11
b c năng xoá dự án
: Chương trình cho phép người quản lý xoá dự án bằng tên
Hình 3. Biểu đồ hoạt động của chức nặng xoá dự án
lOMoARcPSD| 47205411
. Chứ
Mô tả
12
c c năng cập nhật thông tin dự án
: Chương trình cho phép người quản lý cập nhật thông tin nhân viên bằng tên.
Hình 4: Biểu đồ hoạt động của chức năng cập nhật thông tin dự án
lOMoARcPSD| 47205411
. Chứ
Mô tả
13
d c năng tìm kiếm thông tin dự án
: Chương trình cho phép người quản lý tìm kiếm thông tin dự án bằng tên.
Hình 5: Biểu đồ hoạt động của chức năng tìm kiếm thông tin dự án
lOMoARcPSD| 47205411
. Chứ
Mô tả
14
lOMoARcPSD| 47205411
15
III. CÀI ĐẶT CHƯƠNG TRÌNH
3.1. Quản lý các chức năng liên quan đến dự án (du_an.py)
Chức năng:
- Đây là module chứa các hàm thực hiện các thao tác chính trên danh sách dự án, như
thêm, xóa, cập nhật, và tìm kiếm.
- Từng chức năng được xây dựng thành các hàm riêng biệt để đảm bảo tính phân tách
và dễ dàng bảo trì.
a. Thêm dự án
Tham số: danh_sach: Danh sách chứa các dự án cần quản lý.
Cách hoạt động:
lOMoARcPSD| 47205411
16
)
- Yêu cầu nhập các thông tin về dự án (mã, tên, trạng thái, ngày tháng, mô tả).
- Kiểm tra:
Mã dự án không được trùng lặp (dùng hàm tiện ích kiem_tra_ma_du_an).
Ngày tháng hợp lệ (ngày bắt đầu không lớn hơn ngày kết thúc).
- Nếu tất cả hợp lệ, thêm dự án vào danh sách và thông báo thành công.
Kết quả: Thêm một dự án mới vào danh sách nếu thông tin hợp lệ.
b. Xoá dự án
Tham số:
- danh_sach: Danh sách dự án cần quản lý.
- ma_du_an: Mã dự án cần xóa.
Cách hoạt động:
- Duyệt qua danh sách để tìm dự án có mã trùng khớp.
- Nếu tìm thấy, xóa dự án và thông báo thành công.
- Nếu không tìm thấy, thông báo lỗi.
Kết quả: Loại bỏ dự án có mã cụ thể khỏi danh sách nếu tồn tại.
lOMoARcPSD| 47205411
17
c. Cập nhật dự án
Tham số: danh_sach: Danh sách dự án cần quản lý.
Cách hoạt động:
- Yêu cầu nhập mã dự án cần cập nhật.
- Tìm dự án theo mã:
- Nếu không tìm thấy, thông báo lỗi.
- Nếu tìm thấy, hiển thị thông tin hiện tại của dự án.
- Cho phép người dùng cập nhật từng thông tin, kiểm tra tính hợp lệ (ví dụ: ngày
tháng).
- Cập nhật thông tin mới vào danh sách và thông báo thành công.
Kết quả: Thông tin dự án được cập nhật nếu hợp
lOMoARcPSD| 47205411
18
)
d. Tìm kiếm dự án
Tham số: danh_sach: Danh sách dự án cần tìm kiếm.
Cách hoạt động:
- Yêu cầu nhập tiêu chí tìm kiếm (theo mã, tên, hoặc trạng thái).
lOMoARcPSD| 47205411
19
- Duyệt danh sách dự án và lọc kết quả dựa trên tiêu chí.
- Hiển thị danh sách các dự án khớp (nếu có) hoặc thông báo không tìm thấy.
Kết quả: Hiển thị danh sách dự án phù hợp với tiêu chí tìm kiếm.
3.2. Hàm tiện ích (utils.py)
Chức năng:
- Module này chứa các hàm phụ trợ để kiểm tra tính hợp lệ của thông tin.
- Được thiết kế để tái sử dụng trong nhiều phần của chương trình.
Chi tiết các hàm:
- kiem_tra_ma_du_an(ma_du_an, danh_sach)
+ Tham số:
ma_du_an: Mã dự án cần kiểm tra.
danh_sach: Danh sách các dự án hiện có.
+ Cách hoạt động:
Duyệt qua danh sách dự án để kiểm tra xem mã đã tồn tại hay chưa.
+ Kết quả:
Trả về True nếu chưa tồn tại, False nếu bị trùng. -
kiem_tra_ngay_hop_le(ngay_bat_dau, ngay_ket_thuc) + Tham số:
ngay_bat_dau: Ngày bắt đầu dự án.
ngay_ket_thuc: Ngày kết thúc dự án.
+ Cách hoạt động:
So sánh ngày bắt đầu và ngày kết thúc để đảm bảo ngày bắt đầu không
lớn hơn ngày kết thúc.
+ Kết quả:
lOMoARcPSD| 47205411
20
)
Trả về True nếu ngày hợp lệ, False nếu không hợp lệ.
3.3. Chương trình chính (main.py)

Preview text:

lOMoAR cPSD| 47205411 LỜI CẢM ƠN lOMoAR cPSD| 47205411
Trước khi vào bài tập lớn, nhóm 1 chúng em xin gửi lời cảm ơn sâu sắc đến cô
Đinh Thị Hà với sự hướng dẫn và giảng dạy nhiệt tình. Cô đã truyền đạt lại cho chúng
em vô vàn kiến thức và đó là hành trang quý giá trên con đường phát triển sau này của mỗi chúng em.
Về học phần Lập trình Python, đây là học phần có tính thực tế vô cùng cao, cung
cấp một lượng lớn kiến thức và gắn liền với nhu cầu thực tiễn của sinh viên cũng như
xã hội. Tuy vậy, do vốn kiến thức còn nhiều hạn chế và còn bỡ ngỡ với phương thức học
của môi trường mới nên không thể tránh khỏi những thiếu sót và chưa hoàn thiện một
cách chỉn chu nhất. Kính mong cô sẽ xem xét và góp ý để bài tập lớn được hoàn thiện hơn.
Nhóm chúng em xin chân thành cảm ơn! 2 lOMoAR cPSD| 47205411 Số Họ và tên Mã SV Nhiệm vụ Điểm thứ đánh giá tự 1 Bùi Thị Lan Anh 24D192001 -
Xây dựng ý tưởng cho bài A
tập lớn, chỉnh sửa word, viết mô tả - Vẽ sơ đồ khối.
2 Nguyễn Huy Hoàng 24D192002 B+ -
Xây dựng ý tưởng cho bài Anh tập lớn - Xây dựng chương trình
3 Nguyễn Phương Anh 24D192003 A -
Đặt bài toán, xử lý các
phần rìa, chỉnh sửa word -
Xây dựng ý tưởng cho bài tập lớn. 4 Nguyễn Tuấn Anh 24D192004 B -
Xây dựng ý tưởng cho bài tập lớn - Xây dựng chương trình 5 Nguyễn Ngọc Ánh 24D192005 B+ -
Xây dựng ý tưởng cho bài tập lớn - Xây dựng chương trình 6 Trần Thị An Bình 24D192006 B+ -
Xây dựng ý tưởng cho bài tập lớn - Vẽ sơ đồ khối
MỤC LỤC LỜI MỞ ĐẦU ............................................... Error! Bookmark not defined. 3 lOMoAR cPSD| 47205411
I. ĐẶT BÀI TOÁN ......................................................................................................... 5
II. PHÂN TÍCH BÀI TOÁN VÀ TRÌNH BÀY QUY TRÌNH CÁC THAO TÁC DƯỚI
DẠNG SƠ ĐỒ KHỐI .................................................................................................... 6
2.1. Phân tích bài toán ................................................................................................ 6
2.1.1. Các chức năng chính của chương trình: ........................................................ 6
2.2. Sơ đồ khối thể hiện các chức năng chính của chương trình ................................ 9
2.3. Đặc tả các chức năng chính của chương trình ..................................................... 9
III. CÀI ĐẶT CHƯƠNG TRÌNH ................................................................................ 15
3.1. Quản lý các chức năng liên quan đến dự án (du_an.py).................................... 15
3.2. Hàm tiện ích (utils.py) ....................................................................................... 19
3.3. Chương trình chính (main.py) ........................................................................... 20
3.4. Code Python ...................................................................................................... 21
IV. KẾT LUẬN ............................................................................................................ 24 LỜI MỞ ĐẦU
Công ty phát triển phần mềm Bravo là một doanh nghiệp hoạt động trong lĩnh vực
phát triển phần mềm với nhiều dự án quy mô khác nhau. Trong bối cảnh các doanh
nghiệp ngày càng phải đối mặt với cạnh tranh gay gắt và nhu cầu tối ưu hoá quy trình
quản lý, việc áp dụng các công cụ hỗ trợ quản lý hiệu quả là yêu cầu bắt buộc. Tuy nhiên,
việc quản lý nhiều dự án khác nhau đòi hỏi không chỉ sự chính xác, mà còn phải tối đa
hoá tính nhẹ nhàng và tiết kiệm thời gian.
Do đó, một chương trình quản lý dự án chuyên biệt cho Công ty Bravo là cần thiết
để hỗ trợ các công việc như theo dõi, quản lý thông tin các dự án, cập nhật tiến độ và
đánh giá kết quả. Chương trình sẽ giúp tối ưu hoá việc quản lý, giảm thiểu sai sót trong
việc xử lý dữ liệu, đồng thời đảm bảo minh bạch và dễ dàng truy xuất thông tin khi cần thiết.
Bài tập này nhằm mục đích thiết kế một chương trình quản lý dự án cho Bravo với
các chức năng chính như: thêm mới, xóa bỏ, cập nhật và tìm kiếm thông tin dự án.
Chương trình này không chỉ giúp đơn giản hóa quy trình quản lý mà còn góp phần nâng
cao hiệu quả làm việc cho Công ty Bravo. 4 lOMoAR cPSD| 47205411 I. ĐẶT BÀI TOÁN
Công ty Phát triển Phần mềm Bravo là một trong những công ty hàng đầu trong
lĩnh vực phát triển phần mềm quản lý tại Việt Nam. Với sự phát triển nhanh chóng của
các dự án phần mềm, nhu cầu quản lý dự án một cách hiệu quả, chính xác và minh bạch
đã trở thành một ưu tiên hàng đầu. Để đạt được điều này, công ty cần một hệ thống quản
lý dự án có thể hỗ trợ trong việc tổ chức, giám sát và cập nhật thông tin dự án một cách dễ dàng.
Các thông tin của từng dự án cần được nhập và quản lý bao gồm: - Tên dự án - Mã dự án - Trạng thái dự án
- Ngày bắt đầu và ngày kết thúc dự án
- Mô tả chi tiết về dự án
Chương trình quản lý dự án này không chỉ giúp công ty theo dõi tiến độ mà còn
hỗ trợ trong việc phân tích dữ liệu để tối ưu hóa quy trình làm việc. Đây sẽ là một công
cụ quan trọng giúp Bravo duy trì vị thế dẫn đầu trong ngành công nghiệp phần mềm. 5 lOMoAR cPSD| 47205411
Vì vậy, công ty yêu cầu xây dựng một chương trình có các chức năng cụ thể sau:
- Thêm dự án mới: Cho phép người dùng nhập thông tin chi tiết của dự án,
bao gồm tên, mã dự án, người phụ trách, thời hạn, và trạng thái.
- Xóa bỏ dự án: Xóa thông tin một dự án không còn cần thiết trong cơ sở dữ liệu.
- Cập nhật thông tin dự án: Chỉnh sửa thông tin của các dự án đang hoạt
động, chẳng hạn như thay đổi người phụ trách hoặc gia hạn thời gian.
- Tìm kiếm thông tin dự án: Hỗ trợ người dùng tìm kiếm dự án dựa trên các
tiêu chí như mã dự án, tên dự án hoặc trạng thái.
II. PHÂN TÍCH BÀI TOÁN VÀ TRÌNH BÀY QUY TRÌNH CÁC THAO
TÁC DƯỚI DẠNG SƠ ĐỒ KHỐI
2.1. Phân tích bài toán. a. Mục tiêu:
Xây dựng một chương trình quản lý dự án bằng Python.
Chương trình phải có các chức năng: thêm, xóa, cập nhật, tìm kiếm dự án, đồng
thời được tổ chức dưới dạng các hàm và module.
b. Dữ liệu cần quản lý:
Mỗi dự án sẽ chứa các thông tin sau:
- Mã dự án (duy nhất): Định danh cho từng dự án.
- Tên dự án: Tên gọi cụ thể của dự án. - Trạng thái.
- Ngày bắt đầu và ngày kết thúc: Mốc thời gian của dự án.
- Mô tả: Thông tin chi tiết về dự án (không bắt buộc).
2.1.1. Các chức năng chính của chương trình: a. Thêm dự án: 6 lOMoAR cPSD| 47205411
Mục tiêu: Cho phép người dùng nhập thông tin của một dự án mới và lưu trữ vào danh sách. Quy trình:
- Yêu cầu người dùng nhập:
• Mã dự án (kiểm tra tính duy nhất). • Tên dự án. • Trạng thái dự án.
• Ngày bắt đầu và ngày kết thúc (kiểm tra tính hợp lệ: ngày kết thúc
không nhỏ hơn ngày bắt đầu).
• Mô tả (không bắt buộc). - Kiểm tra:
• Mã dự án có bị trùng không (nếu trùng, hiển thị thông báo và yêu cầu nhập lại).
• Các giá trị nhập có hợp lệ không (ví dụ: ngày tháng đúng định dạng).
- Lưu thông tin vào danh sách dự án. - Hiển thị thông báo thêm thành công. b. Xóa dự án:
Mục tiêu: Xóa bỏ một dự án khỏi danh sách dựa trên mã dự án do người dùng cung cấp. Quy trình:
- Yêu cầu người dùng nhập mã dự án cần xóa.
- Tìm kiếm dự án trong danh sách:
• Nếu không tìm thấy, hiển thị thông báo lỗi.
• Nếu tìm thấy, xác nhận việc xóa.
- Xóa dự án khỏi danh sách. - Hiển thị thông báo hoàn tất. 7 lOMoAR cPSD| 47205411 c. Cập nhật dự án:
Mục tiêu: Sửa đổi thông tin của một dự án hiện có. Quy trình:
- Yêu cầu người dùng nhập mã dự án cần cập nhật.
- Tìm kiếm dự án trong danh sách:
• Nếu không tìm thấy, hiển thị thông báo lỗi.
• Nếu tìm thấy, hiển thị thông tin hiện tại của dự án.
- Yêu cầu người dùng chọn thông tin cần cập nhật:
• Có thể sửa tên, trạng thái, ngày bắt đầu, ngày kết thúc, hoặc mô tả.
• Kiểm tra tính hợp lệ (ví dụ: không được thay đổi ngày kết thúc nhỏ hơn ngày bắt đầu).
- Lưu các thay đổi vào danh sách. - Hiển thị thông báo cập nhật thành công. d. Tìm kiếm dự án:
Mục tiêu: Tìm và hiển thị thông tin dự án dựa trên các tiêu chí mà người dùng cung cấp. Quy trình:
- Yêu cầu người dùng nhập tiêu chí tìm kiếm:
• Mã dự án (nếu biết chính xác).
• Hoặc tìm kiếm theo tên, trạng thái.
- Lọc danh sách dự án dựa trên tiêu chí:
• Nếu không tìm thấy dự án phù hợp, hiển thị thông báo.
• Nếu tìm thấy, hiển thị danh sách các dự án khớp với tiêu chí.
- Cho phép người dùng xem chi tiết một dự án cụ thể nếu có nhiều kết quả. 8 lOMoAR cPSD| 47205411
2.2. Sơ đồ khối thể hiện các chức năng chính của chương trình
Hình 1. Sơ đồ khối các chức năng chính
2.3. Đặc tả các chức năng chính của chương trình
a. Chức năng thêm dự án 9 lOMoAR cPSD| 47205411
Mô tả: Chương trình cho phép người quản lý thêm dự án bằng tên
Hình 2. Biểu đồ hoạt động của chức năng thêm dự án 10 lOMoAR cPSD| 47205411 . Chứ Mô tả b
c năng xoá dự án
: Chương trình cho phép người quản lý xoá dự án bằng tên
Hình 3. Biểu đồ hoạt động của chức nặng xoá dự án 11 lOMoAR cPSD| 47205411 . Chứ Mô tả c
c năng cập nhật thông tin dự án
: Chương trình cho phép người quản lý cập nhật thông tin nhân viên bằng tên.
Hình 4: Biểu đồ hoạt động của chức năng cập nhật thông tin dự án 12 lOMoAR cPSD| 47205411 . Chứ Mô tả d
c năng tìm kiếm thông tin dự án
: Chương trình cho phép người quản lý tìm kiếm thông tin dự án bằng tên.
Hình 5: Biểu đồ hoạt động của chức năng tìm kiếm thông tin dự án 13 lOMoAR cPSD| 47205411 . Chứ Mô tả 14 lOMoAR cPSD| 47205411
III. CÀI ĐẶT CHƯƠNG TRÌNH
3.1. Quản lý các chức năng liên quan đến dự án (du_an.py) Chức năng:
- Đây là module chứa các hàm thực hiện các thao tác chính trên danh sách dự án, như
thêm, xóa, cập nhật, và tìm kiếm.
- Từng chức năng được xây dựng thành các hàm riêng biệt để đảm bảo tính phân tách và dễ dàng bảo trì. a. Thêm dự án
Tham số: danh_sach: Danh sách chứa các dự án cần quản lý. Cách hoạt động: 15 lOMoAR cPSD| 47205411
- Yêu cầu nhập các thông tin về dự án (mã, tên, trạng thái, ngày tháng, mô tả). - Kiểm tra:
• Mã dự án không được trùng lặp (dùng hàm tiện ích kiem_tra_ma_du_an).
• Ngày tháng hợp lệ (ngày bắt đầu không lớn hơn ngày kết thúc).
- Nếu tất cả hợp lệ, thêm dự án vào danh sách và thông báo thành công.
Kết quả: Thêm một dự án mới vào danh sách nếu thông tin hợp lệ. b. Xoá dự án Tham số:
- danh_sach: Danh sách dự án cần quản lý.
- ma_du_an: Mã dự án cần xóa. Cách hoạt động:
- Duyệt qua danh sách để tìm dự án có mã trùng khớp.
- Nếu tìm thấy, xóa dự án và thông báo thành công.
- Nếu không tìm thấy, thông báo lỗi.
Kết quả: Loại bỏ dự án có mã cụ thể khỏi danh sách nếu tồn tại. 16 ) lOMoAR cPSD| 47205411
c. Cập nhật dự án
Tham số: danh_sach: Danh sách dự án cần quản lý. Cách hoạt động:
- Yêu cầu nhập mã dự án cần cập nhật. - Tìm dự án theo mã:
- Nếu không tìm thấy, thông báo lỗi.
- Nếu tìm thấy, hiển thị thông tin hiện tại của dự án.
- Cho phép người dùng cập nhật từng thông tin, kiểm tra tính hợp lệ (ví dụ: ngày tháng).
- Cập nhật thông tin mới vào danh sách và thông báo thành công.
Kết quả: Thông tin dự án được cập nhật nếu hợp 17 lOMoAR cPSD| 47205411
d. Tìm kiếm dự án
Tham số: danh_sach: Danh sách dự án cần tìm kiếm. Cách hoạt động:
- Yêu cầu nhập tiêu chí tìm kiếm (theo mã, tên, hoặc trạng thái). 18 ) lOMoAR cPSD| 47205411
- Duyệt danh sách dự án và lọc kết quả dựa trên tiêu chí.
- Hiển thị danh sách các dự án khớp (nếu có) hoặc thông báo không tìm thấy.
Kết quả: Hiển thị danh sách dự án phù hợp với tiêu chí tìm kiếm.
3.2. Hàm tiện ích (utils.py) Chức năng:
- Module này chứa các hàm phụ trợ để kiểm tra tính hợp lệ của thông tin.
- Được thiết kế để tái sử dụng trong nhiều phần của chương trình. Chi tiết các hàm:
- kiem_tra_ma_du_an(ma_du_an, danh_sach) + Tham số:
▪ ma_du_an: Mã dự án cần kiểm tra.
▪ danh_sach: Danh sách các dự án hiện có. + Cách hoạt động:
▪ Duyệt qua danh sách dự án để kiểm tra xem mã đã tồn tại hay chưa. + Kết quả:
▪ Trả về True nếu mã chưa tồn tại, False nếu mã bị trùng. -
kiem_tra_ngay_hop_le(ngay_bat_dau, ngay_ket_thuc) + Tham số:
▪ ngay_bat_dau: Ngày bắt đầu dự án.
▪ ngay_ket_thuc: Ngày kết thúc dự án. + Cách hoạt động:
▪ So sánh ngày bắt đầu và ngày kết thúc để đảm bảo ngày bắt đầu không lớn hơn ngày kết thúc. + Kết quả: 19 lOMoAR cPSD| 47205411
▪ Trả về True nếu ngày hợp lệ, False nếu không hợp lệ.
3.3. Chương trình chính (main.py) 20 )