1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÀI THẢO LUẬ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ý kho hàng các sản phẩm đồ điện của công ty Panasonic

50 18 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Chương Trình Quản Lý Kho Hàng Các Sản Phẩm Đồ Điện Của Công Ty Panasonic
Tác giả Nhóm 2
Người hướng dẫn Cù Nguyên Giáp
Trường học Trường Đại Học Thương Mại
Chuyên ngành Khoa Httt Kinh Tế & Tmdt
Thể loại bài thảo luận
Định dạng
Số trang 50
Dung lượng 1,47 MB

Nội dung

Hình 7: Sơ đồ khối thực hiện chức năng in ra danh sách sản phẩm trong kho3.2 Mô tả chi tiết các chức năng 3.2.1 Quy trình thực hiện của chức năng - Quy trình thực hiện chức đăng ký: # Hà

Trang 1

Đề tài 2: Xây dựng chương trình quản lý kho hàng các sản

phẩm đồ điện của công ty Panasonic

Lớp HP : 231_INFO4511_03

Nhóm thực hiện : Nhóm 2

Giảng viên hướng dẫn : Cù Nguyên Giáp

Tên sinh viên :

Mã sinh viên :

Trang 2

MỤC LỤC

LỜI MỞ ĐẦU 3

LỜI CẢM ƠN 4

CHƯƠNG 1 MỘT SỐ KHÁI NIỆM CƠ BẢN 5

1.1 Khái niệm về hàm 5

1.2 Khái niệm về biến và kiểu dữ liệu 5

1.3 Module 5

1.4 Câu điều kiện và vòng lặp 5

CHƯƠNG 2 MÔ TẢ BÀI TOÁN 6

CHƯƠNG 3 PHÂN TÍCH BÀI TOÁN 7

3.1 Sơ đồ các chức năng của hệ thống 7

3.2 Mô tả chi tiết các chức năng 13

3.2.1 Quy trình thực hiện của chức năng 13

3.2.2 Sơ đồ khối thực hiện của chức năng 25

CHƯƠNG 4 CÀI ĐẶT CHƯƠNG TRÌNH 26

4.1 Cài đặt thư viện 33

4.2 Mô tả cấu trúc của chương trình 34

4.3 Mô tả chi tiết các hàm chính của chương trình 35

4.4 Kết quả chạy chương trình 36

4.4.1 Quy trình thêm sản phẩm 37

4.4.2 Quy trình xóa sản phẩm 38

4.4.3 Quy trình cập nhật sản phẩm 39

4.4.4 Quy trình tìm kiếm sản phẩm 41

4.4.5 Quy trình hiển thị danh sách sản phẩm 43

4.4.6 Quy trình xuất excel 43

4.4.7 Quy trình đăng xuất 44

KẾT LUẬN 45

TÀI LIỆU THAM KHẢO 46

BIÊN BẢN HỌP NHÓM PHÂN CHIA CÔNG VIỆC NHÓM 2 47

Trang 3

LỜI MỞ ĐẦU

Trong thời đại ngày nay, khi chất lượng cuộc sống người tiêu dùng khôngngừng được cải thiện, nhu cầu về các sản phẩm công nghệ hiện đại ngày càng tăngcao Điều này tạo ra một thách thức lớn đối với quản lý kho hàng, đặc biệt là khi có sựbùng nổ của cửa hàng và chuỗi cửa hàng cung cấp đồ điện tử, đồ điện lạnh Hiện nay,thị trường đang chứng kiến sự xuất hiện đồng loạt của nhiều doanh nghiệp cung cấp vàbán lẻ thiết bị điện tử, đồ điện để đáp ứng đa dạng nhu cầu của khách hàng Tuy nhiên,

sự gia tăng về số lượng cửa hàng và sự đa dạng về mẫu mã sản phẩm đã tạo ra nhữngthách thức lớn trong quản lý kho hàng

Để đối mặt với thách thức này, chúng tôi đã chủ động áp dụng các giải phápquản lý kho hàng hiện đại Việc sử dụng hệ thống quản lý kho thông minh và tự độnggiúp giảm bớt gánh nặng cho quá trình quản lý Điều này không chỉ mang lại sự hiệuquả trong quản lý kho hàng mà còn đảm bảo rằng sản phẩm luôn sẵn sàng để đáp ứngnhu cầu ngày càng đa dạng của khách hàng Đồng thời, việc sử dụng công nghệ thôngtin trong quản lý kho cũng giúp công ty nắm bắt thông tin về xu hướng tiêu dùng và dựbáo nhu cầu, từ đó đưa ra các chiến lược kinh doanh linh hoạt và hiệu quả

