Chương trình quản lý cửa hàng kem Mixue - Báo cáo môn Lập trình PYTHON V ứng dụng | Trường Đại học Đồng Tháp

Chương trình quản lý cửa hàng kem Mixue - Báo cáo môn Lập trình PYTHON V ứng dụng | Trường Đại học Đồng Tháp. Tài liệu được biên soạn dưới dạng file PDF gồm 24 trang, giúp bạn tham khảo, ôn tập và đạt kết quả cao trong kì thi sắp tới. Mời bạn đọc đón xem!

TRƯỜNG ĐẠI HỌC ĐỒNG THÁP
KHOA SƯ PHẠM TOÁN – TIN
BÁO CÁO TỔNG KẾT NGHIÊN CỨU
HỌC PHẦN LÂP TRNH PYTHON V ỨNG D"NG
CHƯƠNG TRÌNH QUẢN LÝ CỬA
HÀNG KEM MIXUE
MSSV: 0021413722
Họ Tên: NGUYỄN PHI LONG
LỚP: ĐHSTIN21A
GVHD: Ths. NGUYỄN QUỐC ANH
Đồng Tháp, ngày 20 tháng 11 năm 2023
TRƯỜNG ĐẠI HỌC ĐỒNG THÁP
KHOA SƯ PHẠM TOÁN – TIN
BÁO CÁO TỔNG KẾT NGHIÊN CỨU
HỌC PHẦN LÂP TRNH PYTHON V ỨNG D"NG
CHƯƠNG TRÌNH QUẢN LÝ CỬA
HÀNG KEM MIXUE
MSSV: 0021413722
Họ Tên: NGUYỄN PHI LONG
LỚP: ĐHSTIN21A
GVHD: Ths. NGUYỄN QUỐC ANH
Đồng Tháp, ngày 20 tháng 11 năm 2023
MỤC LỤ
C
TRƯỜNG ĐẠI HỌC ĐỒNG THÁP........................................................................................1
TRƯỜNG ĐẠI HỌC ĐỒNG THÁP........................................................................................1
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT......................................................................................4
1.1 Giới thiệu ngôn ngữ lập trình PyThon....................................................................4
1.2 Một số kiến thức cơ bản về ngôn ngữ lập trình Python.............................................4
1.2.1 Các kiểu dữ liệu cơ sở..............................................................................................4
1.2.2 Các cấu trúc điều khiển............................................................................................4
1.2.3 Cấu trúc vòng lặp....................................................................................................6
1.2.4 Hàm:........................................................................................................................6
1.2.5 Lớp...........................................................................................................................7
1.3 Công cụ để thiết kế và xây dựng giao diện Qt Designer : ..........................................8
1.4 Cơ sở dữ liệu SQL server:............................................................................................9
1.5 Công cụ lập trình Pycharm Community Edition 2022.1.4:.....................................10
CHƯƠNG 2:XÂY DỰNG CHƯƠNG TRÌNH...................................................................11
2.1 Đặt tả hệ thống:...........................................................................................................11
2.2. Một số sơ đồ chức năng của chương trình quản lý..................................................11
2.2.1 Sơ đồ chức năng đăng nhập:...................................................................................11
2.2.2. Sơ đồ chức năng tổng thể của hệ thống.................................................................12
CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH......................................................................12
3.1 Tổng thể chương trình cài đặt:..................................................................................12
3.2 Chương trình:.............................................................................................................12
3.2.1 Triển khai hệ thống:................................................................................................12
Hình 1. 12: Sơ đồ hệ thống....................................................................................................13
3.2.1.3 Form đăng nhập:.................................................................................................13
3.2.1.5 Form menuị:........................................................................................................14
3.2.1.6 Form quản lí sản phẩm........................................................................................15
3.2.1.7 Form quản lí loại sản phẩm.................................................................................17
3.2.2 Các trường hợp bẫy lỗi...........................................................................................18
3.2.2.1 Lỗi để trống :.......................................................................................................19
3.2.2.2 Lỗi quá số lần nhập sai đăng nhập......................................................................19
3.2.2.3 Bẫy lỗi ở trang sản phẩm:...................................................................................19
3.2.2.4 Bẫy lỗi trong trang loại sản phẩm.......................................................................20
...............................................................................................................................................20
CHƯƠNG 4: KẾT LUẬN...................................................................................................21
4.1.Kết quả đạt được.........................................................................................................21
4.2.Hạn chế........................................................................................................................21
4.3.Hướng phát triển........................................................................................................21
TÀI LIỆU THAM KHẢO................................................................................................21
MỤC LỤC ẢNH
hình 1............................................................................................................................................................5
hình 2............................................................................................................................................................5
hình 3............................................................................................................................................................5
hình 4............................................................................................................................................................6
hình 5............................................................................................................................................................6
hình 6............................................................................................................................................................7
hình 7............................................................................................................................................................7
hình 8............................................................................................................................................................7
hình 9............................................................................................................................................................8
hình 10........................................................................................................................................................11
hình 11........................................................................................................................................................12
hình 12........................................................................................................................................................13
hình 13........................................................................................................................................................14
hình 14........................................................................................................................................................14
hình 15........................................................................................................................................................15
hình 16........................................................................................................................................................15
hình 17........................................................................................................................................................16
hình 18........................................................................................................................................................17
hình 19........................................................................................................................................................17
hình 20........................................................................................................................................................18
hình 21........................................................................................................................................................18
hình 22........................................................................................................................................................18
hình 23........................................................................................................................................................19
hình 24........................................................................................................................................................19
hình 25........................................................................................................................................................19
hình 26........................................................................................................................................................20
hình 27........................................................................................................................................................20
hình 28........................................................................................................................................................20
hình 29........................................................................................................................................................20
hình 32........................................................................................................................................................20
hình 33........................................................................................................................................................20
hình 30........................................................................................................................................................20
hình 31........................................................................................................................................................20
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1Giới thiệu ngôn ngữ lập trình PyThon
Python là một ngôn ngữ lập trình hiện đại, linh hoạt và phổ biến. Nó có thể được
sử dụng để tạo ra các ứng dụng web, di động, máy tính, khoa học nghệ thuật.
Python pháp đơn giảndễ đọc, giúp người lập trình tiết kiệm thời gian
công sức. Python cũng một cộng đồng lớn năng động, cung cấp nhiều tài
nguyên học tập và hỗ trợ. Python là một ngôn ngữ nguồn mở, do đó bạn thể
tùy biến phát triển theo nhu cầu của bạn. Python được phát triển bởi Guido
van Rossum vào năm 1989 được lấy cảm hứng từ chương trình hài Monty
Python. Python nhiều phiên bản khác nhau, nhưng phiên bản chính thức
Python 3, được phát hành vào năm 2008. Python có nhiều thư viện và gói mở rộng,
cho phép bạn thêm các chức năng và tính năng mới cho ngôn ngữ.
1.2 Một số kiến thức cơ bản về ngôn ngữ lập trình Python.
1.2.1 Các kiểu dữ liệu cơ sở.
str: Kiểu dữ liệu văn bản chuỗi, chứa một hoặc nhiều tự được bao quanh bởi
dấu nháy đơn hoặc kép. Ví dụ: "Hello", 'Python'.
int: Kiểu dữ liệu số nguyên, chứa một số nguyên dương hoặc âm, không số
thập phân, có độ dài không giới hạn. Ví dụ: 10, -5, 0.
float: Kiểu dữ liệu số thực, chứa một số thực dương hoặc âm, có số thập phân, có
độ chính xác tùy thuộc vào hệ thống. Ví dụ: 3.14, -0.5, 1.0.
complex: Kiểu dữ liệu số phức, chứa một số phức có phần thực và phần ảo, được
biểu diễn bởi ký hiệu j. Ví dụ: 2+3j, -1-1j, 0j.
Ngoài ra, python còn có các kiểu dữ liệu khác như , , , , , list tuple range dict set
frozenset bool bytes bytearray memoryview, , , , .
1.2.2 Các cấu trúc điều khiển
if: Cấu trúc if cho phép kiểm tra một điều kiện và thực hiện một khối các câu
lệnh nếu điều kiện đúng. Có thể sử dụng để thực hiện một khối các câu lệnh else
khác nếu điều kiện sai. Ngoài ra, bạn cũng có thể sử dụng để kiểm tra nhiều elif
điều kiện khác nhau và thực hiện một khối các câu lệnh tương ứng với mỗi điều
kiện. Ví dụ:
hình 1
Hình 1. 1:Ví dụ sử dụng if…elif
for: Cấu trúc for cho phép lặp qua một chuỗi các đối tượng, như một danh sách,
một tuple, một chuỗi, một khoảng, hoặc một trình sinh. Có thể sử dụng để break
thoát khỏi vòng lặp khi gặp một điều kiện nào đó, hoặc sử dụng để bỏ continue
qua một lần lặp và tiếp tục vòng lặp tiếp theo. Ngoài ra, bạn cũng có thể sử
dụng để thực hiện một khối các câu lệnh khi vòng lặp kết thúc mà không gặpelse
lệnh break. Ví dụ:
hình 2
Hình 1. 2: Ví dụ sử dụng for…else
while: Cấu trúc while cho phép lặp lại một khối các câu lệnh miễn là một điều
kiện là đúng. Có thể sử dụng các lệnh break, continue và else như trong vòng lặp
for. Ví dụ:
hình 3
Hình 1. 3: Ví dụ sử dụng while
1.2.3 Cấu trúc vòng lặp.
Cấu trúc vòng lặp trong Python là một cách để thực hiện một khối lệnh nhiều lần
cho đến khi một điều kiện nào đó được thoả mãn. Python hỗ trợ hai loại vòng lặp chính
.vòng lặp for vòng lặp while
Vòng lặp for dùng để lặp qua một dãy giá trị có thể đếm được, như một xâu, một
mảng, hoặc một hàm range. Cú pháp của vòng lặp for là:
hình 4
Hình 1. 4: Cú pháp vòng lặp for
Vòng lặp while dùng để lặp lại một khối lệnh khi điều kiện còn đúng. Cú pháp
của vòng lặp while là:
hình 5
Hình 1. 5: Cú pháp vòng lặp while
1.2.4 Hàm:
Hàm trong Python một khối lệnh được tổ chức thể tái sử dụng, để
thực hiện một hành động nào đó đó. Chúng ta thể tạo riêng cho mình một
hàm với cách định nghĩa kiểu giá trị cho riêng mình. Các hàm này được gọi
user-defined function.Để định nghĩa một hàm trong Python, ta theo các qui
tắc sau:
Từ khóa def được sử dụng để bắt đầu phần định nghĩa hàm. Def xác định phần
bắt đầu của khối hàm.
Def được theo sau bởi ten_ham được theo sau bởi các dấu ngoặc đơn ().
Các tham số được truyền vào bên trong các dấu ngoặc đơn. Ở cuối là dấu hai
chấm.
Trước khi viết một code, một độ thụt dòng được cung cấp trước mỗi lệnh. Độ
thụt dòng này nên giống nhau cho tất cả các lệnh bên trong hàm đó.
Lệnh đầu tiên của hàm là tùy ý, và nó là Documentation String của một hàm đó.
Sau đó là lệnh để được thực thi.
Cú pháp của hàm trong Python như sau:
hình 6
Hình 1. 6: Cú pháp hàm
Để thực thi một hàm, bạn cần gọi hàm đó. Phần định nghĩa hàm cung cấp
thông tin về tên hàm các tham số và định nghĩa những hoạt động nào được thực
hiện bởi hàm đó. Để thực thi phần định nghĩa của hàm, bạn cần gọi hàm đó. Cú
pháp như sau:
ten_ham ( cac_tham_so )
1.2.5 Lớp.
Lớp trong Python là một cách để định nghĩa một kiểu đối tượng mới, có thể chứa
các thuộc tính (dữ liệu) và phương thức (chức năng) liên quan đến đối tượng đó. Lớp
cung cấp một bản thiết kế hoặc một nguyên mẫu cho việc tạo ra các thực thể (instance)
của đối tượng đó. Lớp cho phép ta gói gọn các dữ liệu và chức năng lại với nhau, tạo ra
một cấu trúc rõ ràng và dễ quản lý.
Để tạo một lớp trong Python, ta cần sử dụng từ khóa theo sau là tên lớp. class
Tên lớp thường được viết theo quy tắc CamelCase, tức là viết hoa chữ cái đầu của mỗi
từ. Sau đó, bạn cần khai báo các thuộc tính và phương thức của lớp trong một khối lệnh
thụt lề. Cú pháp của lớp trong Python như sau:
hình 7
Hình 1. 7: Cú pháp lớp
Ví dụ: Tạo một lớp tên là có hai thuộc tính là ,HinhChuNhat chieu_dai chieu_rong
và hai phương thức là tinh_dien_tich tinh_chu_vi.
hình 8
Hình 1. 8: Ví dụ về Lớp
Để tạo một đối tượng từ một lớp, ta cần gọi tên lớp và truyền vào các tham số cần
thiết cho hàm (nếu có). Hàm là một hàm đặc biệt được gọi là __init__ __init__
constructor, dùng để khởi tạo các thuộc tính của đối tượng khi nó được tạo ra. Cú pháp
để tạo một đối tượng như sau:
ten_doi_tuong = TenLop(cac_tham_so)
Ví dụ: Tạo một đối tượng tên là từ lớp với chiều dài là 5 và hcn1 HinhChuNhat
chiều rộng là 3.
hcn1 = HinhChuNhat(5, 3)
Để truy cập hoặc thay đổi các thuộc tính của đối tượng, ta cần sử dụng dấu chấm
(.) theo sau là tên thuộc tính. Ví dụ: trả về giá trị của thuộc tính hcn1.chieu_dai
chieu_dai hcn1. của đối tượng
Để gọi các phương thức của đối tượng, ta cũng cần sử dụng dấu chấm (.) theo sau
là tên phương thức và các tham số (nếu có). Ví dụ: trả về kết hcn1.tinh_dien_tich()
quả của phương thức của đối tượng tinh_dien_tich hcn1.
1.3 Công cụ Qt Designer để thiết kế và xây dựng giao diện :
hình 9
Hình 1. 9: hình ảnh Qt Designer
Qt Designer là một công cụ để thiết kế và xây dựng giao diện người dùng đồ họa
(GUI) với các widget từ bộ khung GUI Qt. Ta có thể sắp xếp và tùy chỉnh các cửa sổ
hoặc hộp thoại của ta theo cách nhìn thấy là gì ta nhận được (WYSIWYG), và kiểm tra
chúng với các kiểu và độ phân giải khác nhau. Các widget và form được tạo bằng Qt
Designer tích hợp một cách liền mạch với code lập trình, sử dụng cơ chế tín hiệu và khe
của Qt, để ta có thể dễ dàng gán hành vi cho các thành phần đồ họa. Tất cả các thuộc
tính được thiết lập trong Qt Designer có thể được thay đổi động trong code. Hơn nữa,
các tính năng như widget promotion và custom plugins cho phép ta sử dụng các thành
phần của riêng ta với Qt Designer.
Một số ưu điểm của Qt Designer là:
Nó là một công cụ miễn phí và mã nguồn mở, có thể sử dụng cho các dự án
thương mại hoặc nguồn mở.
Nó hỗ trợ nhiều nền tảng, bao gồm Windows, Linux, macOS, Android, iOS và
các hệ thống nhúng.
Nó cung cấp một giao diện trực quan và dễ sử dụng, cho phép bạn kéo và thả các
widget và chỉnh sửa các thuộc tính của chúng.
Nó cho phép bạn xem trước giao diện của bạn trên nhiều thiết bị và độ phân giải
khác nhau, và thay đổi kiểu của chúng một cách dễ dàng.
Nó tạo ra các file XML (.ui) để lưu trữ cấu trúc giao diện, có thể được chuyển đổi
sang code C++ hoặc Python bằng các công cụ khác.
Nó hỗ trợ việc tạo các widget tùy chỉnh và sử dụng các plugin để mở rộng các
tính năng của nó.
Một số nhược điểm của Qt Designer là:
Nó không hỗ trợ tất cả các widget và tính năng của Qt, một số widget phải được
thêm vào bằng code hoặc plugin.
Nó không cung cấp một trình biên dịch hoặc một trình gỡ lỗi tích hợp, bạn phải
sử dụng các công cụ khác như Qt Creator để biên dịch và chạy ứng dụng của bạn.
Nó không cho phép bạn viết code logic hoặc xử lý sự kiện trong giao diện, bạn
phải viết code trong các file khác và kết nối với các widget bằng cơ chế tín hiệu
và khe của Qt.
Nó có thể gây ra một số vấn đề về tương thích khi sử dụng các phiên bản khác
nhau của Qt Designer và Qt.
1.4 Cơ sở dữ liệu SQL server:
SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) của Microsoft, được sử
dụng để lưu trữ, xử lý và phân tích dữ liệu lớn. SQL Server có nhiều phiên bản khác
nhau, phù hợp với các nhu cầu và mục đích khác nhau của người dùng. SQL Server
cũng hỗ trợ các ngôn ngữ lập trình khác nhau, như C#, Java, Python, R và Transact-
SQL.
Một số ưu điểm của SQL Server là:
Cài nhiều phiên bản MS SQL khác nhau trên cùng một máy .
1
Duy trì riêng biệt các môi trường sản xuất, phát triển, thử nghiệm .
1
Giảm thiểu các vấn đề tạm thời trên cơ sở dữ liệu .
1
Tách biệt các đặc quyền bảo mật .
1
Duy trì máy chủ dự phòng.
Hỗ trợ các tính năng ACID (Atomicity, Consistency, Isolation, Durability) để
đảm bảo tính toàn vẹn và nhất quán của dữ liệu.
Hỗ trợ các tính năng nâng cao, như Big Data Clusters, PolyBase, xử lý truy vấn
thông minh, giám sát thông minh, khôi phục cơ sở dữ liệu nhanh hơn, tối ưu hóa
hiệu suất.
Một số nhược điểm của SQL Server là:
Khá phức tạp, đòi hỏi kỹ năng cao để quản lý và vận hành .
3
Chiếm nhiều dung lượng bộ nhớ.
Chi phí vận hành của một số phiên bản SQL khiến một số lập trình viên gặp khó
khăn khi tiếp cận.
Có phần mở rộng độc quyền riêng của nhà cung cấp bên cạnh các tiêu chuẩn
SQL, có thể gây khó khăn khi thực thi.
1.5 Công cụ lập trình Pycharm Community Edition 2022.1.4:
PyCharm là một môi trường phát triển tích hợp (IDE) dành cho ngôn ngữ lập
trình Python. Nó được phát triển bởi JetBrains và cung cấp một loạt các tính năng hữu
ích để giúp nhà phát triển Python xây dựng, kiểm thử, và duy trì mã nguồn Python của
họ. Dưới đây là một số điểm mạnh và điểm yếu của PyCharm:
Ưu điểm:
Tích hợp đầy đủ: PyCharm có tích hợp đầy đủ với nhiều công cụ và khung làm
việc Python phổ biến như Django, Flask, và virtualenv. Điều này giúp giảm bớt
công sức cấu hình và tối ưu hóa quy trình phát triển.
Kiểm thử Tự động và Gỡ lỗi: PyCharm cung cấp công cụ kiểm thử tự động và gỡ
lỗi mạnh mẽ, giúp nhà phát triển dễ dàng xác định và sửa lỗi trong mã nguồn.
Hỗ trợ Đa Nền Tảng: PyCharm hỗ trợ cả Windows, macOS và Linux, cung cấp
sự linh hoạt cho những nhà phát triển làm việc trên nhiều nền tảng.
Tính Năng Động và Đa Dạng: PyCharm có nhiều tính năng hữu ích như đề xuất
mã, refactoring, và hỗ trợ Git, giúp tăng cường hiệu suất và chất lượng mã
nguồn.
Cộng đồng Lớn và Hỗ trợ Tốt: PyCharm có một cộng đồng lớn và hoạt động tích
cực, cùng với tài liệu chi tiết và hỗ trợ từ JetBrains, giúp nhà phát triển giải quyết
vấn đề một cách nhanh chóng.
Nhược điểm:
Tính Nặng và Tài nguyên Tốn kém: PyCharm có thể tốn nhiều tài nguyên hệ
thống, đặc biệt là khi xử lý các dự án lớn. Điều này có thể ảnh hưởng đến hiệu
suất máy tính của bạn, đặc biệt là trên các máy tính có cấu hình thấp.
Cần Thời Gian để Học: Với nhiều tính năng và tùy chọn, PyCharm có một độ
dốc học khá lớn, đặc biệt là đối với những người mới bắt đầu.
Giá Cả: Mặc dù có phiên bản Community miễn phí, nhưng các phiên bản
Professional của PyCharm thì có giá. Điều này có thể là một yếu tố hạn chế đối
với những người mới bắt đầu hoặc cá nhân không có ngân sách lớn.
Tổng cộng, PyCharm là một IDE mạnh mẽ cho Python, đặc biệt là cho các dự án
lớn và phức tạp, mặc dù việc sử dụng nó có thể yêu cầu một thời gian để làm quen
và tận dụng đầy đủ các tính năng.
CHƯƠNG 2:XÂY DỰNG CHƯƠNG TRÌNH
2.1 Đặt tả hệ thống:
Hệ thống chương trình quản cửa hàng kem Mixue một phần mềm thiết kế
nên để hổ trợ cho nhân viên cửa hàng thực hiện các công việc quản cửa hàng.
Chương trình bao gồm 2 form: 1 form đăng nhập 1 form giao diện gồm 3 trang lần
lượt menu, quản sản phẩm quản loại sản phẩm với các chức năng thêm sửa
xóa. Các form sử dụng dữ liệusẵn trên sql được giao diện chương trình được tạo
nên từ Qt Designer.
2.2. Một số sơ đồ chức năng của chương trình quản lý
2.2.1 Sơ đồ chức năng đăng nhập:
Hình 1. 10: Sơ đồ chức năng đăng nhập
đồ hình 10 miêu tả cách đăng nhập vào hệ thống. Đầu tiên chúng ta
muốn đăng nhập vào hệ thống phải qua giai đoạn đăng nhập, muốn đăng nhập
hình 10
vào hệ thống chúng ta phải tài khoản mật khẩu mới đăng nhập được, tài
khoản và mật khẩu được lưu trong csdl SQL server.
2.2.2. Sơ đồ chức năng tổng thể của hệ thống.
hình 11
Hình 1. 11: Sơ đồ chức năng tổng thể của hệ thống.
Sơ đồ hình 11 miêu tả các chức năng của chương trình gồm có: thêm, sửa,
xóa sản phẩm cũng như loại sản phẩm của Mixue.
CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH
3.1 Tổng thể chương trình cài đặt:
Chương trình được viết bằng ngôn ngữ python cùng với công cụ để thiết
kế xây dựng giao diện QT desinger giúp việc lập trình trở nên dể dàng với
việc cung cấp đầy đủ các API của ứng dụng window như PushButton, label,
combobox, line edit… Kết hợp lại đã tạo ra một ứng dụng “quản tiệm kem
Mixue”. Sau khi hoàn thiện ứng dụng có những chức năng sau:
Chức năng đăng nhập: Khi muốn vào ứng dụng người quản cần phải
đăng nhập bằng tài khoản đã được thiết lập trước.Sau đó dùng mật khẩu tài
khoản đã có đăng nhập vào form chính
Chức năng thêm thông tin vào bảng : dùng để thêm thông tin về sản
phẩm mới hoặc loại sản phẩm mới vào cơ sở dữ liệu.
Chức năng xóa thông tin: dùng để sửa thông tin về sản phẩm hoặc loại
sản phẩm đã tồn tại trong cơ sở dữ liệu.
Chức năng sửa thông tin: dùng để xóa thông tin về sản phẩm hoặc loại
sản phẩm có trong cơ sở dữ liệu.
3.2 Chương trình:
3.2.1 Triển khai hệ thống:
3.2.1.1 Các thư viện được sử dụng:
Tên class Các thư viện được sử dụng
Cls_sanpham() import pyodbc as obdc
Cls_loai() import pyodbc as obdc
MainWindow import sys
from PyQt6.QtWidgets import QApplication,
QMainWindow,QTableWidgetItem,QComboBox,QMessage
Box,QStackedWidget
from PyQt6.QtCore import QTimer
from formlogin import Ui_formdangnhap
from lienketlogin import cls_dangnhap
from formgiaodien import Ui_formgiaodien
from lienketsp_SQL import cls_sanpham
from lienketloai_sql import cls_loai
3.2.1.2 Sơ đồ hệ thống:
Hình 1. 12: Sơ đồ hệ thống.
Khi chạy chương trình cửa sổ đăng nhập sẽ hiện đầu tiên, khi đăng nhập
thành công cửa sổ đăng nhập sẽ đóng lại, cửa sổ giao diện sẽ bật lên đây là giao
diện chính của phần mềm, form chính thể chuyển qua giũa các chức năng
quản lí sản phẩm và quản lí loại sản phẩm từ giao diện menu
3.2.1.3 Form đăng nhập:
hình 12
hình 13
Hình 1. 13: Form đăng nhập.
Để thể vào được chương trình chính người sử dụng cần tài khoản
mật khẩu để đăng nhập vào. Nhập vào tài khoản và mật khẩu ấn nút “Đăng nhập”
để đăng nhập, nếu tài khoản mật khẩu hợp lệ thì đăng
nhập thành công và ngược lại.
Thông báo lỗi sẽ hiển thị lỗi nếu trong quá trình thao tác không hợp lệ ví dụ
khi nhấn đăng nhập khi tài khoản hoặc mật khẩu chưa được nhập, nhập sai i
khoản hoặc mật khẩu và nhập quá số lần đăng nhập quy định (3 lần).
3.2.1.5 Form menuị:
Hình 1. 14: Form Menu
Form giúp hiển thị hình ảnh menu của tiệm và nút setting giúp chuyển tiếp đến
trang quản lí sản phẩm và loại sản phẩm.
hình 14
3.2.1.6 Form quản lí sản phẩm
Hình 1.15: Form quản lí sản phẩm
Vùng nhập dữ liệu:
Hình 1.16: Vùng nhập dữ liệu sản phẩm
hình 15
hình 16
Vùng hiển thị bảng thông tin:
Hình 1.17: Vùng hiển thị bảng sản phẩm
Các nút chức năng:
Nút thêm sản phẩm mới vào bảng sản phẩm:
Nút cập nhật giúp cập nhật lại thông tin sản phẩm:
Nút xóa để xóa sản phẩm có trong bảng sản phẩm:
Nút home giúp quay về trang menu:
Vùng chuyển trang:
Cho phép chuyển đổi giữa trang quản lí sản phẩm và trang quản lí loại sản phẩm khi ta
nhấn vào nút tương ứng.
hình 17
3.2.1.7 Form quản lí loại sản phẩm
Hình 1.19: Form quản lí loại sản phẩm
Vùng nhập dữ liệu:
Hình 1.20: Vùng nhập thông tin loại sản phẩm
Vùng hiển thị bảng loại:
hình 18
hình 19
Hình 1.21: Vùng hiển thị bảng thông tin loại sản phẩm
Các nút chức năng:
Hình 1.22: Các nút chức năng thêm, sửa, xóa loại sản phẩm
Nút thêm giúp thêm loại sản phẩm mới vào bảng loại.
Nút cập nhật giúp cập nhật lại thông tin của loại sản phẩm đã có trong bảng loại.
Nút xóa giúp xóa loại sản phẩm có trong bảng loại.
Nút home giúp quay về trang menu:
Vùng chuyển trang:
Cho phép chuyển đổi giữa trang quản lí sản phẩm và trang quản lí loại sản phẩm khi ta
nhấn vào nút tương ứng.
Hình 1.23: Vùng chuyển trang
3.2.2 Các trường hợp bẫy lỗi.
3.2.2.1 Lỗi để trống :
hình 20
hình 21
hình 22
hình 23 hình 24
| 1/24

