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

56 0 0
Tài liệu đã được kiểm tra trùng lặp
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

Đ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

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ÀNHMôn: Lập trình trực quan

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

GVHD: Nguyễn Tấn Toàn

Nhóm:

Vũ Đức Trường - 21520507Lê Ngọc Hưng - 21520889Huỳnh Đăng Quang - 21521336Lê 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

Trang 3

2.2.4 Trang Đốt cháy calo 17

2.2.5 Trang Tài khoản 20

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

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

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ÁCCHỨC NĂNG

2.1 Các màn hình quản lý tài khoản

Chương 2 1.2

2.1.1 Màn hình đăng nhập

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

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:

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:

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.

Trang 43

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 44

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

Trang 45

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 47

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 49

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 51

Chương 5 TỔNG KẾT

+ 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 52

- 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ành1 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 - Tạo database- Làm readme.md

2 Lê Khai Trí - Làm phần LoginWindow , CalorieBurnPage , giao diện của HistoryPage và cácthành phần trong SubCalorieBurn- 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%

Trang 53

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ào

Folder Food- Viết báo cáo đồ án

file word- Tạo database

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ào

folder Food- Làm powerpoint

báo cáo đồ án- Tạo database

100%

Trang 54

TÀI LIỆU THAM KHẢO

1 Dữ liệu của Database:

a) Thức ăn:

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

Trang 55

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

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 56

3 Xử lí số liệu:

a) Lượng kcal một ngày: cap-bao-nhieu-calo-moi-tot-cho-co-the-s195-n25299#:~:text=%2D%20L%C6%B0%E1%BB%A3ng%20calo%20cho%20n%E1%BB%AF%20gi%E1%BB%9Bi,tu%E1%BB%95i%20b%E1%BA%B1ng%20n%C4%83m)%20%2B%205.

https://medlatec.vn/tin-tuc/1-ngay-can-cung-b) Thành phần dinh dưỡng: tieng-viet/dieu-duong/nhu-cau-ve-dinh-duong-khau-phan-an-dieu-duong-cac-roi-loan-ve-chuc-nang-tieu-hoa

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

Tài liệu cùng người dùng

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

Tài liệu liên quan