Chức năng thêm sản phẩm- Mô tả: Chương trình cho phép người quản lý thêm thông tin sản phẩm: ID sản phẩm, tên sản phẩm, số lượng hàng, giá cả, vị trí trong kho, ngày nhập kho, tình trạng
ĐẶT BÀI TOÁN
Đặt vấn đề
- Tình hình kinh doanh của công ty thiết bị nội thất Viglacera ngày càng tốt hơn do nhu cầu của khách hàng tăng cao, sản phẩm nhập kho cũng vì thế ngày một nhiều Điều đó đã đặt ra yêu cầu rằng công ty cần có chiến lược quản lý kho một cách hiệu quả để thuận tiện cho việc kinh doanh Trước vấn đề đó đòi hỏi bộ phận quản lý kho hàng của công ty phải lưu trữ đầy đủ và chính xác toàn bộ thông tin của sản phẩm và để tránh sự nhầm lẫn giữa các sản phẩm với nhau ta nhận diện thông qua các thuộc tính như: ID sản phẩm, tên sản phẩm, số lượng, giá cả, ngày nhập kho, tình trạng sản phẩm.
Mô tả bài toán
- Với vấn đề đã đề cập bên trên thì bài toán cần đặt ra là chúng ta cần nhập thông tin, xóa thông tin, cập nhật thông tin và tìm kiếm thông tin sản phẩm nội thất.
Thêm sản phẩm khi có thêm sản phẩm mới đủ điều kiện nhập kho.
Xoá bỏ sản phẩm khi cần xoá.
Cập nhật sửa thông tin sản phẩm khi có sự thay đổi.
Tìm kiếm thông tin sản phẩm khi có nhu cầu.
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
Phân tích bài toán
Chương trình bao gồm các chức năng chính sau đây:
- Người quản lý điền các thông tin cơ bản: ID sản phẩm, tên sản phẩm, số lượng hàng, giá cả, ngày nhập kho, tình trạng sản phẩm… để thêm sản phẩm.
- Cho phép người quản lý xoá bỏ sản phẩm đã thêm trước đó.
1.3 Cập nhật thông tin sản phẩm:
- Cho phép người quản lý cập nhật thông tin sản phẩm đã thêm trước đó khi cần chỉnh sửa.
1.4 Tìm kiếm thông tin sinh viên:
- Người quản lý có thể tìm kiếm thông tin sinh viên theo ID sản phẩm.Người quản lý có thể tìm kiếm thông tin sinh viên theo ID sinh viên.
Sơ đồ khối thể hiện các chức năng chính của chương trình
Hình 1: Sơ đồ các chức năng chính
Đặc tả các chức năng chính của chương trình
3.1 Chức năng thêm sản phẩm
- Mô tả: Chương trình cho phép người quản lý thêm thông tin sản phẩm: ID sản phẩm, tên sản phẩm, số lượng hàng, giá cả, vị trí trong kho, ngày nhập kho, tình trạng sản phẩm ID này là duy nhất
Hình 2: Biểu đồ hoạt động của chức năng thêm thông tin sản phẩm
Người quản lý gửi yêu cầu thêm thông tin sản phẩm tới chương trình.
Chương trình hiển thị nhập trường ID sản phẩm.
Người quản lý điền ID sản phẩm cần thêm.
Chương trình kiểm tra ID sản phẩm mà người quản lý yêu cầu thêm.
ID hợp lệ, người quản lý điền đầy đủ thông tin sản phẩm còn lại: Tên sản phẩm, số lượng hàng, giá cả, vị trí trong kho, ngày nhập kho, tình trạng sản phẩm
Người quản lí thêm thông tin sản phẩm thành công
Nếu trong luồng cơ bản, người quản lý nhập ID sản phẩm trùng với ID trước đó, chương trình sẽ báo lỗi “ID đã tồn tại Vui lòng nhập lại ID”.
Tiền điều kiện: Người quản lí điền 1 (chức năng thêm sản phẩm) trên màn hình chương trình hiển thị.
Nếu thành công: Dữ liệu được lưu vào chương trình.
Nếu thất bại: Chương trình không có gì thay đổi
3.2 Chức năng xóa bỏ sản phẩm
- Mô tả: Chương trình cho phép người quản lý xoá bỏ sản phẩm bằng ID sản phẩm.
Hình 3: Biểu đồ hoạt động chức năng xóa bỏ sản phẩm
Người quản lý gửi yêu cầu xoá bỏ sản phẩm tới chương trình.
Chương trình hiển thị xoá bỏ sản phẩm với trường ID sản phẩm.
Người quản lý điền ID sản phẩm cần xoá.
Chương trình kiểm tra ID sản phẩm mà người quản lý yêu cầu xoá.
ID hợp lệ, người quản lý xoá bỏ sản phẩm thành công.
Nếu trong luồng cơ bản, người quản lý nhập sai ID sản phẩm, chương trình sẽ báo lỗi “ID sản phẩm không tồn tại”.
Tiền điều kiện: Người quản lý điền 2 (chức năng xoá sản phẩm) trên màn hình chương trình hiển thị.
Nếu thành công: Dữ liệu được xoá khỏi chương trình.
Nếu thất bại: Chương trình không có gì thay đổi.
3.3 Chức năng cập nhật thông tin sản phẩm
- Mô tả: Chương trình cho phép người quản lý cập nhật thông tin sản phẩm bằng ID sản phẩm.
Hình 4: Biểu đồ hoạt động chức năng cập nhật thông tin sản phẩm
Người quản lý gửi yêu cầu cập nhật thông tin sản phẩm tới chương trình. Chương trình hiển thị cập nhật thông tin sản phẩm với trường ID sản phẩm. Người quản lý điền ID sản phẩm cần cập nhật.
Chương trình kiểm tra ID sản phẩm người quản lý yêu cầu chỉnh sửa.
ID hợp lệ, người quản lý điền các thông tin sản phẩm cần chỉnh sửa: Tên sản phẩm, số lượng hàng, giá cả, vị trí trong kho, ngày nhập kho, tình trạng sản phẩm. Người quản lý cập nhật thông tin sản phẩm thành công.
Nếu trong luồng cơ bản, người quản lý nhập sai ID sản phẩm, chương trình sẽ báo lỗi là “ID sản phẩm không tồn tại”
Tiền điều kiện: Người quản lý cần điền 3 (chức năng cập nhật thông tin sản phẩm) trên màn hình chương trình hiển thị.
Nếu thành công: Dữ liệu được cập nhật.
Nếu thất bại: Chương trình không có gì thay đổi.
3.4 Chức năm tìm kiếm thông tin sản phẩm
- Mô tả: Chương trình cho phép người quản lý tìm kiếm thông tin sản phẩm bằng ID sản phẩm.
Hình 5: Biểu đồ hoạt động chức năng tìm kiếm thông tin sản phẩm
Người quản lý gửi yêu cầu tìm kiếm thông tin sản phẩm tới chương trình. Chương trình hiển thị tìm kiếm thông tin sản phẩm với trường ID sản phẩm. Người quản lý điền ID sản phẩm cần tìm.
Chương trình kiểm tra ID sản phẩm người quản lý yêu cầu tìm kiếm.
ID hợp lệ, chương trình hiển thị thông tin sản phẩm theo đúng yêu cầu. Luồng thay thế:
Nếu trong luồng cơ bản, người quản lý nhập sai ID sản phẩm, chương trình sẽ báo lỗi là “ID sản phẩm không tồn tại”
Tiền điều kiện: Người quản lý cần điền 4 (chức năng tìm kiếm thông tin sản phẩm) trên màn hình chương trình hiển thị.
Nếu thành công: Dữ liệu được cập nhật.
Nếu thất bại: Chương trình không có gì thay đổi.
CÀI ĐẶT CHƯƠNG TRÌNH
Xây dựng chương trình
- Khi làm bài tập này, nhóm em đã sử dụng module “datetime” Module “datetime” trong Python là một trong những module quan trọng nhất khi làm việc với xử lý thời gian và ngày tháng Module này cung cấp nhiều đối tượng và hàm tiện ích giúp đơn giản hóa các nhiệm vụ liên quan đến quản lý thời gian trong các ứng dụng Python.
- Trong chương trình, nhóm em cũng sử dụng từ khóa “global” để chỉ định rằng biến
“listProducts” là biến toàn cục, tức là nó có thể được truy cập và thay đổi từ bất kỳ hàm nào trong chương trình, không chỉ ở phạm vi của hàm mà nó được định nghĩa.
- Hàm addProduct() có chức năng nhập thông tin sản phẩm và thêm vào danh sách.
- Hàm này được gọi từ chương trình chính trong vòng lặp While "addProduct()", được gọi khi người dùng chọn chức năng 1 trong menu chính
Hàm sẽ yêu cầu người dùng nhập thông tin sản phẩm
Hàm sử dụng biến toàn cục là “listProducts” để thêm dữ liệu Đây là một biến toàn cục được sử dụng để lưu trữ thông tin của sản phẩm trong kho hàng Mỗi phần tử trong “listProduct” đều chứa thông tin (dữ liệu) của sản phẩm.
Hàm sử dụng một vòng lặp “While True” để đảm bảo rằng người dùng phải nhập đúng định dạng cho mỗi trường thông tin Mã sẽ thực hiện cho đến khi xuất hiện lệnh “break” thì dừng lại
Tạo một dictionary “in4” sử dụng các biến “id, name, quantity, price, date và condition” để chứa thông tin của mỗi sản phẩm
Hàm sử dụng “append” dể thêm dictionary “in4” vào danh sách sản phẩm
Cấu trúc “try-except” được sử dụng để bắt lỗi và sử lí ngoại lệ nếu người dùng không nhập đúng định dạng trong quá trình nhập thông tin vào
Hàm cũng sử dụng "datetime.strptime" là một phương thức trong module
“datetime” của Python để chuyển đổi một chuỗi đại diện ngày giờ thành một đối tượng đúng định dạng của nó
Sau cùng hàm sẽ thông báo bạn có muốn tiếp tục thêm sản phẩm nữa không Nếu có hãy nhập “y”, còn nếu không thì nhập “n”
=>Sau khi nhập xong hàm này, danh sách sản phẩm sẽ có thêm một sản phẩm mới 1.2.Hàm tìm vị trí sản phẩm
- Hàm findProduct(id) sử dụng để tìm kiếm vị trí sản phẩm dựa trên ID
- Hàm này được gọi để kiểm tra xem sản phẩm cần xóa có tồn tại trong danh sách hay không trước khi thực hiện việc xóa.
Hàm findProduct(id) được sử dụng để tìm kiếm một sản phẩm trong danh sách
“listProducts” dựa trên ID cung cấp
Hàm duyệt qua danh sách các sản phẩm bằng cách sử dụng một vòng lặp "for" với biến "i" là vị trí sản phẩm trong danh sách
Sử dụng câu lệnh “if” để kiểm tra xem ID của sản phẩm tại vị trí i có khớp với ID đầu vào hay không
Nếu ID được tìm thấy, hàm trả về một tuple gồm vị trí của sản phẩm trong danh sách (i) và thông tin chi tiết của sản phẩm (listProducts[i]) Nếu không tìm thấy sản phẩm có ID tương ứng, hàm trả về False để báo hiệu rằng sản phẩm không tồn tại trong danh sách.
1.3 Hàm xóa bỏ sản phẩm
- Hàm deleteProduct() có chức năng xóa thông tin sản phẩm.
- Hàm này được gọi từ chương trình chính trong vòng lặp While "deleteProduct()", được gọi khi người dùng chọn chức năng 2 trong menu chính.
Hàm sẽ yêu cầu người dùng nhập mã ID của sản phẩm cần xóa
Hàm sử dụng biến toàn cục là “listProducts” để thêm dữ liệu
Hàm sử dụng findProduct(id) để tìm kiếm sản phẩm dựa trên danh sách ID
Hàm sử dụng “if-else” để kiểm tra xem sản phẩm có tồn tại trong danh sách không, nếu có thì tiếp tục xử lý Nếu không thì thông báo “ID sản phẩm không tồn tại!”
Hàm sử dụng “remove” của danh sách để xóa sản phẩm tìm được.
1.4 Hàm cập nhật thông tin sản phẩm
- Hàm editProduct() có chức năng cập nhật thông tin sản phẩm
- Hàm editProduct() được gọi khi người dùng chọn chức năng cập nhật thông tin sản phẩm
Hàm sẽ yêu cầu người dùng nhập mã ID của sản phẩm cần cập nhật
Hàm sử dụng biến toàn cục “listProducts” để thêm dữ liệu
Hàm sử dụng “if - else" để kiểm tra xem sản phẩm có tồn tại trong danh sách không, nếu có thì tiếp tục xử lý Nếu không thì thông báo “ID sản phẩm không tồn tại!”
Hàm sử dụng dòng mã “listProducts[product[0]] = product[1]” có tác dụng cập nhật thông tin của sản phẩm trong danh sách “listProducts” dựa trên thông tin của sản phẩm được tìm thấy.
=> Sau khi thực hiện hàm này, danh sách sản phẩm sẽ có thông tin mới
1.5 Hàm tìm kiếm thông tin sản phẩm
- Hàm showProducts() có chức năng hiển thị thông tin sản phẩm
- Hàm showProducts() được gọi để hiển thị các thông tin cụ thể của sản phẩm trong danh sách trước khi thực hiện việc tìm kiếm
Hàm sẽ yêu cầu người dùng nhập ID của sản phẩm cần tìm
Hàm sử dụng biến toàn cục là “listProducts” để thêm dữ liệu
Hàm duyệt qua danh sách các sản phẩm bằng cách sử dụng một vòng lặp “for” với biến “i” là sản phẩm cần tìm trong danh sách
Hàm sử dụng “if - else” để kiểm tra xem ID của sản phẩm tại vị trí i có khớp với
ID đầu vào hay không, nếu khớp với ID của sản phẩm cần tìm thì sản phẩm sẽ được hiển thị Nếu không thì sẽ thông báo “ ID sản phẩm không tồn tại!”
=> Sau khi thực hiện hàm này, danh sách sản phẩm sẽ không thay đổi và hiển thị thông sản phẩm cần tìm
- Chương trình chính hiển thị menu chức năng cho người dùng và cung cấp một giao diện console để người dùng tương tác với chương trình.
- Bên cạnh đó chương trình cũng sẽ hiện thị ra danh sách tất cả ID sản phẩm để giúp tối ưu hóa trải nghiệm người dùng và làm cho việc tương tác với chương trình trở nên dễ dàng và thuận tiện hơn.
Chương trình sẽ yêu cầu người dùng nhập ID của sản phẩm
Chương trình sử dụng lệnh “while True” để đảm bảo rằng người dùng phải nhập đúng các bước của chương trình
Chương trình sử dụng một vòng lặp “for” với biến “product” nhằm duyệt qua sản phẩm cần tìm trong “listProducts”
Mỗi sản phẩm là một dictionary chứa thông tin của sản phẩm, và trong trường hợp này, chúng ta quan tâm đến giá trị của khóa ID
Người dùng muốn lựa chọn bất kì một chức năng nào của chương trình thì cần nhập chức năng đó một cách chính xác Một khi chức năng người dùng nhập khớp với các chức năng hiện có của chương trình thì sẽ ra chức năng tương ứng đáp ứng nhu cầu người dùng Nếu nhập không chính xác thì chương trình lập tức thông báo
“Sai cú pháp Vui lòng nhập lại:”
Hình ảnh chạy chương trình
2.1 Hình ảnh chạy chương trình với chức năng là thêm sản phẩm:
- Nhập ID NT001 và tên sản phẩm là “Bàn làm việc chất liệu gỗ” sau đó nhập lần lượt các thông tin còn thiếu theo yêu cầu của chương trình và đã được hiển thị như trên ảnh minh họa.
- Sau khi lưu thành công thông tin của sản phẩm, chương trình hiển thị: “ Bạn có muốn thêm sản phẩm không? (y/n) :” Theo yêu cầu, nhóm đã nhập “y” và nhập ID sản phẩm là NT001 Lúc này chương trình thông báo “ ID đã tồn tại Vui lòng nhập ID khác!” Nhóm tiến hành nhập một ID mới là NT002 và tên sản phẩm là “Sofa da thật màu đen” sau đó nhập lần lượt điền các thông tin còn thiếu theo yêu cầu của chương trình và đã được hiển thị như trên ảnh đã minh họa
- Sau khi nhập thêm sản phẩm số 2 nhóm em không muốn thêm sản phẩm nào nữa vì thế theo yêu cầu chương trình nhóm đã nhập”n” và chương trình hiển thị “ Đã dừng thêm sản phẩm!”
2.2 Hình ảnh chạy chương trình với chức năng là tìm kiếm thông tin sản phẩm:
- Tìm kiếm thông tin của sản phẩm theo ID lần lượt là:
Sản phẩm ID là NT001 sau khi nhập, chương trình hiện ra thông tin của sản phẩm.
Sản phẩm thứ hai với ID là NT003 sau khi nhập, chương trình hiện ra là “ ID sản phẩm không tồn tại! ” Do trước đó ID: NT003 không được thêm vào chương trình thông qua bước nhập thông tin.
2.3 Hình ảnh chạy chương trình với chức năng cập nhật thông tin sản phẩm (3):
- Cập nhật thông tin của sản phẩm theo ID lần lượt là:
Sản phẩm với ID là NT001 đây là ID của sản phẩm có tên là “Bàn làm việc chất liệu gỗ “đã được thêm vào chương trình thông qua bước nhập thông tin Do đó sau khi nhập ID vào chương trình thì có thể chỉnh sửa được thông tin của sản phẩm
“Bàn làm việc chất liệu gỗ”, và nhóm đã tiến hành cập nhật và chỉnh sửa sản phẩm với ID là NT001 thành sản phẩm có ID là NT004 với tên gọi là “Bàn làm việc chất lượng gỗ cao cấp” Sau khi nhập xong các thông tin cần thiết chương trình đã hiển thị “ Cập nhật thông tin sản phẩm thành công!” như ảnh đã minh họa dưới đây.
Sản phẩm thứ hai với ID là NT003 sau khi nhập, chương trình hiện ra là “ ID sản phẩm không tồn tại! ” Do trước đó ID NT003 không được thêm vào chương trình thông qua bước nhập thông tin.
- Sau khi cập nhật xong sản phẩm, nhóm chúng em tiến hành kiểm tra lại xem sản phẩm đã hoàn toàn được cập nhậT vào danh sách kho quản lí hay chưa bằng chức năng tìm kiếm sản phẩm.
Nhập ID: NT004 chương trình hiện thị những thông tin liên quan cảu sản phẩm vừa được cập nhật Ta thấy sản phẩm đã hoàn toàn được cập nhật vào danh sách quản lý kho Dưới đây là hình ảnh minh họa của khi chương trình chạy
2.4 Hình ảnh chạy chương trình với chức năng xóa thông tin sản phẩm (2):
- Xóa thông tin của sản phẩm theo ID lần lượt là:
Sản phẩm thứ nhất với ID là NT001 đây là ID của sản phẩm “Bàn làm việc chất liệu gỗ” đã được thêm trước đó thông qua chức năng nhập thông tin Sau khi nhập
ID này chương trình sẽ thông báo là “ Xóa bỏ sản phẩm thành công !”
Sản phẩm thứ hai với ID là NT003 sau khi nhập, chương trình sẽ thông báo là “ID sản phẩm không tồn tại ! ” Do trước đó ID NT003 không được thêm vào chương trình thông qua chức năng thêm sản phẩm.
- Sau khi xóa thông tin sản phẩm thành công nhóm em thực hiện kiểm tra lại xem là thông tin của sản phẩm đó đã được xóa hoàn toàn khỏi danh sách của sản phẩm hay chưa bằng cách sử dụng chức năng tìm kiếm thông tin sản phẩm:
Nhập ID NT001 của sản phẩm có tên là bàn làm việc chất liệu gỗ sau khi nhập,chương trình thông báo là “ ID sản phẩm không tồn tại! ” Vậy tức là thông tin của sản phẩm đó đã được xóa hoàn toàn khỏi danh sách sản phẩm.