Preview text:

TRƯỜNG ĐẠI HỌC ĐỒNG THÁP
KHOA SƯ PHẠM TOÁN – TIN
BÁO CÁO TỔNG KẾT NGHIÊN CỨU
HỌC PHẦN LÂP TRNH PYTHON V ỨNG D"NG
CHƯƠNG TRÌNH QUẢN LÝ CỬA HÀNG KEM MIXUE MSSV: 0021413722 Họ Tên: NGUYỄN PHI LONG LỚP: ĐHSTIN21A
GVHD: Ths. NGUYỄN QUỐC ANH
Đồng Tháp, ngày 20 tháng 11 năm 2023
TRƯỜNG ĐẠI HỌC ĐỒNG THÁP
KHOA SƯ PHẠM TOÁN – TIN
BÁO CÁO TỔNG KẾT NGHIÊN CỨU
HỌC PHẦN LÂP TRNH PYTHON V ỨNG D"NG
CHƯƠNG TRÌNH QUẢN LÝ CỬA HÀNG KEM MIXUE MSSV: 0021413722 Họ Tên: NGUYỄN PHI LONG LỚP: ĐHSTIN21A
GVHD: Ths. NGUYỄN QUỐC ANH
Đồng Tháp, ngày 20 tháng 11 năm 2023 MỤC LỤ C
TRƯỜNG ĐẠI HỌC ĐỒNG THÁP........................................................................................1
TRƯỜNG ĐẠI HỌC ĐỒNG THÁP........................................................................................1
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT......................................................................................4 1.1
Giới thiệu ngôn ngữ lập trình PyThon....................................................................4
1.2 Một số kiến thức cơ bản về ngôn ngữ lập trình Python.............................................4
1.2.1 Các kiểu dữ liệu cơ sở..............................................................................................4
1.2.2 Các cấu trúc điều khiển............................................................................................4
1.2.3 Cấu trúc vòng lặp....................................................................................................6
1.2.4 Hàm:........................................................................................................................ 6
1.2.5 Lớp...........................................................................................................................7
1.3 Công cụ để thiết kế và xây dựng giao diện Qt Designer :..........................................8
1.4 Cơ sở dữ liệu SQL server:............................................................................................9
1.5 Công cụ lập trình Pycharm Community Edition 2022.1.4:.....................................10
CHƯƠNG 2:XÂY DỰNG CHƯƠNG TRÌNH...................................................................11
2.1 Đặt tả hệ thống:...........................................................................................................11
2.2. Một số sơ đồ chức năng của chương trình quản lý..................................................11
2.2.1 Sơ đồ chức năng đăng nhập:...................................................................................11
2.2.2. Sơ đồ chức năng tổng thể của hệ thống.................................................................12
CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH......................................................................12
3.1 Tổng thể chương trình cài đặt:..................................................................................12
3.2 Chương trình:.............................................................................................................12
3.2.1 Triển khai hệ thống:................................................................................................12
Hình 1. 12: Sơ đồ hệ thống....................................................................................................13
3.2.1.3 Form đăng nhập:.................................................................................................13
3.2.1.5 Form menuị:........................................................................................................14
3.2.1.6 Form quản lí sản phẩm........................................................................................15
3.2.1.7 Form quản lí loại sản phẩm.................................................................................17
3.2.2 Các trường hợp bẫy lỗi...........................................................................................18
3.2.2.1 Lỗi để trống :.......................................................................................................19
3.2.2.2 Lỗi quá số lần nhập sai đăng nhập......................................................................19
3.2.2.3 Bẫy lỗi ở trang sản phẩm:...................................................................................19
3.2.2.4 Bẫy lỗi trong trang loại sản phẩm.......................................................................20
............................................................................................................................................... 20
CHƯƠNG 4: KẾT LUẬN...................................................................................................21
4.1.Kết quả đạt được.........................................................................................................21
4.2.Hạn chế........................................................................................................................21
4.3.Hướng phát triển........................................................................................................21
TÀI LIỆU THAM KHẢO................................................................................................21 MỤC LỤC ẢNH
hình 1............................................................................................................................................................5
hình 2............................................................................................................................................................5
hình 3............................................................................................................................................................5
hình 4............................................................................................................................................................6
hình 5............................................................................................................................................................6
hình 6............................................................................................................................................................7
hình 7............................................................................................................................................................7
hình 8............................................................................................................................................................7
hình 9............................................................................................................................................................8
hình 10........................................................................................................................................................ 11
hình 11........................................................................................................................................................ 12
hình 12........................................................................................................................................................ 13
hình 13........................................................................................................................................................ 14
hình 14........................................................................................................................................................ 14
hình 15........................................................................................................................................................ 15
hình 16........................................................................................................................................................ 15
hình 17........................................................................................................................................................ 16
hình 18........................................................................................................................................................ 17
hình 19........................................................................................................................................................ 17
hình 20........................................................................................................................................................ 18
hình 21........................................................................................................................................................ 18
hình 22........................................................................................................................................................ 18
hình 23........................................................................................................................................................ 19
hình 24........................................................................................................................................................ 19
hình 25........................................................................................................................................................ 19
hình 26........................................................................................................................................................ 20
hình 27........................................................................................................................................................ 20
hình 28........................................................................................................................................................ 20
hình 29........................................................................................................................................................ 20
hình 32........................................................................................................................................................ 20
hình 33........................................................................................................................................................ 20
hình 30........................................................................................................................................................ 20
hình 31........................................................................................................................................................ 20
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1Giới thiệu ngôn ngữ lập trình PyThon
Python là một ngôn ngữ lập trình hiện đại, linh hoạt và phổ biến. Nó có thể được
sử dụng để tạo ra các ứng dụng web, di động, máy tính, khoa học và nghệ thuật.
Python có cú pháp đơn giản và dễ đọc, giúp người lập trình tiết kiệm thời gian và
công sức. Python cũng có một cộng đồng lớn và năng động, cung cấp nhiều tài
nguyên học tập và hỗ trợ. Python là một ngôn ngữ có nguồn mở, do đó bạn có thể
tùy biến và phát triển nó theo nhu cầu của bạn. Python được phát triển bởi Guido
van Rossum vào năm 1989 và được lấy cảm hứng từ chương trình hài Monty
Python. Python có nhiều phiên bản khác nhau, nhưng phiên bản chính thức là
Python 3, được phát hành vào năm 2008. Python có nhiều thư viện và gói mở rộng,
cho phép bạn thêm các chức năng và tính năng mới cho ngôn ngữ.
1.2 Một số kiến thức cơ bản về ngôn ngữ lập trình Python.
1.2.1 Các kiểu dữ liệu cơ sở.
str: Kiểu dữ liệu văn bản chuỗi, chứa một hoặc nhiều ký tự được bao quanh bởi
dấu nháy đơn hoặc kép. Ví dụ: "Hello", 'Python'.
int: Kiểu dữ liệu số nguyên, chứa một số nguyên dương hoặc âm, không có số
thập phân, có độ dài không giới hạn. Ví dụ: 10, -5, 0.
float: Kiểu dữ liệu số thực, chứa một số thực dương hoặc âm, có số thập phân, có
độ chính xác tùy thuộc vào hệ thống. Ví dụ: 3.14, -0.5, 1.0.
complex: Kiểu dữ liệu số phức, chứa một số phức có phần thực và phần ảo, được
biểu diễn bởi ký hiệu j. Ví dụ: 2+3j, -1-1j, 0j.
Ngoài ra, python còn có các kiểu dữ liệu khác như list, tuple, range, dict, set, frozenset bool , bytes , , bytearray memoryview , .
1.2.2 Các cấu trúc điều khiển
if: Cấu trúc if cho phép kiểm tra một điều kiện và thực hiện một khối các câu
lệnh nếu điều kiện đúng. Có thể sử dụng else để thực hiện một khối các câu lệnh
khác nếu điều kiện sai. Ngoài ra, bạn cũng có thể sử dụng elif để kiểm tra nhiều
điều kiện khác nhau và thực hiện một khối các câu lệnh tương ứng với mỗi điều kiện. Ví dụ: hình 1
Hình 1. 1:Ví dụ sử dụng if…elif
for: Cấu trúc for cho phép lặp qua một chuỗi các đối tượng, như một danh sách,
một tuple, một chuỗi, một khoảng, hoặc một trình sinh. Có thể sử dụng break để
thoát khỏi vòng lặp khi gặp một điều kiện nào đó, hoặc sử dụng continue để bỏ
qua một lần lặp và tiếp tục vòng lặp tiếp theo. Ngoài ra, bạn cũng có thể sử
dụng else để thực hiện một khối các câu lệnh khi vòng lặp kết thúc mà không gặp lệnh break. Ví dụ: hình 2
Hình 1. 2: Ví dụ sử dụng for…else
while: Cấu trúc while cho phép lặp lại một khối các câu lệnh miễn là một điều
kiện là đúng. Có thể sử dụng các lệnh break, continue và else như trong vòng lặp for. Ví dụ: hình 3
Hình 1. 3: Ví dụ sử dụng while
1.2.3 Cấu trúc vòng lặp.
Cấu trúc vòng lặp trong Python là một cách để thực hiện một khối lệnh nhiều lần
cho đến khi một điều kiện nào đó được thoả mãn. Python hỗ trợ hai loại vòng lặp chính
vòng lặp forvòng lặp while.
Vòng lặp for dùng để lặp qua một dãy giá trị có thể đếm được, như một xâu, một
mảng, hoặc một hàm range. Cú pháp của vòng lặp for là: hình 4
Hình 1. 4: Cú pháp vòng lặp for
Vòng lặp while dùng để lặp lại một khối lệnh khi điều kiện còn đúng. Cú pháp của vòng lặp while là: hình 5
Hình 1. 5: Cú pháp vòng lặp while 1.2.4 Hàm:
Hàm trong Python là một khối lệnh được tổ chức và có thể tái sử dụng, để
thực hiện một hành động nào đó đó. Chúng ta có thể tạo riêng cho mình một
hàm với cách định nghĩa và kiểu giá trị cho riêng mình. Các hàm này được gọi
là user-defined function.Để định nghĩa một hàm trong Python, ta theo các qui tắc sau:
Từ khóa def được sử dụng để bắt đầu phần định nghĩa hàm. Def xác định phần
bắt đầu của khối hàm.
Def được theo sau bởi ten_ham được theo sau bởi các dấu ngoặc đơn ().
Các tham số được truyền vào bên trong các dấu ngoặc đơn. Ở cuối là dấu hai chấm.
Trước khi viết một code, một độ thụt dòng được cung cấp trước mỗi lệnh. Độ
thụt dòng này nên giống nhau cho tất cả các lệnh bên trong hàm đó.
Lệnh đầu tiên của hàm là tùy ý, và nó là Documentation String của một hàm đó.
Sau đó là lệnh để được thực thi.
Cú pháp của hàm trong Python như sau: hình 6 Hình 1. 6: Cú pháp hàm
Để thực thi một hàm, bạn cần gọi hàm đó. Phần định nghĩa hàm cung cấp
thông tin về tên hàm các tham số và định nghĩa những hoạt động nào được thực
hiện bởi hàm đó. Để thực thi phần định nghĩa của hàm, bạn cần gọi hàm đó. Cú pháp như sau: ten_ham ( cac_tham_so ) 1.2.5 Lớp.
Lớp trong Python là một cách để định nghĩa một kiểu đối tượng mới, có thể chứa
các thuộc tính (dữ liệu) và phương thức (chức năng) liên quan đến đối tượng đó. Lớp
cung cấp một bản thiết kế hoặc một nguyên mẫu cho việc tạo ra các thực thể (instance)
của đối tượng đó. Lớp cho phép ta gói gọn các dữ liệu và chức năng lại với nhau, tạo ra
một cấu trúc rõ ràng và dễ quản lý.
Để tạo một lớp trong Python, ta cần sử dụng từ khóa class theo sau là tên lớp.
Tên lớp thường được viết theo quy tắc CamelCase, tức là viết hoa chữ cái đầu của mỗi
từ. Sau đó, bạn cần khai báo các thuộc tính và phương thức của lớp trong một khối lệnh
thụt lề. Cú pháp của lớp trong Python như sau: hình 7 Hình 1. 7: Cú pháp lớp
Ví dụ: Tạo một lớp tên là HinhChuNhat có hai thuộc tính là chieu_daichieu_rong,
và hai phương thức là tinh_dien_tichtinh_chu_vi. hình 8
Hình 1. 8: Ví dụ về Lớp
Để tạo một đối tượng từ một lớp, ta cần gọi tên lớp và truyền vào các tham số cần
thiết cho hàm __init__ (nếu có). Hàm __init__ là một hàm đặc biệt được gọi là
constructor, dùng để khởi tạo các thuộc tính của đối tượng khi nó được tạo ra. Cú pháp
để tạo một đối tượng như sau:
ten_doi_tuong = TenLop(cac_tham_so)
Ví dụ: Tạo một đối tượng tên là hcn1 từ lớp HinhChuNhat với chiều dài là 5 và chiều rộng là 3. hcn1 = HinhChuNhat(5, 3)
Để truy cập hoặc thay đổi các thuộc tính của đối tượng, ta cần sử dụng dấu chấm
(.) theo sau là tên thuộc tính. Ví dụ: hcn1.chieu_dai trả về giá trị của thuộc tính
chieu_dai của đối tượng hcn1.
Để gọi các phương thức của đối tượng, ta cũng cần sử dụng dấu chấm (.) theo sau
là tên phương thức và các tham số (nếu có). Ví dụ: hcn1.tinh_dien_tich() trả về kết
quả của phương thức tinh_dien_tich của đối tượng hcn1.
1.3 Công cụ để thiết kế và xây dựng giao diện Qt Designer : hình 9
Hình 1. 9: hình ảnh Qt Designer
Qt Designer là một công cụ để thiết kế và xây dựng giao diện người dùng đồ họa
(GUI) với các widget từ bộ khung GUI Qt. Ta có thể sắp xếp và tùy chỉnh các cửa sổ
hoặc hộp thoại của ta theo cách nhìn thấy là gì ta nhận được (WYSIWYG), và kiểm tra
chúng với các kiểu và độ phân giải khác nhau. Các widget và form được tạo bằng Qt
Designer tích hợp một cách liền mạch với code lập trình, sử dụng cơ chế tín hiệu và khe
của Qt, để ta có thể dễ dàng gán hành vi cho các thành phần đồ họa. Tất cả các thuộc
tính được thiết lập trong Qt Designer có thể được thay đổi động trong code. Hơn nữa,
các tính năng như widget promotion và custom plugins cho phép ta sử dụng các thành
phần của riêng ta với Qt Designer.
Một số ưu điểm của Qt Designer là:
Nó là một công cụ miễn phí và mã nguồn mở, có thể sử dụng cho các dự án
thương mại hoặc nguồn mở.
Nó hỗ trợ nhiều nền tảng, bao gồm Windows, Linux, macOS, Android, iOS và các hệ thống nhúng.
Nó cung cấp một giao diện trực quan và dễ sử dụng, cho phép bạn kéo và thả các
widget và chỉnh sửa các thuộc tính của chúng.
Nó cho phép bạn xem trước giao diện của bạn trên nhiều thiết bị và độ phân giải
khác nhau, và thay đổi kiểu của chúng một cách dễ dàng.
Nó tạo ra các file XML (.ui) để lưu trữ cấu trúc giao diện, có thể được chuyển đổi
sang code C++ hoặc Python bằng các công cụ khác.
Nó hỗ trợ việc tạo các widget tùy chỉnh và sử dụng các plugin để mở rộng các tính năng của nó.
Một số nhược điểm của Qt Designer là:
Nó không hỗ trợ tất cả các widget và tính năng của Qt, một số widget phải được
thêm vào bằng code hoặc plugin.
Nó không cung cấp một trình biên dịch hoặc một trình gỡ lỗi tích hợp, bạn phải
sử dụng các công cụ khác như Qt Creator để biên dịch và chạy ứng dụng của bạn.
Nó không cho phép bạn viết code logic hoặc xử lý sự kiện trong giao diện, bạn
phải viết code trong các file khác và kết nối với các widget bằng cơ chế tín hiệu và khe của Qt.
Nó có thể gây ra một số vấn đề về tương thích khi sử dụng các phiên bản khác nhau của Qt Designer và Qt.
1.4 Cơ sở dữ liệu SQL server:
SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) của Microsoft, được sử
dụng để lưu trữ, xử lý và phân tích dữ liệu lớn. SQL Server có nhiều phiên bản khác
nhau, phù hợp với các nhu cầu và mục đích khác nhau của người dùng. SQL Server
cũng hỗ trợ các ngôn ngữ lập trình khác nhau, như C#, Java, Python, R và Transact- SQL.
Một số ưu điểm của SQL Server là:
Cài nhiều phiên bản MS SQL khác nhau trên cùng một máy1.
Duy trì riêng biệt các môi trường sản xuất, phát triển, thử nghiệm1.
Giảm thiểu các vấn đề tạm thời trên cơ sở dữ liệu1.
Tách biệt các đặc quyền bảo mật1.
Duy trì máy chủ dự phòng.
Hỗ trợ các tính năng ACID (Atomicity, Consistency, Isolation, Durability) để
đảm bảo tính toàn vẹn và nhất quán của dữ liệu.
Hỗ trợ các tính năng nâng cao, như Big Data Clusters, PolyBase, xử lý truy vấn
thông minh, giám sát thông minh, khôi phục cơ sở dữ liệu nhanh hơn, tối ưu hóa hiệu suất.
Một số nhược điểm của SQL Server là:
Khá phức tạp, đòi hỏi kỹ năng cao để quản lý và vận hành3.
Chiếm nhiều dung lượng bộ nhớ.
Chi phí vận hành của một số phiên bản SQL khiến một số lập trình viên gặp khó khăn khi tiếp cận.
Có phần mở rộng độc quyền riêng của nhà cung cấp bên cạnh các tiêu chuẩn
SQL, có thể gây khó khăn khi thực thi.
1.5 Công cụ lập trình Pycharm Community Edition 2022.1.4:
PyCharm là một môi trường phát triển tích hợp (IDE) dành cho ngôn ngữ lập
trình Python. Nó được phát triển bởi JetBrains và cung cấp một loạt các tính năng hữu
ích để giúp nhà phát triển Python xây dựng, kiểm thử, và duy trì mã nguồn Python của
họ. Dưới đây là một số điểm mạnh và điểm yếu của PyCharm: Ưu điểm:
Tích hợp đầy đủ: PyCharm có tích hợp đầy đủ với nhiều công cụ và khung làm
việc Python phổ biến như Django, Flask, và virtualenv. Điều này giúp giảm bớt
công sức cấu hình và tối ưu hóa quy trình phát triển.
Kiểm thử Tự động và Gỡ lỗi: PyCharm cung cấp công cụ kiểm thử tự động và gỡ
lỗi mạnh mẽ, giúp nhà phát triển dễ dàng xác định và sửa lỗi trong mã nguồn.
Hỗ trợ Đa Nền Tảng: PyCharm hỗ trợ cả Windows, macOS và Linux, cung cấp
sự linh hoạt cho những nhà phát triển làm việc trên nhiều nền tảng.
Tính Năng Động và Đa Dạng: PyCharm có nhiều tính năng hữu ích như đề xuất
mã, refactoring, và hỗ trợ Git, giúp tăng cường hiệu suất và chất lượng mã nguồn.
Cộng đồng Lớn và Hỗ trợ Tốt: PyCharm có một cộng đồng lớn và hoạt động tích
cực, cùng với tài liệu chi tiết và hỗ trợ từ JetBrains, giúp nhà phát triển giải quyết
vấn đề một cách nhanh chóng. Nhược điểm:
Tính Nặng và Tài nguyên Tốn kém: PyCharm có thể tốn nhiều tài nguyên hệ
thống, đặc biệt là khi xử lý các dự án lớn. Điều này có thể ảnh hưởng đến hiệu
suất máy tính của bạn, đặc biệt là trên các máy tính có cấu hình thấp.
Cần Thời Gian để Học: Với nhiều tính năng và tùy chọn, PyCharm có một độ
dốc học khá lớn, đặc biệt là đối với những người mới bắt đầu.
Giá Cả: Mặc dù có phiên bản Community miễn phí, nhưng các phiên bản
Professional của PyCharm thì có giá. Điều này có thể là một yếu tố hạn chế đối
với những người mới bắt đầu hoặc cá nhân không có ngân sách lớn.
Tổng cộng, PyCharm là một IDE mạnh mẽ cho Python, đặc biệt là cho các dự án
lớn và phức tạp, mặc dù việc sử dụng nó có thể yêu cầu một thời gian để làm quen
và tận dụng đầy đủ các tính năng.
CHƯƠNG 2:XÂY DỰNG CHƯƠNG TRÌNH
2.1 Đặt tả hệ thống:
Hệ thống chương trình quản lý cửa hàng kem Mixue là một phần mềm thiết kế
nên để hổ trợ cho nhân viên cửa hàng thực hiện các công việc quản lý cửa hàng.
Chương trình bao gồm 2 form: 1 form đăng nhập và 1 form giao diện gồm 3 trang lần
lượt là menu, quản lí sản phẩm và quản lí loại sản phẩm với các chức năng thêm sửa
xóa. Các form sử dụng dữ liệu có sẵn trên sql và được giao diện chương trình được tạo nên từ Qt Designer.
2.2. Một số sơ đồ chức năng của chương trình quản lý
2.2.1 Sơ đồ chức năng đăng nhập:
hình 10
Hình 1. 10: Sơ đồ chức năng đăng nhập
Sơ đồ hình 10 miêu tả cách đăng nhập vào hệ thống. Đầu tiên chúng ta
muốn đăng nhập vào hệ thống phải qua giai đoạn đăng nhập, muốn đăng nhập
vào hệ thống chúng ta phải có tài khoản và mật khẩu mới đăng nhập được, tài
khoản và mật khẩu được lưu trong csdl SQL server.
2.2.2. Sơ đồ chức năng tổng thể của hệ thống. hình 11
Hình 1. 11: Sơ đồ chức năng tổng thể của hệ thống.
Sơ đồ hình 11 miêu tả các chức năng của chương trình gồm có: thêm, sửa,
xóa sản phẩm cũng như loại sản phẩm của Mixue.
CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH
3.1 Tổng thể chương trình cài đặt:
Chương trình được viết bằng ngôn ngữ python cùng với công cụ để thiết
kế và xây dựng giao diện QT desinger giúp việc lập trình trở nên dể dàng với
việc cung cấp đầy đủ các API của ứng dụng window như PushButton, label,
combobox, line edit… Kết hợp lại đã tạo ra một ứng dụng “quản lí tiệm kem
Mixue”. Sau khi hoàn thiện ứng dụng có những chức năng sau:
Chức năng đăng nhập: Khi muốn vào ứng dụng người quản lí cần phải
đăng nhập bằng tài khoản đã được thiết lập trước.Sau đó dùng mật khẩu và tài
khoản đã có đăng nhập vào form chính
Chức năng thêm thông tin vào bảng : dùng để thêm thông tin về sản
phẩm mới hoặc loại sản phẩm mới vào cơ sở dữ liệu.
Chức năng xóa thông tin: dùng để sửa thông tin về sản phẩm hoặc loại
sản phẩm đã tồn tại trong cơ sở dữ liệu.
Chức năng sửa thông tin: dùng để xóa thông tin về sản phẩm hoặc loại
sản phẩm có trong cơ sở dữ liệu. 3.2 Chương trình:
3.2.1 Triển khai hệ thống:

