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

Kỹ thuật lập trình phần mềm ứng dụng đề xuất món ăn

31 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Kỹ thuật lập trình phần mềm ứng dụng đề xuất món ăn
Tác giả Nguyễn Quỳnh Anh, Nguyễn Thị Hương Giang, Lê Minh Nguyên, Lê Hoàng Yến
Người hướng dẫn Trương Hoài Phan, Trần Duy Thanh
Trường học Trường Đại học Kinh tế - Luật, Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Kỹ thuật lập trình phần mềm
Thể loại Đồ án cuối khóa
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 31
Dung lượng 5,39 MB

Nội dung

Trong quá trình hoàn thành đồ án cuối kỳ, thầy Trương Hoài Phan và thầy Trần Duy Thanh đã giúp chúng em có được kiến thức nền tảng về phương pháp làm bài đồ án và định hướng đúng đắn nhữ

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC KINH TẾ - LUẬT

BÁO CÁO ĐỒ ÁN CUỐI KHÓA

Học kỳ 2: 2022 - 2023

KỸ THUẬT LẬP TRÌNH

PHẦN MỀM

Ứng dụng đề xuất món ăn

Giảng viên hướng dẫn:

TRƯƠNG HOÀI PHAN TRẦN DUY THANH -

2 Nguyễn Thị Hương Giang K224161810

Thành phố Hồ Chí Minh, ngày 19 tháng 04 năm 2023

Trang 2

NHẬN XÉT CỦA GIẢNG VIÊN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Điểm …… Ký tên

Trang 3

3

LỜI CẢM ƠN

Đầu tiên, chúng em xin gửi lời cảm ơn chân thành đến Ban giám hiệu trường Đại học Kinh tế Luật vì đã tạo điều kiện cho chúng em tiếp cận môn “Kỹ thuật lập trình”, - cũng như cung cấp cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại sách, tài liệu thuận lợi cho việc tìm kiếm, nghiên cứu thông tin Đặc biệt, chúng em xin gửi lời cảm ơn sâu sắc nhất đến giáo viên bộ môn – Thầy Trương Hoài Phan cùng thầy Trần Duy Thanh đã giảng dạy tận tình, chi tiết để chúng em có đủ kiến thức và vận dụng chúng vào bài tiểu luận này

Trong quá trình hoàn thành đồ án cuối kỳ, thầy Trương Hoài Phan và thầy Trần Duy Thanh đã giúp chúng em có được kiến thức nền tảng về phương pháp làm bài đồ án và định hướng đúng đắn những cách thức tiến hành tạo ra một chương trình đơn giản bằng ngôn ngữ lập trình Python Tuy nhiên, do sự hạn chế về thời gian và kiến thức, cũng như chúng em vẫn còn thiếu kinh nghiệm thực tiễn nên sai sót là điều không thể tránh khỏi Chúng em rất mong sẽ nhận được những ý kiến đóng góp từ quý thầy cô

và các bạn để hoàn thiện bài đồ án nhất có thể

Kính chúc thầy thật nhiều sức khỏe và thành công trên sự nghiệp giảng dạy

Chúng em xin chân thành cảm ơn!

Nhóm sinh viên thực hiện đồ án

Thành phố Hồ Chí Minh, ngày 19 tháng 4 năm 2023

Trang 4

LỜI MỞ ĐẦU

Ngày nay, với những thành tựu to lớn mà con người đạt được trong các lĩnh vực công nghệ, khoa học, và kinh tế cuộc sống của chúng ta đã trở nên tiện lợi và đầy đủ hơn rất nhiều Đặc biệt những năm gần đây, công nghệ thông tin, truyền thông và kỹ thuật số

đã bùng nổ mạnh mẽ, phát triển một cách nhanh chóng, đưa cuộc sống của con người lên một tầm cao mới Không chỉ giúp cho việc giao tiếp và truy cập thông tin trở nên dễ dàng hơn bao giờ hết, công nghệ cũng đã tác động đến nhiều lĩnh vực khác nhau như y

