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

báo cáo thực hành lập trình trực quan đề tài phần mềm đề xuất món ăn cho thực đơn mỗi ngày

26 0 0
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 đề Phần mềm đề xuất món ăn cho thực đơn mỗi ngày
Tác giả Vũ Đức Trường, Lê Ngọc Hưng, Huỳnh Đăng Quang, Lê Khai Trí
Người hướng dẫn Nguyễn Tấn Toàn
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh, Trường Đại học Công nghệ Thông tin, Khoa Công nghệ Phần mềm
Chuyên ngành Lập trình trực quan
Thể loại Báo cáo thực hành
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 26
Dung lượng 3,02 MB

Nội dung

LỜI MỞ ĐẦULời đầu tiên, chúng em xin chân thành gửi lời cảm ơn đến thầy Nguyễn Tấn Toàn, người đã nhiệt tình giúp đỡ, hướng dẫn và định hướng cho nhóm chúng em trong suốt quá trình thực

Trang 1

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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC HÀNH Môn: Lập trình trực quan

Đề tài: Phần mềm đề xuất món ăn cho thực đơn

Lê Khai Trí - 21521565

TP.HCM, ngày 14 tháng 01 năm 2023

Trang 2

LỜI MỞ ĐẦU

Lời đầu tiên, chúng em xin chân thành gửi lời cảm ơn đến thầy Nguyễn Tấn Toàn, người đã nhiệt tình giúp đỡ, hướng dẫn và định hướng cho nhóm chúng em trong suốt quá trình thực hiện đồ án này

Trong xã hội ngày nay, các ứng dụng tin học đang ngày càng phát triển và được ứng dụng trong rất nhiều lĩnh vực từ kinh tế đến khoa học xã hội và đời sống hằng ngày cũng không là ngoại lệ, việc sử dụng các ứng dụng Công nghệ Thông tin là rất hợp lý và cần thiết, nhằm nâng cao chất lượng cuộc sống của mỗi

cá nhân Trên cơ sở đó, nhóm em tạo ra phần mềm này với hi vọng nó có thể mangđến sự thuận tiện hơn trong cuộc sống cho người dùng, đồng thời chúng em cũng

có cơ hội ứng dụng các kiến thức học được ở môn Lập trình trực quan

Cuối cùng, vì còn hạn chế về năng lực và kinh nghiệm làm phần mềm, sản phẩm của chúng em khó có thể tránh khỏi những thiếu sót Kính mong nhận được những góp ý của thầy

Mục lục

2

Trang 3

Chương 1 5

TỔNG QUAN 5

1.1 Hiện trạng và yêu cầu thực tế 5

1.2 Giới thiệu ứng dụng 5

1.3 Quy trình thực hiện dự án 5

Chương 2 6

THIẾT KẾ GIAO DIỆN VÀ CÁC CHỨC NĂNG 6

2.1 Cửa sổ đăng nhập 6

2.1.1 Trang đăng nhập 6

2.1.2 Trang đăng ký 8

2.2 Cửa sổ màn hình chính 9

2.2.1 Trang Món ăn 10

2.2.2 Trang Đề xuất món 14

2.2.3 Trang Thống kê 16

2.2.4 Trang Đốt cháy calo 17

2.2.5 Trang Tài khoản 20

a) Hồ sơ 20

b) Đổi mật khẩu 21

c) Gửi phản hồi 22

Chương 3 23

KỸ THUẬT XỬ LÍ 23

3.1 Sử dụng class DataProvider 23

3.2 Sử dụng class FoodDays 23

3.3 Sử dụng class NotEmptyValidationRule 24

3.4 Sử dụng các Class trong Model1 25

3.5 Sử dụng Frame để chuyển trang 25

3.6 Sử dụng tham số truyền vào để tương tác với các đối tượng khác nhau 25

Chương 4 27

CÁC HÀM CÀI ĐẶT VÀ 27

Trang 4

