1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo đồ án cuối khóa kỹ thuật lập trình phần mềm ứng dụng đề xuất món ăn

28 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

Nội dung

Trang 1

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

Trang 2

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

Ký tên

Trang 3

LOI CAM ON

Đầ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, chỉ 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

LOI MO DAU

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 da 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ệ đườ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 thay 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

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 tinh 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

L Térn dur An aa 8 2 LY do Chon Gu a0 eo ố 8

4 Pham vi thyrc Wi@n en 6 4.4 9

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

INeu 0n 1 4 10

1.1 Ngôn ngữ lập trình Python - 5 S5 <1 eee eee cece eeeeee tee seenneseeeneeaee 10 1.2 Môi trường lập trình Visual Studio 2Ô22 ác ssnseiseererey 10 IEON bao gi nh 10

J9) liïì()( 0ï) 0i 0n 13

2.1 Tổ chức đữ liệu -¿-+2++c++2tEkkrtEEEELrEE.ELE.Eirierie 13

2.2 XU DY 0 1n 14

2.3 Thiết kế giao diện ¿22-22 2+2 22 E221221121121112112112112211 11.2112 xe 15

3 Sự liên kết của các dữ liệu trong chương trình . ©22©22©2s+2s+zx+zxscse2 17

3.2 T6 chite thur MUC .cecceccccseceesesesecscsesesecsesesesuesesecscsesesusecstsuscacsesesecacstsnsnsatesacees 17 4 Thuật toan churong trim wo ccc cece ceceeseeseeseessesseneescesaeaeeeceeaeeaeeaeenaeeaetaeeneeeaes 18

Trang 7

2.2 Nhược điểm - + St E3 S8 2E955511121111111511111115111111121111111211 111.11 xe 25

2.3 Hướng phát triên 2-2222 +¿+EE+2EE+EE2SEEEEEE2E122127112112112211211211 22c 25

DANH MỤC HÌNH ẢNH

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 8: Giao diện chọn nguyên liệu nấu ăn 19

DANH MỤC BANG BIEU

Trang 8

Trong những năm gần đây, xu hướng tự nấu ăn tai nhà đã trở thành một trào lưu

phô biến trên khắp thế giới Một trong những lý do chính khiến nhiều người

chọn nấu ăn tại nhà là tiết kiệm chỉ phí Vì chúng ta có thể lựa chọn các nguyên

liệu tươi ngon với giá rẻ hơn so với khi đi ăn ngoài và nó còn tốt cho sức khỏe vì ta sẽ kiểm soát được lượ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 ta hơn so với việc đặt món ăn hoặc mua đỗ ăn sẵn tại cửa hàng

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ực tế và xu hướng hiện tại, nhóm chúng em đã quyết định lựa

chon dé tai “Phan 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 9

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 Pham 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 10

B NỘI DUNG

1 Cơ sở lý thuyết

1.1 Ngôn ngữ lập trình Python

Python là một ngôn ngữ lập trình bậc cao, hướng đối tượng được phát triển bởi

Guido Van Rossum vào năm 1989 và ra mắt lần đầu vào năm 1991 Python là

ngôn ngữ thường được sử dụng để phát triển trang web và phần mềm, tự động

hóa tác vụ, phân tích dữ liệu và trực quan hóa dữ liệu Một trong những lợi thế

lớn nhất của Python là nó có nhiều lựa chọn thư viện và #amework được sử

dụng cho mọi thứ từ trực quan hóa dữ liệu, học máy, khoa học đữ liệu, xử lý

ngôn ngữ tự nhiên và phân tích dữ liệu phức tạp 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 tich hop (IDE) cua Microsoft Nó được sử dụng để phát triển chương trình máy tinh 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 lập 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 đữ liệu và viết chương trình, Nhóm chúng em đã tham khảo và sử dụng một số thư viện sau: 1.3.1 Module trong thư viện Flet:

- UserControl

User Control là một lớp (class) được định nghĩa để tạo ra các điều khiển (controls) giao diện người dùng tùy chỉnh như là các nút bam, 6 nhập liệu, 6 chọn màu, ô chọn ngày tháng Nó cho phép người đù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 10

Trang 11

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 để tạo ra các đối tượng chứa các User Control Cac Container 1a cdc panel, frame, groupbox hoac cac container tùy chỉnh khác Container cho 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 điện người dùng trở nên dễ dang hon

- 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 tng dung cua minh

Trang 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 tinh value dé 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á tri cua FontWeight có thể là các giá trị sau: W_ 100, W_200,W_300,W_400,W_ 500, W_ 600, W_ 700, W_ 800, và WB_900

- ElevatedButton

La 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 bang 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 loai 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

12

Trang 13

- 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 dé 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ư

mau sac, d6 cao va 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 đữ 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ý

dtr ligu, data pipe, API nhanh va rat hiéu qua

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ữ liệu trong hệ sinh thái Big Data Trong thư viện Polars, cột được định dạng theo chuân Arrow va được biêu diễn bởi các đối tuong pl.Series Mỗi

đối tượng pl.Serles 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ữ liệu khác

Ư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 14

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

No-Bake | ["1 c firmly packed brown | ["In a heavy 2-quart | www.cookbooks.co | ["brown Nut sugar", "1/2 c evaporated | saucepan, mix brown | m/Recipe- sugar", "milk",

Cookies milk” | sugar, nuts ] Details.aspx?id=448 | “vanilla ]

1 | Jewell ["L small jar chipped beef, | ["Place chipped beef | www.cookbooks.co | ["beef", Ball'S cut up” | on bottom of .] m/Recipe- “chicken

Chicken Details.aspx?id=699 | breasts”, .]

2 | Creamy ["2 (16 oz.) pkg frozen | ["In a slow cooker, | www.cookbooks.co | ["frozen corn",

ingredients ] Details.aspx?id=105

2.2 Xử lý dữ liệu

Do dữ liệu được thu thập về trên mạng quá lớn (cỡ 2,6 triệu công thức ~

2,5GB) nên dữ liệu đã được lọc xuống thành 100 công thức vì mục đích thử nghiệm

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 dé lọc ra nhữ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ở

lai thi sé chay file csv đó dé hiện lên những công thức đã lưu cho người dùng

14

Ngày đăng: 23/08/2024, 15:34

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

TÀI LIỆU LIÊN QUAN

w