tế, giáo dục, sản xuất và nhiều lĩnh vực khác Các thiết bị y tế được kết nối với mạng internet đã giúp cho việc chẩn đoán bệnh và chăm sóc sức khỏe trở nên hiệu quả hơn Giáo dục cũng được cải thiện đáng kể với việc sử dụng các công nghệ mới như học trực tuyến và các ứng dụng học tập tích hợp trí tuệ nhân tạo Trong sản xuất công nghiệp, các dây chuyền tự động hóa đã giúp rút ngắn thời gian và tăng năng suất sản xuất Vì vậy có thể thấy được rằng, công nghệ dường như đã trở thành một phần không thể thiếu trong mọi hoạt động xã hội và đời sống của con người

Tuy nhiên, chúng ta cũng cần phải cân nhắc tác động tiêu cực của sự phát triển này đến môi trường và xã hội Có thể nhận thấy một thực trạng đáng buồn là khoa học công nghệ càng phát triển thì môi trường sống ngày càng bị tàn phá nghiêm trọng Thiết nghĩ

là chúng ta nên tận dụng công nghệ để tạo ra những phát minh vừa giúp ích cho con người vừa thân thiện và góp phần bảo vệ môi trường

Tại Việt Nam tình trạng lãng phí thực phẩm đã đạt đến mức đáng báo động Nó không chỉ gây ảnh hưởng đến kinh tế, xã hội mà còn gây áp lực nặng nề cho môi trường như làm tăng lượng khí thải nhà kính, gây lãng phí tài nguyên đất và nước dùng trong quá trình sản xuất thực phẩm Và có đến gần một nửa lượng thức ăn bị lãng phí là do bị bỏ quên trong tủ lạnh dẫn đến hư hỏng hoặc hết hạn không thể sử dụng được nữa Điều này xảy ra một phần là vì nhiều người có thói quen mua một lượng thực phẩm lớn về trữ dần nhưng không ăn kịp Hay như việc chúng ta mua đồ về nấu những món cần nhiều nguyên liệu và sau đó ta sẽ có rất nhiều nguyên liệu dở dang trong tủ lạnh còn

Trang 5

5

thừa nhưng lại không biết nấu món gì mà có thể tận dụng hết những nguyên liệu ấy Vì vậy việc có một ứng dụng hỗ trợ đề xuất công thức món ăn dựa trên nguyên liệu sẽ là giải pháp tuyệt vời góp phần giải quyết tình trạng lãng phí thức ăn đồng thời giúp hạn chế chất thải ảnh hưởng đến môi trường

Trang 6

MỤC LỤC

L ỜI CẢM ƠN ……… ……3

L ỜI MỞ ĐẦU ……… …4

MỤC LỤC……… 6

DANH MỤC HÌNH ẢNH ……… 7

DANH M C BẢNG BIỂ ……….7 U A GIỚI THI U 8Ệ 1 Tên dự án 8

2 Lý do ch n d ọ ự án 8

3 Mục đích dự án 9

4 Ph m vi thạ ực hiện 9

5 Phương pháp nghiên cứu thực hiện 9

B NỘI DUNG 10

1 Cơ sở lý thuyết 10

1.1 Ngôn ng l p trình Python 10ữ ậ 1.2 Môi trường lập trình Visual Studio 2022 10

1.3 Thư viện trong lập trình 10

2 Quy trình thực hiện 13

2.1 Tổ chức dữ liệu 13

2.2 X ử lý dữ liệu 14

2.3 Thi t k giao di n 15ế ế ệ 3 S ự liên k t cế ủa các dữ liệu trong chương trình 17

3.1 Mô hình quan h 17ệ 3.2 Tổ chức thư mục 17

4 Thuật toán chương trình 18

Trang 7

100% (3)

87

Business Model Canvas

Trang 8

C KẾT QU - Ả ĐÁNH GIÁ 19

1 Kết quả 19

1.1 Th nghi m 19ử ệ 1.2 Kết quả đạt được 25

2 Đánh giá 25

2.1 Ưu điểm 25

2.2 Nhược điểm 25

2.3 Hướng phát triển 25

D KẾT LU N 27DANH MỤC HÌNH ẢNH Hình 1: Giao diện chọn nguyên liệu nấu ăn 15

Hình 2: Giao diện danh sách các công thức nấu ăn 16

Hình 3: Giao diện trang công thức nấu ăn 16

Hình 4: Giao diện những công thức đã được lưu 17

Hình 5: Sơ đồ mối quan hệ của chương trình 17

Hình 6: Sơ đồ mối liên kết thư mục trong chương trình 18