CÔNG NGHỆ 27

4.1 Các công nghệ sử dụng 27

4.1.1 Ngôn ngữ lập trình C# 27

4.1.2 .NET Framework 27

4.1.3 SQL Server 28

4.1.4 Các NuGet Packages 29

a) Entity Framework 29

b) LiveCharts 29

c) Material Design In XAML Toolkit 29

d) WPF Animated GIF 30

e) WPF Behaviors 30

f) WPF Interactivity 30

4.2 Các hàm xử lý chính 30

4.2.1 Giải thuật đề xuất món ăn trong ngày 30

4.2.2 History Page 37

4.2.3 Giải thuật tính thời gian cho từng bài tập 42

Chương 5 44

TỔNG KẾT 44

5.1 Kết quả đạt được 44

5.2 Hạn chế 44

5.3 Hướng phát triển 44

5.4 Bảng phân công công việc 45

TÀI LIỆU THAM KHẢO 47

1 Dữ liệu của Database: 47

2 Thiết kế giao diện: 48

3 Xử lí số liệu: 49

4

Trang 5

Chương 1 TỔNG QUAN

1.1 Hiện trạng và yêu cầu thực tế

Hôm nay ăn gì? Một câu hỏi không khó, nhưng ít nhiều vẫn khiến chúng ta suy nghĩ Để bữa ăn tiếp theo không gây nhàm chán, nhưng vẫn cung cấp đủ các thành phần dinh dưỡng đã trở thành bài toán lâu đời cho người nội trợ trong gia đình nói chung cũng như sinh viên đang sống tự lập nói riêng Giải quyết bài toán này đã trở thành nhu cầu cấp thiết khi con người đang tiếp xúc với tập các món ăn ngày càng đa dạng bới khả năng dễ dàng tiếp cận với nguồn nguyên liệu phong phú cũng như vô vàn các công thức chế biến được hướng dẫn trên không gian mạng

Nắm bắt được vấn đề nan giải trên, nhóm chúng em đã cho ra đời ứng dụng

đề xuất món ăn này, với mục tiêu đưa ra những gợi ý phù hợp nhất, đáp ứng nhu cầu thực đơn hằng ngày cho người sử dụng mà không cần quá nhiều thời gian, công sức cho việc suy nghĩ, lựa chọn

1.2 Giới thiệu ứng dụng

Hôm nay ăn gì? là phần mềm gợi ý cho người dùng những món ăn phù

hợp nhất dựa trên nhiều cách đề xuất khác nhau cho các bữa sáng, trưa, tối, và đi kèm là công thức chế biến cho các món ăn đó Đồng thời, ứng dụng sẽ tính toán lượng calo đã nạp vào dựa trên thực đơn đã chọn, giúp người dùng dễ dàng kiểm soát lượng thức ăn tiêu thụ cho phù hợp với chế độ ăn của mình trong ngày Cùng với đó, một danh sách các món đã ăn trong 7 ngày trước sẽ được lưu lại nhằm phục vụ mục đích quản lý cho người sử dụng Bên cạnh đó, có một tính năng nhỏ kèm theo giúp tính toán thời gian tập luyện để đốt cháy một lượng calo được nhập theo yêu cầu

1.3 Quy trình thực hiện dự án

- Xác định các tính năng, thông tin đầu vào, đầu ra của mỗi tính năng

- Thiết kế giao diện phần mềm

- Viết mã và phát triển phần mềm

- Bảo trì, nâng cấp, sửa chữa

Trang 6

Chương 2 THIẾT KẾ GIAO DIỆN VÀ CÁC

Trang 8

o Mô tả: người dùng đăng nhập bằng số điện thoại và mật khẩu đã được đăng

kí Nếu quên mật khẩu đã được đăng kí, bấm nút “Quên mật khẩu” để chuyển đến màn hình Quên mật khẩu Nếu chưa có tài khoản, bấm nút

“Đăng kí” để đăng kí tài khoản mới

