Từ những kiến thức mà thầy đã truyền đạt, nhóm em xin trình bày lại những gìmình đã tìm hiểu để hoàn thành bài tập lớn với đề tài: “Xây dựng chương trình quảnlý dự án công nghệ cho Công
Trang 1TRƯỜNG ĐẠI HỌC THƯƠNG MẠI Khoa Hệ thống thông tin kinh tế & Thương mại điện tử
BÀI TẬP LỚN HỌC PHẦN Lập trình với Python
Đề tài: Xây dựng chương trình quản lý dự án công nghệ cho Công ty
TNHH phần mềm FPT.
NHÓM 06
MÃ LỚP HP: 2316INFO4511 GIẢNG VIÊN: NGUYỄN HƯNG LONG
HÀ NAM, THÁNG 06, NĂM 2023
Trang 2CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
BIÊN BẢN HỌP NHÓM
(LẦN 1)Nhóm thực hiện: Nhóm 06
Thời gian: 25/05/2023
Địa điểm: Phòng tự học ktx Hà Nam
I, Thành viên tham gia:
1) Nguyễn Anh Đào
2) Nguyễn Thành Đạt (Nhóm trưởng)
3) Hoàng Thị Quỳnh Giang (Thư ký)
Vắng mặt: không
II, Nội dung:
Thảo luận về đề tài của nhóm; Tất cả các thành viên đưa ra ý kiến, nhóm trưởng
và thư ký tập hợp ý kiến và thống nhất phân công nhiệm vụ cho từng thành viên trongnhóm Nhiệm vụ cho từng thành viên cụ thể như sau:
Nguyễn Anh Đào Xây dựng bài toán
Nguyễn Thành Đạt Cài đặt chương trình
Hoàng Thị Quỳnh Giang Phân tích bài toán bằng sơ đồ khối
Hà Nam, ngày 25, tháng 05, năm 2023.
Thư ký Nhóm trưởng
Hoàng Thị Quỳnh Giang Nguyễn Thành Đạt
Trang 3CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
BIÊN BẢN HỌP NHÓM
(LẦN 2)Nhóm thực hiện: 06
Thời gian: 07/06/2023
Địa điểm: Phòng tự học ktx Hà Nam
I, Thành viên tham gia:
1) Nguyễn Anh Đào
2) Nguyễn Thành Đạt (Nhóm trưởng)
3) Hoàng Thị Quỳnh Giang (Thư ký)
Vắng mặt: không
II, Nội dung
- Cả nhóm thảo luận và đưa ra ý kiến chỉnh sửa cho phù hợp
- Cả nhóm nghiên cứu kĩ hơn về cài đặt chương trình để đưa ra được chươngtrình ngắn gọn, dễ hiểu, có cấu trúc rõ ràng
Buổi họp diễn ra thành công tốt đẹp!
Hà Nam, ngày 07, tháng 06, năm 2023
Thư ký Nhóm trưởng
Hoàng Thị Quỳnh Giang Nguyễn Thành Đạt
Trang 4LỜI CẢM ƠN
Lời đầu tiên, nhóm 6 chúng em xin gửi lời cảm ơn sâu sắc đến thầy NguyễnHưng Long – giảng viên học phần Lập tình với Python Trong quá trình học tập và tìmhiểu học phần này, chúng em đã nhận được sự giảng dạy và hướng dẫn rất tận tình,tâm huyết của thầy Thầy đã giúp chúng em tích lũy thêm nhiều kiến thức hay và bổích Từ những kiến thức mà thầy đã truyền đạt, nhóm em xin trình bày lại những gì
mình đã tìm hiểu để hoàn thành bài tập lớn với đề tài: “Xây dựng chương trình quản
lý dự án công nghệ cho Công ty TNHH phần mềm FPT.”
Tuy nhiên, do kinh nghiệm và kiến thức về học phần này của nhóm chúng emvẫn còn những hạn chế nhất định Do đó không tránh khỏi những thiếu sót trong quátrình hoàn thành bài tập lớn này Chúng em hi vọng sẽ nhận được ý kiến đóng góp củathầy để bài làm của nhóm 6 chúng em được hoàn thiện hơn
Nhóm 6 chúng em xin chân thành cảm ơn!
Trang 5LỜI MỞ ĐẦU
1, Tính cấp thiết của đề tài
Thời đại toàn cầu hóa và kinh tế tri thức phát triển mạnh mẽ kéo theo sự phát triểnkhông ngừng của công nghệ thông tin Việc ứng dụng các thành tựu của công nghệthông tin vào đời sống là rất quan trọng, nó quyết định thành công hay thất bại tronghoạt động sản xuất, kinh doanh của các tổ chức, doanh nghiệp Nhờ tin học hóa, côngviệc quản lý trở nên đơn giản, hiệu quả cao, tiết kiệm công sức lao dộng và nâng caonăng suất lao động của cán bộ quản lý
Thực tế ngày nay, hầu như tất cả các doanh nghiệp lớn và nhỏ nước ta đã tin họchóa hầu hết các công đoạn (nhập, xuất, thanh toán, ) của doanh nghiệp và đạt đượcnhững kết quả đáng kể, đặc biệt là giảm thiểu các sai sót trong việc kiểm tra, quản lýcủa công ty làm tăng độ tin cậy của hệ thống quản lý doanh nghiệp
2, Lý do chọn đề tài
Chính vì tính cấp thiết nêu trên mà nhóm chúng em đã lựa chọn đề tài: “Xây
dựng chương trình quản lý dự án công nghệ cho Công ty TNHH phần mềm FPT.”
Trang 6I, XÂY DỰNG VÀ MÔ TẢ BÀI TOÁN
1.1 Xây dựng bài toán
Công ty TNHH phần mềm FPT (FPT Software) là công ty chuyên xuất khẩudịch vụ phần mềm, cung cấp các dịch vụ phát triển phần mềm và bảo trì, triển khaiERP, QA, chuyển đổi ứng dụng, điện toán di động, điện toán đám mây, … Công tyhiện đã và đang cung cấp dịch vụ cho khoảng 450 khách hàng là các tập đoàn lớn trênthế giới và cho khách hàng trên 63 tỉnh thành trên toàn lãnh thổ Việt Nam Từ khiđược thành lập cho đến nay, FPT Software đang là công ty số 1 tại Việt Nam tronglĩnh vực tích hợp hệ thống, phân phối và bán lẻ, xuất khẩu gia công phần mềm, … do
đó, FPT Software luôn nhận được rất nhiều dự án lớn nhỏ khác nhau Để theo dõiđược các dự án một cách chính xác, tiến độ cũng như tình trạng thực hiện một cách dễdàng nhóm chúng em đã xây dựng chương trình với ngôn ngữ lập trình Python đểquản lý dự án công nghệ cho Công ty TNHH phần mềm FPT Chương trình quản lý
dự án công nghệ có vai trò rất quan trọng trong quá trình thi hành dự án Việc xâydựng chương trình quản lý dự án đã mang lại một số hiệu quả sau:
- Kiểm tra, giám sát tiến độ các dự án và lên kế hoạch phù hợp với mốc thờigian
- Đánh giá quá trình thực hiện, đảm bảo dự án diễn ra theo đúng kế hoạch
- Tư vấn cho hệ thống kiểm soát tài liệu của dự án
1.2 Mô tả các bước để thực hiện quản lý dự án công nghệ
Để quản lý dự án công nghệ của Công ty TNHH phần mềm FPT trước hết taphải có một danh sách về tên các dự án và có thể thực hiện các thao tác với danh sách
đó Cụ thể yêu cầu của chương trình quản lý dự án công nghệ như sau:
- Trước tiên phải tạo một mảng dự án, sau đó thực hiện:
+, Nhập thêm một dự án vào danh sách mảng
+, Tìm kiếm thông tin của một dự án
+, Xóa bớt một dự án ra khỏi danh sách mảng
+, Cập nhật thông tin dự án trong danh sách mảng
Trang 7Dự án công nghệ gồm các thuộc tính sau:
Gía cả thỏa thuận của dự án (GiaCa),
Chi phí thực hiện dự án (ChiPhi),
Ở đây, ta xác định MaDA là khóa chính của thực thể dự án để tiến hành xây dựngcác hàm và giải quyết bài toán
DỰ ÁN CÔNG NGHỆ
NoiDung
PhongBan MaDA
TruongPhong ChiPhi
KhachHang
TienDo
Trang 8Nội dung dự án Phòng ban phụ trách Tên trưởng phòng Tên khách hàng Thời hạn dự án Tiến độ dự án Giá cả dự ánChi phí dự án
Trang 9II, PHÂN TÍCH BÀI TOÁN BẰNG SƠ ĐỒ KHỐI
1 Chương trình chính
Bắt đầu
Tạo danh sáchlistProjects =[]
ĐThoát khỏi chương
Xóa dự ánNhập MaDA
S
Đaction = 3 Cập nhật thôngtin dự ánKết thúc
Nhập MaDA
S
S
Đaction = 4 Nhập MaDA Tìm kiếm dự án
Trang 102 Nhập thông tin dự án
Bắt đầu
Danh sáchlistProjects =[]
Nhập MaDA
Đ
MaDA inlistProjects
SNhập dữ liệu của
dự án mới
Kết thúc Thêm vào ds
listProjects =[]
Trang 113 Xóa thông tin dự án
Bắt đầu
MaDA inlistProjects
Nhập MaDA
Danh sáchlistProjects =[]
Không tìm thấy dự án
cần xóa
Xóa dự án thành công
Kết thúcĐ
S
Trang 124 Cập nhật thông tin dự án
Bắt đầu
Danh sáchlistProjects =[]
S
Đ
Nhập MaDA
MaDA inlistProjects
cần cập nhật
Trang 135. Tìm kiếm thông tin dự án
Bắt đầu
Danh sáchlistProjects =[]
Nhập MaDA
MaDA inlistProjects Xuất thông tin dự án
Đ
S
Kết thúcKhông tìm thấy dự án
cần cập nhật
Trang 146 Hàm tìm một dự án (có tồn tại trong danh sách hay không)
Trang 15III, Cài đặt chương trình
1 Tạo file data.py để lưu trữ danh sách dự án
#Biến lưu trữ danh sách dự án
listProjects = []
2 Tạo file duan.py để xây dựng các hàm
Trong file duan.py, ta sử dụng module data với biến lưu trữ danh sách dự án
listProjects cho trước
Tại đây ta xây dựng và quy ước các hàm để nhập thông tin dự án, xóa thông tin dự
án, cập nhật thông tin dự án và tìm kiếm thông tin dự án
Đầu tiên ta tạo hàm def findProject(), đây là hàm tìm một dự án trong danh sách
dự án đã được lưu trong data, đây là hàm quan trọng để xây dựng các hàm còn lại, nó kiếm tra mã dự án (MaDA) và xác định dự án có tồn tại trong danh sách hay không
Tiếp đến ta xây dựng hàm nhập thông tin dự án mới.
Đầu tiên, ta kiếm tra rằng mã dự án đã tồn tại trong danh sách chưa, nếu đã tồn tại thì nhập lại, còn nếu chưa tồn tại thì nhập dữ liệu dự án mới vào trong danh sách Sau khi nhập xong thì dự án sẽ tự động lưu vào danh sách tại file data.py
Xây dựng hàm xóa thông tin dự án
Ở đây, chúng ta xóa thông tin dự án theo mã dự án được nhập vào Vẫn phải kiểm tra mã dự án, nếu mã dự án tồn tại thì dự án đó sẽ tự động xóa, còn nếu mã dự án không tồn tại thì chương trình sẽ phản hồi rằng không có mã dự án trong
danh sách
Cập nhật thông tin dự án
Cập nhật thông tin dự án theo mã dự án được nhập vào Vẫn phải kiểm tra mã dự
án, nếu mã dự án tồn tại thì sẽ hiện phần dữ liệu để cập nhật, còn nếu mã dự án không tồn tại thì chương trình sẽ phản hồi rằng không có mã dự án trong danh sách
Trang 16
Xây dựng hàm tìm kiếm thông tin dự án.
Tìm kiếm thông tin dự án theo mã dự án được nhập vào Vẫn phải kiểm tra mã dự
án, nếu mã dự án tồn tại thì sẽ hiện phần dữ liệu đã lưu trước đó, còn nếu mã dự án không tồn tại thì chương trình sẽ phản hồi rằng không có mã dự án trong danh sách
import data as d
def addProject():
"""Hàm nhập thông tin một dự án"""
print("*** NHẬP THÔNG TIN DỰ ÁN ***")
# Cấu trúc lưu trữ một sinh viên
Trang 17print("Nhập tên trưởng phòng phụ trách: ") infor['TruongPhong'] = input()
Trang 18for i in range(0, len(d.listProjects)):
print(f"Nội dung: {duAn['NoiDung']}")
print(f"Phòng ban: {duAn['PhongBan']}")
Trang 21+Tìm kiếm thông tin dự án
Trang 22action = int(input())
if action == 0:
break
Sau khi hoàn tất cài đặt, ta chạy thử chương trình
Trên màn hình ta thấy menu lựa chọn các thao tác
+ Chạy thử hàm nhập thông tin dự án:
Ta nhập 1 để nhập thông tin của dự án mới
Trang 23Khi thao tác thêm 1 lần nữa với mã dự án đã trùng, chương trình phản hồi:
+ Chạy thử hàm xóa thông tin dự án:
Ta nhập 2 để xóa thông tin của dự án đã lưu trong danh sách
Khi nhập một mã dự án không tồn tại trong danh sách, chương trình phản hồi như sau:
Trang 24Chương trình tìm thấy dự án và tự động xóa dự án:
+ Chạy thử hàm cập nhật thông tin dự án:
Ta nhập 3 để cập nhật thông tin của dự án đã lưu trong danh sách
Khi nhập một mã dự án không tồn tại trong danh sách, chương trình phản hồi như sau:
Trang 25Chương trình tìm thấy dự án và cập nhật từng thuộc tính của dự án:
+ Chạy thử hàm tìm kiếm thông tin dự án:
Ta nhập 4 để tìm kiếm thông tin của dự án đã lưu trong danh sách
Khi nhập một mã dự án không tồn tại trong danh sách, chương trình phản hồi như sau:
Chương trình phản hồi dữ liệu của dự án:
Trang 26IV, KẾT LUẬN
Chương trình quản lý dự án công nghệ cho Công ty TNHH phần mềm FPT đã
được xây dựng dựa trên yêu cầu và các phân tích bài toán đã nêu Chương trình nàycung cấp các chức năng quan trọng như nhập thông tin dự án, xóa thông tin dự án, cậpnhật thông tin dự án và tìm kiếm thông tin dự án Các chức năng này được tổ chứcdưới dạng các hàm và module để tăng tính tổ chức và khả năng mở rộng của chươngtrình