3.2.1.1 Các thư viện được sử dụng: Tên class
Các thư viện được sử dụng Cls_sanpham() import pyodbc as obdc Cls_loai() import pyodbc as obdc MainWindow import sys from PyQt6.QtWidgets import QApplication,
QMainWindow,QTableWidgetItem,QComboBox,QMessage Box,QStackedWidget
from PyQt6.QtCore import QTimer
from formlogin import Ui_formdangnhap
from lienketlogin import cls_dangnhap
from formgiaodien import Ui_formgiaodien
from lienketsp_SQL import cls_sanpham
from lienketloai_sql import cls_loai
3.2.1.2 Sơ đồ hệ thống:
Hình 1. 12: Sơ đồ hệ thống.
Khi chạy chương trình cửa sổ đăng nhập sẽ hiện đầu tiên, khi đăng nhập thành công cửa sổ hình 12
đăng nhập sẽ đóng lại, cửa sổ giao diện sẽ bật lên đây là giao
diện chính của phần mềm, form chính có thể chuyển qua giũa các chức năng
quản lí sản phẩm và quản lí loại sản phẩm từ giao diện menu
3.2.1.3 Form đăng nhập: hình 13
Hình 1. 13: Form đăng nhập.
Để có thể vào được chương trình chính người sử dụng cần có tài khoản và
mật khẩu để đăng nhập vào. Nhập vào tài khoản và mật khẩu ấn nút “Đăng nhập”
để đăng nhập, nếu tài khoản và mật khẩu hợp lệ thì đăng
nhập thành công và ngược lại.
Thông báo lỗi sẽ hiển thị lỗi nếu trong quá trình thao tác không hợp lệ ví dụ
khi nhấn đăng nhập khi tài khoản hoặc mật khẩu chưa được nhập, nhập sai tài
khoản hoặc mật khẩu và nhập quá số lần đăng nhập quy định (3 lần). 3.2.1.5 Form menuị: hình 14 Hình 1. 14: Form Menu
Form giúp hiển thị hình ảnh menu của tiệm và nút setting giúp chuyển tiếp đến
trang quản lí sản phẩm và loại sản phẩm.
3.2.1.6 Form quản lí sản phẩm hình 15
Hình 1.15: Form quản lí sản phẩm
Vùng nhập dữ liệu: hình 16
Hình 1.16: Vùng nhập dữ liệu sản phẩm
Vùng hiển thị bảng thông tin:
Hình 1.17: Vùng hiển thị bảng sản phẩm
Các nút chức năng:
Nút thêm sản phẩm mới vào bảng sản phẩm:
Nút cập nhật giúp cập nhật lại thông tin sản phẩm:
Nút xóa để xóa sản phẩm có trong bảng sản phẩm:
Nút home giúp quay về trang menu: Vùng chuyển trang:
Cho phép chuyển đổi giữa trang quản lí sản phẩm và trang quản lí loại sản phẩm khi ta
nhấn vào nút tương ứng. hình 17
3.2.1.7 Form quản lí loại sản phẩm hình 18
Hình 1.19: Form quản lí loại sản phẩm
Vùng nhập dữ liệu: hình 19
Hình 1.20: Vùng nhập thông tin loại sản phẩm
Vùng hiển thị bảng loại: hình 20
Hình 1.21: Vùng hiển thị bảng thông tin loại sản phẩm
Các nút chức năng: hình 21
Hình 1.22: Các nút chức năng thêm, sửa, xóa loại sản phẩm
Nút thêm giúp thêm loại sản phẩm mới vào bảng loại.
Nút cập nhật giúp cập nhật lại thông tin của loại sản phẩm đã có trong bảng loại.
Nút xóa giúp xóa loại sản phẩm có trong bảng loại.
Nút home giúp quay về trang menu: Vùng chuyển trang:
Cho phép chuyển đổi giữa trang quản lí sản phẩm và trang quản lí loại sản phẩm khi ta
nhấn vào nút tương ứng. hình 22
Hình 1.23: Vùng chuyển trang
3.2.2 Các trường hợp bẫy lỗi.
3.2.2.1 Lỗi để trống : hình 23 hình 24