2.1.2 Màn hình đăng ký

o Giao diện chức năng:

8

Trang 10

o Mô tả: Người dùng nhập số điện thoại, mật khẩu, email, tên, họ và chọn giới tính Sau đó bấm đăng kí để đăng kí tài khoản mới Sau khi bấm đăng kí, người dùng sẽ được chuyển đến màn hình xác thực OTP bằng số điện thoại.

2.1.3 Màn hình xác thực OTP

o Giao diện chức năng:

10

Trang 12

o Mô tả: Ứng dụng sẽ gửi một mã OTP đến số điện thoại được đăng kí, người dùng nhập mã OTP gồm 6 số vào ô trống và bấm “Xác thực” Nếu không nhận được mã OTP, người dùng đợi 60 giây và bấm “Gửi lại” Sau khi bấm “Xác thực”, nếu đăng kí thành công, người dùng sẽ được chuyển đến màn hình thông báo đăng kí thành công.

2.1.4 Màn hình thông báo đăng kí thành công

o Giao diện chức năng:

o Mô tả:

2.2 Cửa sổ màn hình chính

- Chức năng cơ bản: chuyển đổi giữa các trang

12

Trang 13

Tiếp theo, ta đề xuất các món phụ Đầu tiên là thức uống cho ba bữa

ăn Các món phụ chỉ được đề xuất và thêm vào danh sách đề xuất nếu tổng lượng kcal của ngày đó cộng với kcal món được đề xuất chưa vượt tổng kcal khuyến nghị của một ngày

Trang 14

Tiếp theo, ta đề xuất món ăn vặt cho hai bữa trưa và tối Cũng giống như đề xuất thức uống, các món ăn vặt chỉ được đề xuất nếu phù hợp với tổng kcal một ngày.

4.2.2 History Page

Khai thác dữ liệu từ SQL

Đầu tiên để thuận tiện cho việc khai thác dữ liệu ta tạo một property tên UserHistory để lưu toàn bộ những dòng dữ liệu có mã UserId của người dùng hiện tại

44

Trang 15

Trong hàm get của UserHistory có sử dụng 2 hàm là refresh_History() và refresh_UserHistory().

Hàm refresh_History() sẽ đảm nhiệm việc kiểm tra xem dữ liệu trên SQL có thay đổi hay không Nếu có thì sẽ cập nhật lại dữ liệu trên app

Hàm refresh_UserHistory() sẽ cập nhật lại dữ liệu của UserHistory Nó đượcgọi sau khi hàm refresh_History() trả về giá trị true (tức là SQL có sự thay đổi) Đồng thời dữ liệu cũng sẽ được sắp xếp theo ngày ăn

Như vậy 2 hàm trên giúp tránh được việc phải tải lại dữ liệu khi SQL không

có cập nhật mới

Xây dựng cấu trúc dữ liệu đặc thù

Chức năng History liệt kê thông tin lịch sử ăn trong 7 ngày gần nhất Vì vậy,tạo một cấu trúc lưu toàn bộ dữ liệu trong một ngày là điều cần thiết Struct HistoryInDay sẽ lưu toàn bộ thông tin các món ăn trong một ngày, ngày ăn, và hỗ trợ luôn hàm tính Kcal trong buổi ăn

Trang 17

Sắp xếp và lưu dữ liệu

Hàm GetHistory() return một mảng HistoryInDay tương ứng với lịch sử ăn 7ngày gần nhất Hàm sẽ duyệt qua toàn bộ dữ liệu trong UserHistory theo thứ tự từcuối đến đầu (Vì dữ liệu đã được sắp xếp tăng dần theo ngày ăn) để đảm bảo có thểlấy dữ liệu 7 ngày ăn mới nhất Sau đó sắp xếp các món đã ăn vào biếnHistoryInDay của ngày đó dựa theo thuộc tính meal (3 là sáng, 4 là trưa, 5 là tối).Như vậy ta đã có toàn bộ dữ liệu cần thiết cho phần GUI sử dụng để hiển thị racho người dùng