Hình 7: Thuật toán của toàn bộ chương trình 18

Hình 8: Giao diện chọn nguyên liệu nấu ăn 19

Hình 9: Giao diện danh sách các công thức nấu ăn 20

Hình 10: Trang công thức nấu ăn 21

Hình 11: Nhiều trang công thức khác nhau 22

Hình 12: Lưu công thức 23

Hình 13: Giao diện những công thức đã được lưu 24

DANH MỤC BẢNG BIỂU Bảng 1: Dữ liệu các công thức nấu ăn 14

Key 10-11glish grade 9

Giao dịch thương… 100% (2)

22

Trang 9

vì ta s kiẽ ểm soát đượ lược ng chất b o qu n và ch t béo trong quá trình ch ả ả ấ ếbiến, giúp giảm nguy cơ mắc các bệnh liên quan đến ch ế độ ăn uống hơn Tuy nhiên vi c t nệ ự ấu ăn cũng không hề đơn giản và khi n nhi u ngế ề ười gặp không ít khó khăn Vì nếu bạn không có kinh nghiệm trong việc nấu ăn trước

đó, bạn sẽ không biết cách lựa chọn nguyên liệu và kết hợp chúng với nhau như thế nào Vi c loay hoay lệ ựa chọn nguyên li u và cách n u s làm m t nhi u thệ ấ ẽ ấ ề ời gian c a chúng tủ a hơn so với việc đặt món ăn hoặc mua đồ ăn sẵ ại cửa hàng.n t Việc s d ng ng d ng giúp hử ụ ứ ụ ỗ trợ tìm kiếm và đề xu t món d a trên nguyên ấ ựliệu s n có không chẵ ỉ giúp người dùng ti t ki m th i gian và công s c mà còn ế ệ ờ ứtận dụng được các nguyên li u có s n t i nhà tránh tình tr ng lãng phí Và ng ệ ẵ ạ ạ ứdụng cũng rất phù hợp với những người áp dụng chế độ ăn đặc biệt chỉ được tiêu th m t sụ ộ ố loại th c ph m nhự ẩ ất định, ng d ng s giúp h tìm ra nh ng ứ ụ ẽ ọ ữcông th c mứ ới lạ hơn để thực đơn của họ không bị nhàm chán, đơn điệu Xuất phát từ thự ế và xu hước t ng hi n tệ ại, nhóm chúng em đã quyết định lựa chọn đề tài “Phần m ềm đề xuất công thức món ăn dựa trên nguyên li ệu” với hy

vọng r ng nó s góp ph n giúp công vi c qu n lý tr nên hi u quằ ẽ ầ ệ ả ở ệ ả hơn

Trang 10

3 M ục đích dự án

Xây dựng một phần mềm điện thoại hỗ trợ tìm kiếm công thức món ăn giúp tận dụng được nguyên liệu dở dang, tránh lãng phí thức ăn và làm cho việc tự vào bếp nấu ăn trở nên đơn giản, tiết kiệm thời gian hơn

Giúp sinh viên vừa nắm vững được kiến thức môn vừa học, vừa bồi dưỡng cho bản thân thêm kiến thức về xu hướng xã hội thông qua việc chọn đề tài và làm việc nhóm cùng nhau

4 Ph m vi th c hi n ạ ự ệ

Dự án được thiết kế dành cho đối tượng sử dùng là những người thường xuyên nấu ăn tại nhà nhưng bị thiếu ý tưởng về công thức món ăn với mục đích hỗ trợ tìm món ăn dựa trên nguyên liệu hiện có, giúp hạn chế việc thức ăn bị lãng phí

5 Phương pháp nghiên cứu thực hiện

Đọc một số tài liệu về phương pháp lập trình Python, trên cơ sở đó tiến hành phân tích thiết kế hệ thống tìm kiếm thông tin

Tham khảo, quan sát các phần mềm gợi ý công thức nấu ăn trong thực tế

Trang 11

1.2 Môi trường lậ p trình Visual Studio 2022

Visual Studio 2022 là một môi trường phát tri n tích h p (IDE) c a Microsoft ể ợ ủ

Nó được sử dụng để phát triển chương trình máy tính cho Microsoft Windows, cũng như các trang web, các ứng dụng web và các dịch vụ web Visual Studio

