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
Trang 1TRƯỜ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
Trang 2TRƯỜ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
Trang 3MỤ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
Trang 43.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
Trang 5MỤ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
Trang 6CHƯƠ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àinguyê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 Guidovan Rossum vào năm 1989 và được lấy cảm hứng từ chương trình hài MontyPython 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ụ:
Trang 7Hì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ặplệ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ụ:
Trang 8là user-defined function.Để định nghĩa một hàm trong Python, ta theo các quitắc sau:
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
Trang 9Cú 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ệnhthụ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_dai và chieu_rong,
và hai phương thức là tinh_dien_tich và tinh_chu_vi.
Trang 10Hì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ầnthiế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:
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à khecủ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,
Trang 11cá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à:
thương mại hoặc nguồn mở
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
Trang 12 Duy trì riêng biệt các môi trường sản xuất, phát triển, thử nghiệm
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
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 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
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ếtvấn đề một cách nhanh chóng
Trang 13Nhượ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
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
Sơ đồ hình 10 miêu tả cách đăng nhập vào hệ thống Đầu tiên chúng tamuố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
Trang 14và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àikhoả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ớiviệ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 kemMixue” 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àikhoả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ảnphẩ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ạisả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ạisả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:
Trang 15Tên class Các thư viện được sử dụng
QMainWindow,QTableWidgetItem,QComboBox,QMessageBox,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ậpthà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à giaodiện chính của phần mềm, form chính có thể chuyển qua giũa các chức năngquả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
Trang 163.2.1.5 Form menuị:
Hình 1 14: Form Menu
trang quản lí sản phẩm và loại sản phẩm
hình 14
Trang 18Vù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
Trang 193.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
Trang 20Hì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:
Trang 21Hình 1.23: Bẫy lỗi để trống thông tin đăng nhập
Hệ thống yêu cầu không được để trống thông tin nhập vào để có thể tiếp tục đăngnhập, khi để trống thông tin nhập nào khi bấm nút “đăng nhập” thì hệ thống sẽ báo lỗi thông tin nhập ấy đang rỗng và đưa con trỏ chuột vào thông tin nhập còn trống
3.2.2.2 Lỗi quá số lần nhập sai đăng nhập
Hình 1.24: Bẫy lỗi quá số lần nhập saiKhi đăng nhập sai 3 lần thì hệ thống sẽ thông báo lỗi cho người dùng, sau đó 2 giây thì cửa sổ đăng nhập sẽ tự động đóng
3.2.2.3 Bẫy lỗi ở trang sản phẩm:
Để thực hiện các nút chức năng thì ta phải nhập đầy đủ thông tin sản phẩm, nếu thông tin sản phẩm bị trống thì thì sẽ thông báo lỗi và đưa con trỏ về ô nhập bị rỗng Các thông tin dạng số như giá tiền, ID thì khi ta nhập chữ hoặc số âm thì sẽ bị báo lỗiCác thông tin dạng số như ID, giá tiền bắt buộc là ký tự số dương nên khi nhập
số âm hoặc ký tư chữ thì báo lỗi sẽ hiện lên và con trỏ sẽ đưa về ô nhập
Đối với thao tác chỉnh sửa và xóa sản phẩm thì sau khi nhập ID, nếu ID vừa nhậpkhông có trong bảng sản phẩm thì báo lỗi và yêu cầu nhập lại
hình 25