Trang 19

Ngoài ra hàm CompareDate() sẽ giúp so sánh 2 ngày Nếu hàm trả về -1 thì tức

là ngày a trước ngày b, trả về 0 ứng với ngày a trùng với ngày b, và trả về 1 ứng với ngày a nằm sau ngày b

4.2.3 Giải thuật tính thời gian cho từng bài tập

Sau khi nhấn “Tính”, lượng kcal trong textbox được lưu vào biến _totalCalo,kết hợp với trường Kph (lượng kcal tiêu hao trong mỗi giờ) trong đối tượng exercise được chọn, ta dễ dàng tính được khoảng thời gian cần thiết để tiêu thụ lượng kcal được nhập với bài tập này

Trang 21

Chương 5 TỔNG KẾT

5.

5.1 Kết quả đạt được.

- Hoàn thành tất các các chức năng của phần mềm đã đặt ra :

+ Cung cấp một giao diện để người dùng dễ dàng thao tác

+ Cung cấp danh sách 60 món ăn ban đầu, cùng cách chế biến để người dùng tham khảo cho bữa ăn, các bài tập để tăng cường sức khỏe, đốt cháy calo thừa

+ Cung cấp cho người dùng một công cụ để thành lập, chỉnh sửa một bữa ăn cho bản thân, tập các bài thể dục một cách trực quan, khoa học

+ Đề xuất món ăn hợp lí trong một ngày

+ Ghi lại nhật ký, số liệu thống kê của các bữa ăn

- Học được cách thức, quá trình thực hiện một dự án phần mềm

- Hiểu và ứng dụng cách sử dụng các công nghệ, thư viện mới giúp ích cho việc lập trình ứng dụng

- Tích góp được nhiều kinh nghiệm trong việc giải quyết các vấn đề liên quan trong quá trình thực hiện một dự án

5.2 Hạn chế.

- Chỉ có thể sử dụng dữ liệu khi máy người dùng có phần mềm SQL Server

- Lượng kcal, các thông số dinh dưỡng của các món ăn chỉ là trung bình, mang tính chất tham khảo

- Chưa thể cập nhật phần mềm trực tiếp thông qua mạng

Trang 22

- Nâng cấp phần mềm để người dùng có thể cập nhật trực tiếp trên ứng dụng

mà không cần phải tải lại phần mềm

5.4 Bảng phân công công việc

STT Người thực hiện Công việc Mức độ hoàn thành

1 Vũ Đức Trường - Làm phần

MainWndow , FoodPage và các thành phần trong SubFoodPage , hỗ trợ làm

RecommendPage , quên mật khẩu

- Tạo Model liên kết database

- Phân chia công việc cho nhóm

- Viết báo cáo đồ án file word

- Thêm dữ liệu phần Exercise trong SQL

- Thêm hình ảnh phần Exercies

- Tạo database

100%

52

Trang 23

3 Lê Ngọc Hưng - Làm phần

LoginWindow , RecommendPage

- Thêm dữ liệu phần Food vào SQL

- Thêm hình ảnh vàoFolder Food

- Viết báo cáo đồ án file word

- Tạo database

100%

4 Huỳnh Đăng Quang - Làm phần

RegisterPage , AccountPage , Logic phần HistoryPage

- Thêm dữ liệu phần Food vào SQL

- Thêm hình ảnh vàofolder Food

- Làm powerpoint báo cáo đồ án

- Tạo database

100%

Trang 24

TÀI LIỆU THAM KHẢO

1 Dữ liệu của Database:

a) Thức ăn:

nha-ngon-nhu-ngoai-hang-c162a471421.html

https://eva.vn/bep-eva/cach-lam-ca-hoi-ap-chao-don-gian-tai-5-sao-ngay-tai-nha/

https://bloganchoi.com/cach-lam-cocktail-tom-chuan-nha-hang-rau-cu

