



















Preview text:
lOMoAR cPSD| 47205411
TRƯỜNG ĐẠI HỌC THƯƠ NG MẠI
KHOA HTTT KINH TẾ & TMĐT
BỘ MÔN LẬP TRÌNH PYTHON
B ÀI TẬP LỚN /DỰ ÁN
HỌC PHẦN: Lập trình Python
MÃ LỚP HỌC PHẦN: 24 2 _INFO4511_0 7 GVGD: Đinh Thị Hà NHÓM: 7
MÃ SỐ ĐỀ TÀI/ TÊN ĐỀ TÀI: 3 - Xây dựng chương trình q uản lý
khách hàng của siêu thị V inmart Điểm bài tập Số Lớp Điểm Ký Ghi báo Họ và tên
M a số SV hành kết nộp chú danh chính Chấm Chấm luận 1 2 11 18 28 34 y 44 51
Hà Nội, ngày 7 tháng 6 năm 2025
Cán bộ bộ chấm 1 Cán bộ chấm 2
( Kí & ghi rõ họ tên ) ( Kí & ghi rõ họ tên ) lOMoAR cPSD| 47205411
HỌC KÌ 2 NĂM HỌC 2024 - 2025 lOMoAR cPSD| 47205411 Lời cảm ơn
Trước hết nhóm chúng em xin gửi lời cảm ơn chân thành và sâu sắc tới cô Đinh
Thị Hà, người đã trực tiếp giảng dạy và tận tình hướng dẫn chúng em trong suốt quá
trình học tập học phần Lập trình với Python. Trong suốt thời gian học tập vừa qua,
cô không chỉ truyền đạt cho chúng em những kiến thức chuyên môn quý báu mà
còn truyền cảm hứng, khơi dậy tinh thần học hỏi và sự chủ động trong nghiên cứu.
Nhờ có sự chỉ dẫn tỉ mỉ, sự kiên nhẫn và tâm huyết của cô, chúng em đã từng bước
tiếp cận với ngôn ngữ lập trình Python.
Chính từ những nền tảng cô đã cung cấp, nhóm chúng em đã có thể thực hiện
đề tài "Xây dựng chương trình quản lý khách hàng của siêu thị Vinmart" một cách
nghiêm túc và đầy cố gắng. Đây không chỉ là một sản phẩm học thuật mà còn là
minh chứng cho những gì chúng em đã tiếp thu được từ sự giảng dạy tận tâm của cô.
Tuy nhiên, do vốn kiến thức và trình độ còn hạn chế, bài làm của nhóm vẫn khó
tránh khỏi những sai sót. Chúng em rất mong nhận được những góp ý chân thành từ
cô để có thể hoàn thiện hơn trong tương lai.
Nhóm chúng em xin chân thành cảm ơn ! 1 lOMoAR cPSD| 47205411 MỤC LỤC
LỜI MỞ ĐẦU.......................................................................................................... 4
I. ĐẶT BÀI TOÁN .................................................................................................. 5
1. Đặt vấn đề ....................................................................................................... 5
2. Mô tả bài toán ................................................................................................. 5
3. Viết chương trình dưới dạng hàm và mô đun ................................................. 6
II. PHÂN TÍCH BÀI TOÁN BẰNG SƠ ĐỒ
KHỐI............................................9 ......................................................................... 7
1. Phân tích bài toán ........................................................................................... 7
2. Sơ đồ khối chương trình chính ....................................................................... 8
3. Sơ đồ khối các chức năng chính ................................................................... 10
3.1. Chức năng thêm khách hàng................................................................. 10
3.2. Chức năng xóa khách hàng ................................................................... 12
3.3. Chức năng cập nhật thông tin khách hàng ............................................ 14
3.4. Chức năng tìm kiếm thông tin khách hàng ........................................... 17
III. CÀI ĐẶT CHƯƠNG
TRÌNH.......................................................................20 ........................................ 18
1. Xây dựng hàm .............................................................................................. 18
1.1. Hàm chuyển dữ liệu từ file sang danh sách (đọc file) .......................... 18
1.2. Hàm chuyển dữ liệu từ danh sách sang file (lưu file)........................... 19
1.3. Hàm chức năng thêm khách hàng ......................................................... 20
1.4. Hàm xóa thông tin khách hàng ............................................................. 23
1.5. Hàm cập nhât thông tin khách hàng ..................................................... 25
1.6. Hàm tìm kiếm thông tin khách hàng .................................................... 29
1.7. Hàm chương trình chính ....................................................................... 30
2. Chạy chương trình ........................................................................................ 32 2 lOMoAR cPSD| 47205411
2.1. Hình ảnh chạy chương trình với chức năng thêm khách hàng ............. 32
2.2. Hình ảnh chạy chương trình với chức năng xóa khách hàng ............... 33
2.3. Hình ảnh chạy chương trình với chức năng cập nhật thông tin khách 34
hàng .............................................................................................................. 34
2.4. Hình ảnh chạy chương trình với chức năng tìm kiếm thông tin khách
..................................................................................................................... 35
hàng .............................................................................................................. 35
2.5. Hình ảnh chạy chương trình in danh sách và thoát chương trình ......... 36
IV. KẾT LUẬN ...................................................................................................... 37 3 lOMoAR cPSD| 47205411 LỜI MỞ ĐẦU
Trong thời đại công nghệ phát triển mạnh mẽ, việc ứng dụng công nghệ thông
tin vào các hoạt động sản xuất – kinh doanh đã và đang trở thành một xu thế tất yếu.
Máy tính và các phần mềm tin học không còn xa lạ mà đã trở thành công cụ hỗ trợ
đắc lực trong quản lý và vận hành doanh nghiệp. Trong nhiều lĩnh vực khác nhau
như tài chính, giáo dục, y tế hay bán lẻ, công nghệ thông tin đóng vai trò trung tâm
trong việc nâng cao hiệu quả làm việc, tối ưu hóa quy trình và gia tăng chất lượng dịch vụ.
Đặc biệt trong ngành bán lẻ, nơi lượng khách hàng đông đảo và dữ liệu phát
sinh liên tục, việc quản lý thông tin khách hàng bằng phương pháp thủ công không
chỉ kém hiệu quả mà còn dễ xảy ra sai sót. Trước thực tế đó, nhu cầu xây dựng một
hệ thống quản lý khách hàng thông minh và tiện lợi là vô cùng cần thiết.
Xuất phát từ thực tế trên, nhóm chúng em đã thực hiện đề tài “Xây dựng chương
trình quản lý khách hàng của hệ thống siêu thị VinMart”. VinMart là một thương
hiệu bán lẻ uy tín, có hệ thống siêu thị phủ khắp cả nước và sở hữu lượng khách
hàng thân thiết rất lớn. Một hệ thống quản lý khách hàng hiệu quả sẽ giúp VinMart
không chỉ lưu trữ thông tin một cách chính xác mà còn hỗ trợ trong việc phân loại
khách hàng, theo dõi lịch sử mua sắm, tích lũy điểm thưởng và chăm sóc khách hàng
tốt hơn. Đây là yếu tố quan trọng để doanh nghiệp giữ chân khách hàng và nâng cao
năng lực cạnh tranh trên thị trường.
Việc xây dựng chương trình quản lý khách hàng là dịp để chúng em vận dụng
kiến thức tin học đã học vào thực tiễn, rèn luyện kỹ năng lập trình, thiết kế giao
diện, xử lý dữ liệu và tư duy logic. Đồng thời, đây cũng là cơ hội để tìm hiểu thêm
về nghiệp vụ trong lĩnh vực bán lẻ và chăm sóc khách hàng.
Báo cáo gồm 4 phần chính:
Phần I: Đặt bài toán
Phần II: Phân tích bài toán dưới dạng sơ đồ khối
Phần III: Cài đặt chương trình
Phần IV: Kết luận 4 lOMoAR cPSD| 47205411 I. ĐẶT BÀI TOÁN 1. Đặt vấn đề
VinMart là hệ thống siêu thị hiện đại quen thuộc với hàng triệu gia đình Việt,
nơi bạn có thể dễ dàng tìm thấy mọi thứ từ thực phẩm tươi ngon, đồ dùng gia đình
cho đến những món hàng thiết yếu mỗi ngày. Với mục tiêu “mua sắm tiện lợi – chất
lượng đảm bảo”, VinMart không chỉ mang đến trải nghiệm mua sắm nhanh chóng,
thoải mái mà còn luôn cập nhật xu hướng, cải tiến dịch vụ để phù hợp với lối sống
năng động của giới trẻ hiện đại. Đội ngũ khách hàng thân thiện, không gian sạch sẽ
và chuỗi ưu đãi cực hấp dẫn chính là lý do VinMart ngày càng được khách hàng tin
tưởng và yêu thích. VinMart không ngừng phát triển để trở thành điểm đến mua sắm
thông minh, tiện ích cho mọi nhà.
Chương trình quản lý khách hàng tại VinMart chính là "vũ khí bí mật" giúp
thương hiệu bán lẻ này ngày càng gần gũi và thấu hiểu người tiêu dùng Việt. Không
chỉ dừng lại ở việc ghi nhận giao dịch, hệ thống quản lý khách hàng thông minh của
VinMart còn giúp phân tích hành vi mua sắm, sở thích và nhu cầu của từng khách
hàng. Nhờ vậy, VinMart có thể cá nhân hóa ưu đãi, giới thiệu sản phẩm phù hợp và
mang lại trải nghiệm mua sắm ngày càng tiện lợi, nhanh chóng và thú vị. Đặc biệt,
thông qua chương trình tích lũy chi tiêu , phân hạng mục khách hàng thân quen và
chăm sóc khách hàng hiện đại – VinMart đang xây dựng một cộng đồng khách hàng
trung thành, kết nối chặt chẽ với thương hiệu. Trong kỷ nguyên số, việc ứng dụng
công nghệ để quản lý và chăm sóc khách hàng không chỉ giúp VinMart tối ưu hóa
vận hành, mà còn tạo nên lợi thế cạnh tranh bền vững trên thị trường bán lẻ. 2. Mô tả bài toán
Thêm thông tin, xóa thông tin, cập nhật thông tin và tìm kiếm thông tin khách hàng của cửa hàng
- Thêm thông tin khách hàng: Người quản lý thêm thông tin khách hàng
- Xóa thông tin khách hàng: Người quản lý muốn xóa thông tin khách hàng
- Cập nhật thông tin khách hàng: Người quản lý sửa, bổ sung thông tin sai hoặc
còn thiếu của khách hàng.
- Tìm kiếm thông tin khách hàng: Tìm bất cứ thông tin của khách hàng một cách
nhanh nhất bằng cách tra cứu mã khách hàng. 5 lOMoAR cPSD| 47205411
Trong đó mỗi khách hàng sẽ có một mã khách hàng và mã này là duy nhất. Khi thực
hiện lệnh xóa, cập nhật, tìm kiếm thông tin khách hàng ta luôn nhập mã để xử lý nhanh chóng và dễ dàng.
3. Viết chương trình dưới dạng hàm và mô đun
- Chúng ta có thể sử dụng hàm để viết chương trình
- Mỗi một chức năng có thể sử dụng một hàm riêng biệt
- Có thể tạo module để lưu trữ dữ liệu cũng như các hàm hỗ trợ khác như: nhập, xuất, tìm kiếm,..v..v 6 lOMoAR cPSD| 47205411
II. PHÂN TÍCH BÀI TOÁN BẰNG SƠ ĐỒ KHỐI
1. Phân tích bài toán
- Thêm thông tin khách hàng
Chức năng cho phép bộ phận quản lý khách hàng thêm một khách hàng mới vào
hệ thống. Người dùng sẽ nhập các thông tin cơ bản như: mã khách hàng, họ tên, số
điện thoại, địa chỉ, tổng chi tiêu. Hệ thống sẽ tự động phân loại hạng thành viên dựa
trên tổng chi tiêu theo quy định như sau:
Dưới 2.000.000 VNĐ → Hạng Đồng
Từ 2.000.000 đến dưới 5.000.000 VNĐ → Hạng Bạc
Từ 5.000.000 đến dưới 10.000.000 VNĐ → Hạng Vàng
Từ 10.000.000 VNĐ trở lên → Hạng Kim cương - Xóa khách hàng:
Cho phép bộ phận quản lý nhân sự xóa thông tin của khách hàng khỏi hệ thống
- Cập nhật thông tin khách hàng
Cung cấp chức năng cập nhật thông tin của một khách hàng cụ thể (theo mã), bao
gồm các mục như họ tên, số điện thoại, địa chỉ, tổng chi tiêu hoặc toàn bộ thông tin.
Khi cập nhật tổng chi tiêu, hạng thành viên cũng sẽ được cập nhật tương ứng.
- Tìm kiếm thông tin khách hàng
Cho phép tìm kiếm khách hàng theo mã để xem nhanh các thông tin hiện tại của khách hàng 7 lOMoAR cPSD| 47205411
2. Sơ đồ khối chương trình chính 8 lOMoAR cPSD| 47205411
Mô tả sơ đồ khối Input: Lựa chọn chức năng
Output: Thêm khách hàng Xoá bỏ khách hàng
Cập nhập thông tin khách hàng
Tìm kiếm thông tin khách hàng Các bước thực hiện:
Bước 1: Mở file cài đặt chương trình chính Bước 2: Hiển thị menu
1. Chức năng thêm khách hàng
2. Chức năng xóa khách hàng
3. Chức năng cập nhật thông tin khách hàng
4. Chức năng tìm kiếm thông tin khách hàng
5. In danh sách và thoát Bước 3: Chọn chức năng Bước 4: Lựa chọn = 1 ?
Nếu đúng: Thực hiện thêm khách hàng. Và quay lại bước 3 Nếu sai: Bước 5 Bước 5: Lựa chọn = 2 ?
Nếu đúng: Thực hiện xóa khách hàng. Và quay lại bước 3 Nếu sai: Bước 6 Bước 6: Lựa chọn = 3 ?
Nếu đúng: Thực hiện cập nhật thông tin khách hàng. Và quay lại bước 3 Nếu sai: Bước 7 Bước 7: Lựa chọn = 4 ?
Nếu đúng: Thực hiện tìm kiếm thông tin khách hàng. Và quay lại bước 3 Nếu sai: Bước 8 Bước 8: Lựa chọn = 5 ? 9 lOMoAR cPSD| 47205411
Nếu đúng: In danh sách và thoát. => Bước 9
Nếu sai: Quay lại bước 3 Bước 9: Kết thúc
3. Sơ đồ khối các chức năng chính
3.1. Chức năng thêm khách hàng
Mô tả sơ đố khối
Input: Mã khách hàng, Họ tên, Số điện thoại, Địa chỉ, Tổng chi tiêu. 10 lOMoAR cPSD| 47205411
Output: Danh sách khách hàng đã thêm thành công và có trường “Hạng” được phân loại tự động.
Các bước thực hiện: Bước 1: Đọc file
Bước 2: Nhập MaKH cần thêm.
Bước 3: Kiểm tra MaKH có hợp lệ không?(Mã khách hàng được coi là hợp lệ nếu
không trùng với mã khách hàng có trước đó) Nếu đúng: Chuyển sang bước 4.
Nếu sai: In MaKH không hợp lệ. Vui lòng nhập và quay lại bước 2.
Bước 4: Nhập Họ tên, Số điện thoại, Địa chỉ.
Bước 5: Nhập Tổng chi tiêu.
Bước 6: Kiểm tra Tổng chi tiêu > 0 ?
Nếu đúng: Chuyển sang bước 7.
Nếu sai: Quay lại bước 5.
Bước 7: Kiểm tra Tổng chi tiêu < 2tr ?
Nếu đúng: Gán Hạng = Đồng.
Nếu sai: Chuyển sang bước 8.
Bước 8: Kiểm tra Tổng chi tiêu < 5tr ?
Nếu đúng: Gán Hạng = Bạc.
Nếu sai: Chuyển sang bước 9.
Bước 9: Kiểm tra Tổng chi tiêu < 10tr ?
Nếu đúng: Gán Hạng = Vàng.
Nếu sai: Chuyển sang bước 10.
Bước 10: Gán Hạng = Kim cương.
Bước 11: Lưu danh sách khách hàng thêm thành công vào file
Bước 12: In Thêm thành công.
Bước 13: Thêm khách hàng nữa không? 11 lOMoAR cPSD| 47205411
Nếu đúng: Quay lại bước 2.
Nếu sai: Chuyển sang bước 14. Bước 14 : Kết thúc.
3.2. Chức năng xóa khách hàng Mô tả sơ đồ
Input: Danh sách khách hàng, lựa chọn cách xóa, mã khách hàng
Output: Xóa khách hàng theo mã 12 lOMoAR cPSD| 47205411 Xóa toàn bộ danh sách Danh sách trống
Các bước thực hiện: Bước 1: Đọc file
Bước 2: Kiểm tra danh sách có rỗng hay không
Đúng: Chuyển đến bước 10
Sai : Chuyển đến bước 3
Bước 3: Hiển thị phương thức xóa và nhập lựa chọn
1. Xóa toàn bộ danh sách → Chuyển đến Bước 4
2. Xóa khách hàng theo mã → Chuyển đến Bước 5 Bước 4: Lựa chọn = 1?
Đúng: Thực hiện xóa toàn bộ danh sách khách hàng.
→In thông báo xóa toàn bộ thành công → Chuyển đến bước 11
Sai: Chuyển đến bước 5 Bước 5: Lựa chọn = 2 ?
Đúng: Chuyển đến bước 6
Sai: Thông báo lựa chọn không hợp lệ và nhập lại→ Quay lại bước 3
Bước 6: Nhập mã khách hàng
Bước 7: Kiểm tra mã khách hàng có tồn tại không
Đúng : Chuyển đến Bước 7
Sai : In ra "Không tồn tại mã khách hàng", quay về bước 6
Bước 8: In ra thông tin hiện tại của khách hàng
Bước 9: Xóa khách hàng → Chuyển đến bước 11
Bước 10: In ra “ Danh sách rỗng” → Chuyển đến bước 12
Bước 11: Lưu file → Chuyển đến bước 12
Bước 12: Kết thúc chương trình 13 lOMoAR cPSD| 47205411
3.3. Chức năng cập nhật thông tin khách hàng Mô tả sơ đồ
Input: Mã khách hàng , danh sách khách hàng 14 lOMoAR cPSD| 47205411
Output: Cập nhật thông tin khách hàng thành công hoặc không cập nhật do danh sách trống
Các bước thực hiện: Bước 1: Đọc file
Bước 2: Kiểm tra danh sách khách hàng có rỗng không?
Đúng: In ra “ danh sách còn trống” bước 17
Sai: Chuyển đến bước 3
Bước 3: Nhập mã khách hàng
Bước 4: Kiểm tra mã khách hàng có tồn tại không?
Đúng: Chuyển sang bước 5
Sai: In ra “ Mã khách hàng không hợp lệ, vui lòng nhập lại”,quay về bước 3
Bước 5: Hiển thị thông tin hiện tại của khách hàng Bước
6: Hiển thị menu và nhập lựa chọn cập nhật 1.Cập nhật tên
2.Cập nhật số điện thoại 3.Cập nhật địa chỉ
4.Cập nhật tổng chi tiêu
5.Cập nhật toàn bộ thông tin 6.Thoát
Bước7: Kiểm tra lựa chọn = 1
Đúng: Nhập tên mới → Chuyển đến bước 15 Sai: Chuyển sang bước 8
Bước 8: Kiểm tra lựa chọn = 2
Đúng: Nhập số điện thoại mới bước 15 Sai: Chuyển sang bước 9
Bước 9: Kiểm tra lựa chọn = 3 15 lOMoAR cPSD| 47205411
Đúng: Nhập địa chỉ mới bước 15 Sai: Chuyển sang bước 10
Bước 10: Kiểm tra lựa chọn = 4
Đúng: Chuyển sang bước 13 Sai: Chuyển sang bước 11
Bước 11: Kiểm tra lựa chọn = 5
Đúng: Nhập tên ,sdt, địa chỉ mới => Bước 13 Sai: Chuyển sang bước 12
Bước 12: Kiểm tra lựa chọn = 6 Đúng: bước 17 Sai: Quay lại bước 6
Bước 13: Nhập tổng chi tiêu mới
Bước 14: Kiểm tra và xếp hạng khách hàng Bước 15: Lưu file
Bước 16: Hiển thị thông tin mới của khách hàng Bước 17: Kết thúc 16 lOMoAR cPSD| 47205411
3.4. Chức năng tìm kiếm thông tin khách hàng
Mô tả sơ đồ khối:
Input: mã khách hàng, danh sách thông tin khách hàng
Output: thông tin khách hàng tìm thấy
Các bước thực hiện Bước 1: Đọc file
Bước 2: Nhập mã khách hàng cần tìm kiếm (hoặc nhập 0 để thoát) Bước 3: Kiểm tra mã KH=0?
Đúng: chuyển sang bước 5 Sai: chuyển sang bước 4
Bước 4: Kiểm tra mã KH có tồn tại?
Đúng: In thông tin khách hàng tìm được và chuyển qua bước 5
Sai: In “không hợp lệ. Vui lòng thử lại” và quay lại bước 2 Bước 5: Kết thúc 17 lOMoAR cPSD| 47205411
III. CÀI ĐẶT CHƯƠNG TRÌNH
Chương trình xây dựng hệ thống quản lý khách hàng cho siêu thị VinMart, sử
dụng file danhsachkhachhang.csv để lưu trữ thông tin khách hàng. Việc lưu dữ liệu
vào file giúp đảm bảo thông tin không bị mất khi thoát khỏi chương trình. Thông
qua chương trình, người dùng có thể thực hiện các thao tác như thêm mới, xóa, cập
nhật và tìm kiếm thông tin khách hàng một cách dễ dàng. File
danhsachkhachhang.csv sẽ lưu toàn bộ dữ liệu khách hàng để phục vụ cho việc quản
lý và truy xuất khi cần thiết.
Trong chương trình, nhóm có sử dụng thư viện csv (được gọi bằng câu lệnh import
csv) để hỗ trợ đọc và ghi dữ liệu ra file .csv. Thư viện này giúp thao tác với file trở
nên thuận tiện hơn, cho phép dữ liệu được lưu dưới dạng bảng gồm các hàng và cột,
dễ dàng xử lý và quản lý 1. Xây dựng hàm
1.1. Hàm chuyển dữ liệu từ file sang danh sách (đọc file) def doc_file(): danh_sach = [ ] try: with
open('danhsachkhachhang.csv', mode='r', encoding='utf-8') as f:
reader = csv.DictReader(f, delimiter=';') for row in reader:
row['Tổng chi tiêu'] = float(row['Tổng chi tiêu']) danh_sach.append(row) except FileNotFoundError: pass return danh_sach Mô tả chi tiết:
Đọc dữ liệu khách hàng từ file danhsachkhachhang.csv và chuyển đổi thành danh
sách các đối tượng (dạng từ điển) để dễ dàng xử lý trong chương trình.
- Khởi tạo một danh sách rỗng có tên danh_sach để lưu trữ các bản ghi kháchhàng. 18