Với sự phát triển của công nghệ thông tin luôn cố gắng đáp ứng các yêu cầu củacon người Lập trình đóng một vai trò trong quá trình phát triển hiện nay của côngnghệ thông tin Nhờ lập trình mà công nghệ thông tin ngày càng phát triển Vì vậycông nghệ thông tin nói riêng và lập trình nói chung đang được áp dụng vào đời sốngngày càng nhiều Ví dụ như: quản lý kho sách, quản lý dự án công nghệ, quản lý kháchhàng, quản lý sinh viên, quản lý tiền lương

Vì vậy, nhóm chúng em sẽ ứng dụng lập trình vào việc Quản lý kho hàng các

sản phẩm đồ điện của công ty Panasonic Để có thể hiểu rõ hơn về đề tài, chúng

em sẽ chia đề tài ra làm 4 chương:

Chương I: Một số khái niệm cơ bản Chương II: Mô tả bài toán

Chương III: Phân tích bài toán Chương IV: Cài đặt chương trình

Trang 4

4

Trang 5

ty Panasonic”.

Tuy nhiên, kiến thức về Python của nhóm em vẫ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 này Mongthầy xem xét và góp ý để bài tập của nhóm em được hoàn thiện hơn

Kính chúc thầy sức khỏe, hạnh phúc và thành công hơn nữa trong sự nghiệp trồngngười

Nhóm em xin chân thành cảm ơn!

Trang 6

Cú pháp của hàm: def ten_ham (các tham số/đối số):

1.2 Khái niệm về biến và kiểu dữ liệu

Biến số là biến dùng để lưu trữ thông tin, các tham chiếm và sử dụng để thao tác dữliệu

Cú pháp của biến: ten_bien = gia_tri

- Kiểu dữ liệu số gồm hai loại là kiểu nguyên và kiểu thập phân

- Cú pháp: variable_name = kieu_du_lieu_so

1.3 Module

- Module là một đối tượng với các thuộc tính mà bạn có thể đặt tên tùy ý và có thể gắnkết với tham chiếu