https://beptruong.edu.vn/day-nau-an/mon-an-ngon/sup-ngheu-20130615i817414/

https://vietgiaitri.com/che-bien-salad-ca-com-mon-an-che-bien-tu-ca-ngu-ngam-dau/

https://chacanhatrangngoctan.com/mon-ngon-tu-ca-tuoi/cac-https://daohaisan.vn/blogs/mon-ngon/cach-che-bien-hau-songhttps://www.dienmayxanh.com/vao-bep/3-cach-lam-ca-tre-nuong-thom-lung-cuc-ngon-hap-dan-don-gian-05053

ngon-mieng-vua-bo-duong-hang-dau-a204.html

https://haisanquangphong.com/news/ca-moi-kho-mon-an-vua-https://daohaisan.vn/blogs/mon-ngon/cach-lam-goi-hai-sanhttps://tinhhoaquenha.vn/cach-kho-ca-trich-ngonhttps://www.bachhoaxanh.com/kinh-nghiem-hay/cach-lam-com-rang-thap-cam-vua-dep-mat-lai-ngon-mieng-1372738https://www.dienmayxanh.com/vao-bep/3-cach-lam-com-nam-thom-bui-ngon-mieng-don-gian-01508

1611.htm

https://toplist.vn/top-list/mon-an-ngon-nhat-lam-tu-com-ngon-ai-cung-lam-duoc.html

https://www.nguyenkim.com/top-15-mon-an-vat-don-gian-sieu-https://slism.com/calorie/101113/

54

Trang 25

https://www.bachhoaxanh.com/kinh-nghiem-hay/bang-tong-https://www.precisionnutrition.com/encyclopedia

App EasyMenu Balanced Meal Plannerb) Thể dục:

1369243.htm

https://tuoitre.vn/chay-tren-may-tap-ta-dot-bao-nhieu-calories-ngay-dot-nhieu-calories-hon-ca-gym-neu-ban-biet-bi-quyet-nay-2799293

https://www.webtretho.com/f/nhat-ky-lam-dep/gap-bung-moi-dat-giam-bao-nhieu-calo-va-co-giam-can-giam-mo-khong/

https://vinmec.com/vi/tin-tuc/thong-tin-suc-khoe/song-khoe/hit-#:~:text=Theo%20nghi%C3%AAn%20c%E1%BB%A9u%20v

%E1%BB%81%20vi%E1%BB%87c,th%E1%BB%83%20l

%C3%AAn%20%C4%91%E1%BA%BFn%2048%20calo

khong.html#:~:text=Khi%20l%E1%BA%AFc%20v

https://www.wheystore.vn/lac-vong-co-giam-mo-bung-%C3%B2ng%2C%20c%C6%A1%20th%E1%BB%83,ti

%C3%AAu%20th%E1%BB%A5%20kho%E1%BA%A3ng

%20700%20calo

https://suatangco.vn/plank-dot-bao-nhieu-calo-co-the-giam-canhttps://nhathuoclongchau.com.vn/bai-viet/goi-y-cac-bai-tap-dot-calo-nhieu-nhat-56268.html#:~:text=Squat%20l

%C3%A0%20m%E1%BB%99t%20b%C3%A0i%20t

%E1%BA%ADp,th%E1%BB%83%20%C4%91%E1%BB

%91t%20ch%C3%A1y%2015%20calo

2 Thiết kế giao diện:

- App Infinity Health IOS : https://play.google.com/store/apps/details?id=com.droidinfinity.healthplus&hl=en&gl=US

Trang 26

https://healthvietnam.vn/thu-vien/tai-lieu-56

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

HÌNH ẢNH LIÊN QUAN

5.4. Bảng phân công công việc - báo cáo thực hành lập trình trực quan đề tài phần mềm đề xuất món ăn cho thực đơn mỗi ngày
5.4. Bảng phân công công việc (Trang 52)

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w