là m t công c m nh và hộ ụ ạ ỗ trợ ậ l p trình trên nhi u ngôn ngề ữ như: C++, Python,… nên được đông đả ậo lp trình viên trên th gi i sế ớ ử d ng ụ

1.3 Thư viện trong l p trình

Để cài đặt thư viện, sử dụng cú pháp “pip install [tên thư viện]” ở trên terminal của máy tính

Để thuận tiện hơn trong việc tiến hành thực hiện việc tổ chức dữ liệu và viết chương trình, hóm chúng em đã tham khảo và sử dụng một số thư viện sau:N

1.3.1 Module trong thư viện Flet:

User Control là m t lộ ớp (class) được định nghĩa để ạo ra các điề t u khiển (controls) giao diện người dùng tùy chỉnh như là các nút bấm, ô nhập liệu, ô chọn màu, ô chọn ngày tháng… Nó cho phép người dùng tạo ra các controls dễ dàng b ng cách kằ ế thừ ớa l p UserControl và cung cấp các phương thức, thuộc

Trang 12

tính và chức năng tùy chỉnh Vi c s d ng UserControl giúp cho vi c thi t k ệ ử ụ ệ ế ếgiao diện người dùng trong các ng d ng tr nên d ứ ụ ở ễ dàng hơn và linh hoạt hơn.

- Container

Container là m t lộ ớp (class) được định nghĩa để ạo ra các đối tượ t ng ch a các ứUser Control Các Container là các panel, frame, groupbox ho c các container ặtùy ch nh khác Container cỉ ho phép người dùng tổ chức các điều khi n trên ểgiao diện người dùng m t cáộ ch logic hơn, tạo ra các khu v c chự ức năng riêng biệt, giúp cho vi c s dệ ử ụng và tương tác với giao diện người dùng trở nên d ễdàng hơn

- Row

Row là một control bố trí sắp xếp cách hiển thị các phần tử con của nó dưới dạng một hàng ngang Người dùng sử dụng Row để tạo bố cục ngang cho các control trong ứng dụng của mình

- Image

Image là một control hi n thể ị đồ h a hình nh ọ ả Người dùng có th s ể ửdụng Image để ể hi n th hình nh trong ng d ng c a mình ị ả ứ ụ ủ đồng th i s dờ ử ụng các thuộc tính khác như width, height, và fit để điều khiển kích thước và cách hiển thị của hình ảnh

- Imagefit

ImageFit là m t thu c tính cộ ộ ủa control Image cho phép người dùng điều khiển cách hình ảnh được hi n th và b c c c a nó trong không gian Giá tr cể ị ố ụ ủ ị ủa ImageFit có th là: ể NONE (mặc định), CONTAIN, COVER, FILL, FIT_HEIGHT, FIT_WIDTH, SCALE_DOWN

- Column

Trong thư viện Flet cho Python, Column là một control b trí s p x p ố ắ ế cách hiển thị các ph n t con c a nó theo m t c t dầ ử ủ ộ ộ ọc Người dùng có th s d ng ể ử ụColumn để ạ t o b c c dố ụ ọc cho các control trong ng d ng c a mình ứ ụ ủ

Trang 13

12

- Text

Text là một control cho phép hi n thể ị văn bản Người dùng có th t o m t Text ể ạ ộvới thuộc tính value để chỉ định nội dung văn bản c n hi n th và phầ ể ị ối hợp cùng các thuộc tính khác như size color, và , italic để tùy ch nh ki u ch và màu s c ỉ ể ữ ắvăn bản

- FontWeight

FontWeight là m t thu c tính cộ ộ ủa control Text cho phép người dùng điều khiển

độ đậm của kiểu chữ Giá tr của FontWeight có th là các giá tr sau: W_100, ị ể ịW_200, W_300, W_400, W_500 W_60, 0, W_700, W_800, và W_900

- ElevatedButton

Là m t lo i nút (Button) ộ ạ được điền màu v i vi n có dớ ề ạng bóng đổ trong thư viện Flet được s d ng khi nút c n ử ụ ầ được n i b t lên gi a phông n n xung ổ ậ ữ ềquanh Nó có chức năng tương tự như các nút khác cho phép người dùng tương tác v i ớ ứng d ng b ng cách nhụ ằ ấn vào nút để thực hiện một hành động cụ thể