- Cú pháp: import module1 [, module2[, moduleN]

1.4 Câu điều kiện và vòng lặp

Trang 7

- Cú pháp vòng lặp while:

while (biểu thức):

các câu lệnh

CHƯƠNG 2 MÔ TẢ BÀI TOÁN

- Bài toán yêu cầu xây dựng chương trình quản lý kho hàng cho các sản phẩm củacông ty Panasonic Để quản lý kho hàng cần có các chức năng sau:

+ Phân tích bài toán và sơ đồ khối: Chúng ta cần xây dựng sơ đồ khối để mô tả cácchức năng “Thêm sản phẩm”, “Xóa sản phẩm”, “Cập nhật thông tin sản phẩm”, ”Tìmkiếm sản phẩm” ,”hiển thị danh sách sản phẩm” và “Chương trình chính”

+ Quá trình viết chương trình chính gồm 6 chức năng:

+ Viết chương trình dưới dạng các hàm và module

dữ liệu, hiển thị bảng chọn và tìm kiếm sản phẩm

Trang 8

CHƯƠNG 3 PHÂN TÍCH BÀI TOÁN

3.1 Sơ đồ các chức năng của hệ thống

Hình 1: sơ đồ các chức năng của hệ thống

Trang 9

Hình 2: Sơ đồ khối thực hiện chức năng đăng ký/ đăng nhập

Trang 10

Hình 3: Sơ đồ khối thực hiện chức năng thêm sản phẩm

Trang 11

Hình 4: Sơ đồ khối thực hiện chức năng xóa sản phẩm

Trang 12

Hình 5: Sơ đồ khối thực hiện chức năng cập nhật sản phẩm

Trang 13

Hình 6: Sơ đồ khối thực hiện chức năng tìm kiếm sản phẩm

Trang 14

Hình 7: Sơ đồ khối thực hiện chức năng in ra danh sách sản phẩm trong kho

3.2 Mô tả chi tiết các chức năng

3.2.1 Quy trình thực hiện của chức năng

- Quy trình thực hiện chức đăng ký:

# Hàm để thực hiện quá trình đăng ký người dùng

def register():

while True :

username = input( "Tển đăng nhập: " )

password = getpass.getpass( "Mật khẩu: " )

confirm_password = getpass.getpass( "Xác nhận mật khẩu: " )

if password == confirm_password:

Trang 15

return (username, password)

else :

print( "Mật khẩu và xác nhận mật khẩu không khớp Vui lòng nhập lại." )

+ Yêu cầu người dùng nhập username, password và confirm_password

+ Nếu password trùng với confirm_password, lưu thông tin tài khoản

+ Nếu password không trùng với confirm_password, in ra màn hình “Mật khẩu và xác nhận mật khẩu không khớp Vui lòng nhập lại.”

- Quy trình thực hiện chức năng đăng nhập:

# Hàm để thực hiện quá trình đăng nhập người dùng

def login():

username = input( "Tển đăng nhập: " )

password = getpass.getpass( "Mật khẩu: " )

return (username, password)

# Hàm để kiểm tra đăng nhập cua người dùng

def check_login(username, password, registered_users):

if (username, password) in registered_users:

print( "Đăng nhập thành công!" )

+ Yêu cầu người dùng nhập username và password

+ Nếu username và password trùng với username,password có sẵn (registered_users),

in ra “đăng nhập thành công”, ngược lại in ra “đăng nhập không thành công Vui lòng kiểm tra đăng nhập và mật khẩu.”

- Quy trình thực hiện chức năng thêm sản phẩm:

# Hàm để thểm san phẩm vào kho

Trang 16

product_id = input( "Nhập ID san phẩm: " )

if any(product[ 'id' ] == product_id for product in products):

print( "LôE i: Trùng ID Vui lòng nhập lại." )

continue

product_name = input( "Nhập tển san phẩm: " )

if any(product[ 'name' ] == product_name for product in products):

print( "LôE i: Trùng tển san phẩm Vui lòng nhập lại." )

continue

category = input( "Danh mục san phẩm: " )

price_str = input( "Nhập giá san phẩm (vnd): " )

if not price_str.replace( '.' , '' ).isdigit():

print( "LôE i: Định dạng giá không đúng Vui lòng nhập lại." )

continue

price = float(price_str.replace( '.' , '' ).replace( 'vnd' , '' ).replace( '$' , '' )) quantity = int(input( "Nhập sôJ lượng thểm vào: " ))

date_added = datetime.now().strftime( "%Y-%m-%d %H:%M:%S" )

# Thểm san phẩm vào danh sách

print( "LôE i: Kiểu dữ liệu không đúng Vui lòng nhập lại." )

+ Yêu cầu người dùng nhập mã sản phẩm

+ Sử dụng một vòng lặp for để duyệt qua các cặp key-value trong products (danh sách sản phẩm)

Trang 17

+ Trong vòng lặp, kiểm tra nếu giá trị đầu tiên (value[0]) của một cặp key-value nào

đó trong products bằng với mã sản phẩm (product) vừa nhập

+ Nếu có một sản phẩm trong danh sách có mã trùng khớp, yêu cầu người dùng nhập lại mã sản phẩm

+ Vòng lặp for sẽ tiếp tục chạy cho đến khi mã sản phẩm nhập vào không trùng khớp với bất kỳ sản phẩm nào trong danh sách

+ Khi mã sản phẩm nhập vào không trùng khớp với bất kỳ sản phẩm nào trong danh sách, quá trình kiểm tra hợp lệ của mã sản phẩm kết thúc

+ Yêu cầu người dùng nhập tên sản phẩm (product_name) thông qua lệnh input.+ Yêu cầu người dùng nhập giá sản phẩm (price) thông qua lệnh input

+ Thêm sản phẩm mới vào products bằng cách gán một cặp key-value mới cho danh sách

+ Value là một danh sách chứa mã sản phẩm (product_id), tên sản phẩm

(product_name), và giá sản phẩm (price)

+ In thông báo "Thêm sản phẩm thành công"

- Quy trình thực hiện chức năng xóa sản phẩm:

# Hàm để xoá san phẩm theo ID

def delete_product_by_id():

product_id = input( "Nhập ID san phẩm cẩW n xoá: " )

for product in products:

if product[ 'id' ] == product_id:

products.remove(product)

print( "Đã xoá san phẩm thành công." )

return

print( "Không tìm thẩJ y san phẩm với ID đã nhập." )

# Hàm để xoá san phẩm theo tển

def delete_product_by_name():

product_name = input( "Nhập tển san phẩm cẩW n xoá: " )

for product in products:

if product[ 'name' ] == product_name:

products.remove(product)

Trang 18

print( "Đã xoá san phẩm thành công." )

return

print( "Không tìm thẩJ y san phẩm với tển đã nhập." )

+ Yêu cầu người dùng nhập mã sản phẩm hoặc tên sản phẩm thông qua lệnh input + Sử dụng một vòng lặp for để duyệt qua các cặp key-value trong products (danh sáchsản phẩm)

+ Trong vòng lặp, kiểm tra nếu giá trị đầu tiên (value[0]) của một cặp key-value nào

đó trong products bằng với mã sản phẩm (product_id) hoặc bằng với tên sản phẩm(product_name)

+ Nếu có một sản phẩm trong danh sách có mã hoặc tên trùng khớp, xóa sản phẩm đóbằng cách sử dụng lệnh remove với key tương ứng

+ In thông báo "Xóa sản phẩm thành công"

+ Sử dụng lệnh return để thoát khỏi vòng lặp sau khi đã xóa sản phẩm thành công.+ Nếu vòng lặp for kết thúc mà không tìm thấy sản phẩm nào có mã trùng khớp, inthông báo "Không tồn tại sản phẩm"

- Quy trình thực hiện chức năng cập nhật sản phẩm:

# Hàm để cập nhật thông tin san phẩm

def update_product():

product_id = input( "Nhập ID san phẩm cẩW n cập nhật: " )

for product in products:

if product[ 'id' ] == product_id:

print( "\n1 Cập nhật tẩJ t ca thông tin" )

print( "2 Cập nhật một sôJ thông tin" )

update_choice = input( "Nhập lựa chọn cua bạn: " )

if update_choice == '1' :

product[ 'id' ] = input( "Nhập ID mới: " )

product[ 'name' ] = input( "Nhập tển san phẩm mới: " )

product[ 'category' ] = input( "Nhập danh mục mới: " )

product[ 'price' ] = float(input( "Nhập giá mới: " ))

product[ 'quantity' ] = int(input( "Nhập sôJ lượng mới: " ))

product[ 'date_added' ] = datetime.now().strftime( "%Y-%m-%d %H:%M:%S" ) elif update_choice == '2' :

print( "Chọn thông tin bạn muôJ n cập nhật:" )

print( "a ID" )

Trang 19

print( "Không tìm thẩJ y san phẩm với ID đã nhập." )

+ Yêu cầu người dùng nhập mã sản phẩm hoặc tên sản phẩm

+ Sử dụng một vòng lặp for để duyệt qua các cặp key-value trong products (danh sáchsản phẩm)

+ Trong vòng lặp, kiểm tra nếu giá trị đầu tiên (value[0]) của một cặp key-value nào

đó trong products bằng với mã sản phẩm (product_id) hoặc tên sản phẩm(product_name)

+ Nếu tìm thấy sản phẩm có mã trùng khớp:

Yêu cầu người dùng nhập vào 2 lựa chọn (cập nhật một thông tin hoặc toàn bộ)

Trang 20

Dựa vào lựa chọn người dùng (update_choice) trùng với 1 thì cập nhật toàn bộ, trùngvới 2 thì yêu cầu người dùng chọn một trong những key-value để cập nhật tùy ý.

In danh sách các tùy chọn cập nhật thông tin cho người dùng:

phẩm (products) và kiểm tra trùng khớp với các sản phẩm khác

phẩm

+ Nếu người dùng nhập một lựa chọn không hợp lệ, in thông báo "Lựa chọn khônghợp lệ"

- Quy trình thực hiện chức năng tìm kiếm sản phẩm:

# Hàm để tìm kiểJ m san phẩm theo ID

def search_product_by_id():

Trang 21

product_id = input( "Nhập ID san phẩm cẩW n tìm: " )

for product in products:

if product[ 'id' ] == product_id:

print( f "San phẩm cẩW n tìm là: {product} "

return

print( "Không tìm thẩJ y san phẩm với ID đã nhập." )

# Hàm để tìm kiểJ m san phẩm theo tển

def search_product_by_name():

product_name = input( "Nhập tển san phẩm cẩW n tìm: " )

for product in products:

if product[ 'name' ] == product_name:

print( f "San phẩm cẩW n tìm là: {product} "

return

print( "Không tìm thẩJ y san phẩm với tển đã nhập." )

# Hàm để tìm kiểJ m san phẩm theo danh mục

def search_product_by_category():

category = input( "Nhập danh mục san phẩm cẩW n tìm: " )

category_products = [product for product in products if product[ 'category' ] == category]

if category_products:

print( f "San phẩm trong danh mục ' {category} ' là: {category_products} "

else :

print( f "Không tìm thẩJ y san phẩm trong danh mục ' {category} '." )

# Hàm để tìm kiểJ m san phẩm theo ngày thểm

def search_product_by_date_added():

date_added = input( "Nhập ngày thểm san phẩm (YYYY-MM-DD): " )

date_added_products = [product for product in products if

product[ 'date_added' ].startswith(date_added)]

if date_added_products:

print( f "San phẩm được thểm vào ngày ' {date_added} ' là: {date_added_products} "

else :

print( f "Không tìm thẩJ y san phẩm được thểm vào ngày ' {date_added} '." )

+ Sử dụng hàm input để nhập kiểu tìm kiếm theo key - value

+ Sau đó, sử dụng vòng lặp for để lặp qua từng cặp key - value trong products

Trang 22

+ Trong mỗi vòng lặp, sử dụng câu lệnh điều kiện IF để kiểm tra xem từ khóa tìmkiếm có phải thuộc products không.

+ Nếu có sản phẩm phù hợp với từ khóa tìm kiếm, in ra toàn bộ thông tin sản phẩmtương ứng

+ Nếu không tìm thấy sản phẩm nào phù hợp với từ khóa tìm kiếm, hàm sẽ in ra thôngbáo "Không tồn tại {key_value} sản phẩm"

+ Quy trình kết thúc và trả về kết quả tìm kiếm sản phẩm tương ứng

- Quy trình thực hiện in danh sách sản phẩm:

# Hàm để hiển thị danh sách san phẩm

def display_product_list():

if not products:

print( "Không có san phẩm nào trong kho." )

else :

print( "Danh sách san phẩm trong kho:" )

for product in products:

print(product)

+ Nếu có sản phẩm trong products, in ra thông báo “Sản phẩm trong kho:” và toàn bộsản phẩm trong products

+ Nếu không có sản phẩm, in ra thông báo”Không có danh sách sản phẩm trong kho”

- Quy trình thực hiện hàm xuất ra excel:

# Hàm để xuẩJ t danh sách san phẩm ra file Excel

file_name = f "product_list_ {datetime.now().strftime( '%Y%m%d%H%M%S' )} xlsx"

df.to_excel(file_name, index= False )

print( f "Đã xuẩJ t danh sách san phẩm ra file Excel: {file_name} "

+Kiểm tra xem products có sản phẩm hay không

Trang 23

+Nếu không có sản phẩm, in ra “Không có sản phẩm nào để xuất ra Excel”.

+Nếu có sản phẩm, xuất file sản phẩm dựa trên dataframe của products, file excelđược xuất ra có định dạng product_list_{thời điểm xuất file sản phẩm}.xlsx

- Quy trình thực hiện của hàm main ():

username, password = login()

if check_login(username, password, registered_users):

print( "4 Tìm kiểJ m san phẩm" )

print( "5 Hiển thị danh sách san phẩm" )

print( "6 XuẩJ t danh sách ra Excel" )

print( "7 Đăng xuẩJ t" )

print( " -" ) choice = input( "Nhập lựa chọn cua bạn: " )

if choice == '1' :

add_product()

elif choice == '2' :

print( "\n1 Xoá san phẩm theo ID" )

print( "2 Xoá san phẩm theo tển" )

delete_choice = input( "Chọn cách xoá san phẩm: " )

Trang 24

print( "\n1 Tìm theo ID" )

print( "2 Tìm theo tển san phẩm" )

print( "3 Tìm kiểJ m các san phẩm trong cùng 1 danh mục" ) print( "4 Tìm kiểJ m các san phẩm được thểm vào cùng một ngày" ) search_choice = input( "Chọn cách tìm kiểJ m: " )

Trang 25

+ Kết quả in ra sẽ là một dòng chứa các tiêu đề của các cột trong bảng dữ liệu

+ Bắt đầu vòng lặp for để duyệt cặp product trong products

+ In ra hệ thống tìm kiếm sản phẩm gồm 7 quy trình

+ Người dùng sẽ phải nhập choice

+ Nếu chocie bằng một thì thực hiện quy trình thêm sản phẩm

+ Nếu chocie bằng hai thì thực hiện quy trình xóa sản phẩm

+ Nếu chocie bằng ba thì thực hiện quy trình cập nhật sản phẩm

+ Nếu chocie bằng bốn thì thực hiện quy trình tìm kiếm sản phẩm

+ Nếu chocie bằng năm thì thực hiện quá trình in danh sách sản phẩm

+ Nếu choice bằng sáu thì thực hiện quá trình xuất danh sách ra Excel

+ Nếu choice bằng 7 thì thoát khỏi chương trình

+ Nếu chocie khác với các điều kiện đã đề cập ở trên thì sẽ thông báo “Nhập lựa chọncủa bạn (1-7): ”

Ngày đăng: 26/03/2024, 15:41

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w