- icons

Là m t loộ ại control hi n th m t biể ị ộ ểu tượng Người dùng có th tìm ki m danh ể ếsách t t c các icons có s n b ng cách s dấ ả ẵ ằ ử ụng Icons browser được vi t b ng ế ằFlet Icon còn có th ể được tùy chỉnh v màu sề ắc và kích thước

- Page

Page trong thư viện Flet Python là một loại container chứa các View controls Page có nhi u thu c tính cho phép tùy ch nh các thuề ộ ỉ ộc tính như màu nền, thanh cuộn tự động, thanh tiêu đề và nhiều thuộc tính khác

Trang 14

- AppBar

Là một control trong thư viện Flet cho phép người dùng t o mạ ột thanh ng ứdụng ở đầu trang Nó có thể chứa các nút điều hướng, tiêu đề và các hành động Người dùng còn có thể tùy ch nh AppBar bằng cách sử dụng các thuộc tính như ỉmàu sắc, độ cao và nhiều thu c tính khác ộ

1.3.2 Thư viện Polars:

Polars là một thư viện xử lý dữ liệu trong Python được viết bằng ngôn ng Rust ữmới ra m t gắ ần đây Polars cung cấp các tính năng tương tự như Pandas, bao gồm: t o DataFrame, chạ ọn, lọc, s p x p, nhóm dắ ế ữ liệu, tính toán số liệu th ng ố

kê và nhiều hơn nữa Polars có thể được s d ng cho các mử ụ ục đích như xử lý

dữ liệu, data pipe, API nhanh và r t hi u qu ấ ệ ả

Polars s dử ụng định d ng c t Apache Arrow làm mô hình b nh Apache ạ ộ ộ ớArrow là một định d ng dạ ữ liệu c t tiêu chuộ ẩn được s dử ụng để lưu trữ và truyền t i dả ữ ệu trong hệ sinh thái Big Data Trong thư việli n Polars, cột được

định dạng theo chuẩn Arrow và được biểu diễn bởi các đối tư ng pl.Series M i ợ ỗđối tượng pl.Series trong Polars đại diện cho một cột dữ liệu Các cột này có

thể chứa các giá trị ố s , chu i, boolean, th i gian, và nhi u ki u d ỗ ờ ề ể ữ ệu khác li

Ưu điểm của Polars: Định d ng này cho phép Polars t n dạ ậ ụng các tính năng của Apache Arrow như xử lý các tập dữ liệu l n v i hi u suớ ớ ệ ất cao và cung cấp nhiều tính năng phân tích dữ liệu mạnh mẽ Ngoài ra, Polars còn được tích hợp một cách liền m ch vạ ới các công c khác trong h sinh thái Apache Arrow ụ ệ

Trang 15

14

Bảng 1: Dữ liệu các công th ức nấu ăn (được lưu dưới dạ ng csv)

["In a heavy 2-quart saucepan, mix brown sugar, nuts… ]

www.cookbooks.co m/Recipe- Details.aspx?id=448

["brown sugar", "milk",

["beef",

"chicken breasts", …]

2 Creamy

Corn

["2 (16 oz.) pkg frozen corn", …]

["In a slow cooker, combine all ingredients…]

www.cookbooks.co m/Recipe- Details.aspx?id=105

Sau khi dữ liệu đã được nhập vào chương trình thông qua thư viện Polars, d ữliệu sẽ được chia thành nhi u ph n khác nhau theo cề ầ ột để ứng d ng có th s ụ ể ửdụng vào nhi u mề ục đích khác nhau Cột đầu tiên có thể được dùng để ọc ra lnhững công thức trùng nhau trong quá trình lưu trữ Cột “NER” có th s dể ử ụng dành cho vi c so sánh gi a các nguyên li u nệ ữ ệ ấu ăn đã được ch n v i công thọ ớ ức

đã có sẵn

Ứng dụng có thể lưu lại những công thức mà người dùng đã chọn “Save” ởtrong ứng d ng b ng cách xu t ra m t file csv L n sau khi ng dụ ằ ấ ộ ầ ứ ụng được m ởlại thì sẽ chạy file csv đó để hiện lên những công thức đã lưu cho người dùng

Ngày đăng: 23/03/2024, 16:06

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

TÀI LIỆU LIÊN QUAN

w