




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
II頁緒論研究目的及意義經(jīng)濟(jì)急速發(fā)展的當(dāng)下,人們的生活水平已經(jīng)得到極大的提升,伴隨生活方式的改變,人們健康意識(shí)也不斷提高,健康管理已經(jīng)成為現(xiàn)代社會(huì)的一個(gè)重要議題。通過科學(xué)的健康管理,可以預(yù)防和治療許多疾病,提高生活質(zhì)量,延長壽命。然而,由于現(xiàn)代生活的快節(jié)奏和繁忙程度,人們往往沒有足夠的時(shí)間和精力去進(jìn)行健康管理,同時(shí)也缺乏相關(guān)理論和知識(shí)學(xué)習(xí),導(dǎo)致許多人出現(xiàn)亞健康問題[1]。為了解決這個(gè)問題,健康管理APP應(yīng)運(yùn)而生。健康管理APP可以幫助人們更方便地進(jìn)行健康管理,實(shí)現(xiàn)健康生活方式的科學(xué)化和個(gè)性化。它可以提供健康數(shù)據(jù)收集功能。此外,健康管理APP還可以通過社交網(wǎng)絡(luò)和健康教育等方式,提高人們的健康意識(shí)和健康素養(yǎng)。當(dāng)前,健康管理APP已經(jīng)成為移動(dòng)互聯(lián)網(wǎng)領(lǐng)域的熱門應(yīng)用之一。許多健康管理APP已經(jīng)上線,并得到了廣泛的用戶認(rèn)可和使用。在未來,隨著移動(dòng)互聯(lián)網(wǎng)的普及和技術(shù)的不斷發(fā)展,健康管理APP將會(huì)成為人們健康管理的重要工具之一,本文旨在開發(fā)一款健康管理APP,實(shí)現(xiàn)用戶身體數(shù)據(jù)采集、身體指標(biāo)分析、飲食管理、運(yùn)動(dòng)計(jì)劃等多個(gè)功能。具體來說,本文的研究意義在于提供一種便捷、快速的健康管理方式,健康管理APP可以隨時(shí)隨地記錄用戶的身體健康數(shù)據(jù),提供科學(xué)的健康建議和服務(wù),方便用戶對(duì)自身健康狀況進(jìn)行管理,制定合理的健康計(jì)劃,從而更好地管理自己的健康。其發(fā)展和應(yīng)用具有重要的意義。本文的研究成果可以為移動(dòng)健康管理領(lǐng)域的發(fā)展提供借鑒和參考。國內(nèi)外研究現(xiàn)狀目前,國內(nèi)外已經(jīng)涌現(xiàn)出許多的健康管理類應(yīng)用程序,其中可用的移動(dòng)健康A(chǔ)PP發(fā)展更是迅速[2]。這些APP的功能豐富,操作簡便,廣受用戶歡迎,同時(shí),國內(nèi)外健康A(chǔ)PP的發(fā)展各有特點(diǎn)。國內(nèi)的健康管理APP主要包括keep、藥智網(wǎng)、康康醫(yī)、微醫(yī)、華為健康生活、咕咚、平安健康等。這些APP都提供了身體健康數(shù)據(jù)的采集和管理、身體指標(biāo)的分析、健康建議的提供、飲食管理、運(yùn)動(dòng)計(jì)劃等功能。keep是一款智能健康管理APP,提供多樣化的健身課程、個(gè)性化的健身計(jì)劃、社交化的健身體驗(yàn)、數(shù)據(jù)化的健康管理、豐富的健康知識(shí)[3];藥智網(wǎng)提供了基于健康檔案的健康管理服務(wù),用戶可以將自己的身體健康數(shù)據(jù)存儲(chǔ)在健康檔案中,實(shí)現(xiàn)健康信息的全面管理;康康醫(yī)通過智能健康監(jiān)測設(shè)備采集用戶的健康數(shù)據(jù),提供多維度的健康監(jiān)測和服務(wù);微醫(yī)提供了在線醫(yī)療咨詢、在線藥品購買等功能,為用戶提供全方位的健康服務(wù);華為健康生活、咕咚、平安健康等以服務(wù)時(shí)間、地點(diǎn)相對(duì)自由的優(yōu)點(diǎn)占絕對(duì)優(yōu)勢(shì),給人們的生活帶來了更多的便利,尤其是慢病患者和居家生活的人,同時(shí)界面人性化設(shè)計(jì),功能也越來越多,具有幫助運(yùn)動(dòng)和飲食管理功能。國外的健康管理APP主要包括MyFitnessPal、Fitbit、LoseIt!等。這些APP同樣提供了身體健康數(shù)據(jù)的采集和管理、身體指標(biāo)的分析、飲食管理、運(yùn)動(dòng)計(jì)劃等功能。MyFitnessPal可以幫助用戶追蹤飲食和運(yùn)動(dòng)情況,提供定制的飲食計(jì)劃和健身計(jì)劃[4];Fitbit則提供了多種智能健康監(jiān)測設(shè)備和APP,支持用戶對(duì)身體健康數(shù)據(jù)的實(shí)時(shí)監(jiān)測和管理[5];LoseIt!通過身體數(shù)據(jù)的分析和健康建議的提供,幫助用戶更好地掌控自己的健康狀況[6]。這些健康管理APP雖然在功能和操作上有所不同,但都具有以下特點(diǎn):(1)提供身體健康數(shù)據(jù)的采集和管理功能,支持多種身體健康數(shù)據(jù)的記錄和管理[7]。(2)提供飲食管理、運(yùn)動(dòng)計(jì)劃等多種功能,幫助用戶更好地管理自己的健康。(3)通過移動(dòng)設(shè)備和互聯(lián)網(wǎng)的技術(shù)手段,實(shí)現(xiàn)健康管理的便捷、快速和個(gè)性化[8]。雖然目前已經(jīng)有很多健康管理APP,但是每個(gè)APP都有其特點(diǎn)和局限性。以keep為例,雖廣受用戶的歡迎,但也存在部分內(nèi)容需要付費(fèi)、廣告過多、系統(tǒng)卡頓等問題。因此,本文旨在開發(fā)一款全新的健康管理APP,綜合各種優(yōu)秀APP的功能和特點(diǎn),開發(fā)出一款功能豐富、操作簡便、個(gè)性化的健康管理APP,以滿足不同用戶的需求。研究的主要內(nèi)容本文在充分調(diào)查和研究廣大年輕人的健康管理需求以及市場上趨勢(shì)般的健康管理類軟件的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)一種不僅可以滿足廣大用戶的正常健康需求,還充分簡單,好用的健康管理APP。具體的研究內(nèi)容有可行性分析,系統(tǒng)設(shè)計(jì),APP的開發(fā)和實(shí)現(xiàn)和軟件測試。系統(tǒng)分析系統(tǒng)可行性分析市場可行性分析在我國,隨著人們健康意識(shí)的提高和生活水平的不斷提高,健康管理APP市場正在逐步發(fā)展壯大。中國的年輕人和中年人在健康意識(shí)方面比較高,他們需要一個(gè)可以隨時(shí)隨地管理自己健康的工具,因此健康管理APP的需求非常大。同時(shí),隨著人口老齡化的加劇,老年人對(duì)健康管理APP的需求也在逐步增加。隨著國家對(duì)健康的重視和健康產(chǎn)業(yè)的發(fā)展,政府對(duì)健康管理產(chǎn)業(yè)非常重視,推出了一系列的政策和措施來促進(jìn)健康管理產(chǎn)業(yè)的發(fā)展。這也為健康管理APP在中國市場上的發(fā)展提供了良好的環(huán)境。目前市場上已經(jīng)出現(xiàn)了大量的健康管理APP,但質(zhì)量卻是良莠不齊的。有的是對(duì)輸入數(shù)值的有效性認(rèn)證不足,這將會(huì)導(dǎo)致用戶記錄的信息有誤,還有的健康管理APP運(yùn)行過程中會(huì)出現(xiàn)眾多垃圾廣告,使得用戶體驗(yàn)好感度下降,除此之外還有軟件存在不合理消費(fèi),界面操作復(fù)雜等問題。綜上所述,健康管理APP在中國市場具有良好的前景,尤其是操作簡單,界面簡潔,無廣告植入免費(fèi)使用的健康管理APP可以響應(yīng)廣大用戶的需求。所以可以確定,本文將要開發(fā)的這款簡單,好用的健康管理不管是從市場需求角度,還是從功能特性上看,都有很大的發(fā)展空間。技術(shù)可行性分析技術(shù)可行性分析是對(duì)技術(shù)實(shí)現(xiàn)的成本和效益進(jìn)行評(píng)估的重要方法。在本論文中,選用了Android系統(tǒng)作為健康管理APP的客戶端系統(tǒng),前后端交互運(yùn)作,UNI-APP的主流vue.js框架與Java語言和SpringBoot框架相結(jié)合,底層則選用MySQL進(jìn)行數(shù)據(jù)存儲(chǔ)。對(duì)這些技術(shù)進(jìn)行了可行性分析。首先,選擇了Android作為客戶端。Android系統(tǒng)是目前市場占有率最高的移動(dòng)設(shè)備操作系統(tǒng)[9]。Android具有良好的兼容性和開發(fā)者友好性,可以提供豐富的用戶界面和交互體驗(yàn)[10]。其次,采用了UNI-APP作為前端技術(shù)。UNI-APP是一種多平臺(tái)的開發(fā)框架,可以讓開發(fā)者利用vue.js框架編寫代碼,并將代碼轉(zhuǎn)換為不同平臺(tái)的本地應(yīng)用程序。UNI-APP具有良好的兼容性和高效性,可以提供豐富的用戶界面和交互體驗(yàn),并且可以在不同平臺(tái)上進(jìn)行高效的代碼共享和開發(fā)。接著,我們采用Java和SpringBoot框架作為后端技術(shù)。Java是一種跨平臺(tái)的高級(jí)編程語言,具有良好的可維護(hù)性和安全性[11]。SpringBoot框架則是一個(gè)基于Spring框架的輕量級(jí)開發(fā)框架,可以快速搭建并部署Web應(yīng)用程序。這些技術(shù)的組合可以提供高效的Web應(yīng)用程序開發(fā)和部署,提高開發(fā)效率和代碼可維護(hù)性。最后,底層采MySQL。MySQL是一種開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),可以提供高效的數(shù)據(jù)存儲(chǔ)和查詢服務(wù)。MySQL具有穩(wěn)定性和可擴(kuò)展性,可以支持大量的數(shù)據(jù)存儲(chǔ)和高并發(fā)的數(shù)據(jù)查詢[12]。綜上所述,該技術(shù)方案具有可行性,可以提供高效、穩(wěn)定、安全的健康管理APP。用戶需求分析本文目標(biāo)設(shè)計(jì)的是健康管理APP,其使用對(duì)象為廣大中老年輕人,適用范圍較廣。該APP最主要的功能就是向廣大用戶提供個(gè)人的健康數(shù)據(jù)記錄和管理功能。用戶需求分析是設(shè)計(jì)健康管理APP的重要基礎(chǔ),主要從用戶的層面開始,分析用戶對(duì)APP的要求和期望。本論文從運(yùn)動(dòng)、健康管理和時(shí)間管理三個(gè)方面進(jìn)行用戶需求分析。首先,對(duì)于運(yùn)動(dòng)方面的需求,用戶希望健康管理APP能夠?yàn)槠涮峁┛茖W(xué)、全面的運(yùn)動(dòng)指導(dǎo)和監(jiān)控服務(wù)。用戶需要能夠在APP中找到合適的運(yùn)動(dòng)計(jì)劃和建議,能夠進(jìn)行個(gè)性化定制和跟蹤。此外,用戶需要能夠通過APP記錄自己的運(yùn)動(dòng)數(shù)據(jù),包括運(yùn)動(dòng)類型、時(shí)長、強(qiáng)度等,以及能夠查看歷史數(shù)據(jù)和運(yùn)動(dòng)進(jìn)展情況[13]。其次健康部分包括飲食、睡眠、心理等方面。用戶需要能夠在APP中找到相關(guān)健康知識(shí)和建議,并能夠進(jìn)行個(gè)性化定制和跟蹤。此外,用戶需要能夠通過APP記錄自己的健康數(shù)據(jù),包括血壓、心跳、BMI等,以及能夠查看歷史數(shù)據(jù)和健康狀況。最后,對(duì)于時(shí)間管理方面的需求,用戶希望健康管理APP能夠幫助其更好地管理自己的時(shí)間和生活。用戶需要能夠在App中找到時(shí)間管理的相關(guān)工具和建議,包括日程安排、提醒、時(shí)間統(tǒng)計(jì)等[14]。此外,用戶還希望能夠在APP中進(jìn)行目標(biāo)制定和跟蹤,以便更好地規(guī)劃自己的時(shí)間和生活。綜上所述,用戶對(duì)健康管理APP的需求涵蓋了運(yùn)動(dòng)、健康管理和時(shí)間管理三個(gè)方面。設(shè)計(jì)健康管理APP需要全面考慮用戶需求,提供個(gè)性化、科學(xué)化的服務(wù)和功能,以滿足用戶的健康管理需求和期望。系統(tǒng)功能性需求分析APP的主體功能本APP的主體功能主要從運(yùn)功管理,健康管理,時(shí)間管理三個(gè)方面來分析。首先是運(yùn)動(dòng)方面,是用戶的獲取運(yùn)動(dòng)數(shù)據(jù)需求。該方面有用戶運(yùn)動(dòng)步數(shù)的記錄,以及完成每天運(yùn)動(dòng)目標(biāo)的進(jìn)度展示,還有用戶消耗的熱量指數(shù)的記錄。另外就是對(duì)用戶進(jìn)行跑步,預(yù)熱,引體向上,和俯臥撐等項(xiàng)目的介紹及建議,主要采用書文的形式展現(xiàn)出來。其次是健康管理方面,對(duì)于用戶的健康管理需求,主要完成三個(gè)功能。一是針對(duì)用戶判斷自身健康的需求,該APP采用BMI指數(shù)衡量用戶健康情況。BMI指數(shù)能夠通過簡單的計(jì)算方式得出人體胖瘦的情況,因此被廣泛應(yīng)用于臨床和健康管理領(lǐng)域。用戶可以輸入自己的身高體重計(jì)算出BMI指數(shù)來判斷自己所需的健康需求,然后給出推薦食物還有該食物所含有的營養(yǎng)元素,比如:熱量,脂肪,蛋白質(zhì)等等。二是設(shè)計(jì)了一個(gè)“健康營養(yǎng)知識(shí)大全”功能,在該大全中,可以精準(zhǔn)找到用戶所需營養(yǎng)元素。三是自身健康狀態(tài)的掌握,該APP設(shè)計(jì)了身體狀態(tài)管理功能,身體狀態(tài)主要有身高、體重、血壓、心跳等數(shù)據(jù)。用戶既可以創(chuàng)建記錄和查看記錄,同樣可以對(duì)其記錄進(jìn)行刪改操作,以防止健康管理產(chǎn)生誤差,影響用戶對(duì)自身健康情況的判斷。最后是時(shí)間方面,對(duì)于用戶需要的時(shí)間管理需求,該APP采用計(jì)時(shí)和鬧鐘的功能。還有記事本功能,用戶可以在上面記錄日常運(yùn)動(dòng)飲食健康的進(jìn)展,目標(biāo),建議,注意事項(xiàng)等,也可以用來進(jìn)行日程統(tǒng)計(jì)。還有就是定時(shí)功能,為了有利于用戶進(jìn)行提醒日程安排,可以在工作日和非工作日之間進(jìn)行合理的定時(shí)安排,確保在不打擾到用戶正常作息的情況下有效規(guī)劃時(shí)間。APP的常規(guī)功能該APP所需要的常規(guī)功能如下:登錄和注冊(cè):新用戶必須先注冊(cè)再登錄到APP,可以通過輸入用戶名和設(shè)置的密碼登錄;更換頭像:用戶可以更換自己的頭像;修改密碼:用戶注冊(cè)后,可以在舊密碼輸入正確的前提下,更改為新的密碼;綁定手機(jī)號(hào):用戶可以綁定自己的手機(jī)號(hào)。系統(tǒng)用例圖通過對(duì)APP主體功能和常規(guī)功能分析,可確定該APP中有以下功能:(1)登錄注冊(cè):用戶能夠注冊(cè)APP賬號(hào),然后通過注冊(cè)的用戶名和密碼登錄到APP中;(2)查看步數(shù)和消耗熱量:用戶可以通過該APP查看每天的運(yùn)動(dòng)步數(shù),了解自己的運(yùn)動(dòng)完成進(jìn)度,以及獲取運(yùn)動(dòng)所消耗的熱量;(3)指導(dǎo)運(yùn)動(dòng)推薦:用戶可以利用該功能,對(duì)一些簡單的運(yùn)動(dòng)項(xiàng)目有一定的了解,通過圖文的形式指導(dǎo)用戶正確運(yùn)動(dòng);(4)計(jì)算BMI指數(shù):用戶可輸入自己的身高和體重計(jì)算得出自己的BMI指數(shù),并確定自己的身體健康狀態(tài);(5)獲取健康飲食推薦:用戶可根據(jù)計(jì)算出的BMI指數(shù)獲取到一份正確的健康飲食推薦,該功能會(huì)針對(duì)不同的健康狀態(tài)的用戶做出精準(zhǔn)推薦,確保給用戶帶來舒適服務(wù);(6)健康營養(yǎng)元素信息:該APP還給用戶提供了一份精確搜索功能,以確保用戶能夠正確并健康地找到自己身體想要補(bǔ)充的營養(yǎng)元素;(7)健康狀態(tài)管理:用戶可以利用該APP管理自己的身體信息記錄,并對(duì)其進(jìn)行增刪改查等操作;(8)藥物記錄管理:用戶可以記錄自己得身體出了哪些不適癥狀和治療的藥物,同時(shí)用戶也可以對(duì)此進(jìn)行刪改;(9)用戶賬號(hào)管理:用戶可以在APP上對(duì)其賬號(hào)信息進(jìn)行更換頭像,更新密碼,綁定手機(jī)號(hào)操作;(10)時(shí)間顯示:用戶可以通過該APP獲取正確的時(shí)間,方便用戶進(jìn)行時(shí)間管理;(11)鬧鐘定時(shí):用戶可以通過鬧鐘定時(shí)功能,來進(jìn)行日程安排,時(shí)間提醒;(12)記事本記錄:用戶可以將自己的想法,和具體事物安排寫到記事本中,也更方便管理時(shí)間;綜上所述,該APP的系統(tǒng)用例圖如圖2.1所示。圖2.1系統(tǒng)用例圖系統(tǒng)非功能性需求除了功能性需求,一個(gè)完整的軟件系統(tǒng)還需要考慮非功能性需求,這些需求是保證軟件系統(tǒng)穩(wěn)定、高效運(yùn)行和用戶體驗(yàn)的基礎(chǔ)。在構(gòu)建健康管理APP時(shí),為了確保其正常運(yùn)行和良好用戶體驗(yàn),需要滿足以下非功能性要求:(1)安全性:健康管理APP會(huì)保證數(shù)據(jù)庫的安全,防止用戶個(gè)人信息的泄露和丟失。(2)可維護(hù)性:健康管理APP應(yīng)該易于維護(hù),以便在必要時(shí)可以修復(fù)錯(cuò)誤或添加新功能。該應(yīng)用程序應(yīng)該具有易于維護(hù)的代碼和架構(gòu),并且應(yīng)該提供良好的文檔和幫助資源,以便維護(hù)人員能夠輕松地了解應(yīng)用程序的結(jié)構(gòu)和功能。(3)易用性:系統(tǒng)需要具備友好的用戶界面設(shè)計(jì),操作簡單易懂,易上手。系統(tǒng)設(shè)計(jì)系統(tǒng)架構(gòu)設(shè)計(jì)在系統(tǒng)的設(shè)計(jì)階段,首先要確定的是系統(tǒng)的架構(gòu)設(shè)計(jì)。系統(tǒng)架構(gòu)是進(jìn)行開發(fā)的基礎(chǔ),它對(duì)后面的代碼開發(fā)的基本框架起著指導(dǎo)作用。本系統(tǒng)選取MVC三層架構(gòu)演變來的四層架構(gòu),按照從上至下的角度,整個(gè)系統(tǒng)被劃分為View層、Controller層和Service層和Dao層。View層是視圖層,視圖層是應(yīng)用程序的用戶界面,可以理解為用戶看得見的界面,用戶可以通過界面上的組件和后端進(jìn)行數(shù)據(jù)交互。在該項(xiàng)目中,APP客戶端就是系統(tǒng)的View層。Controller層是控制器層,用于接收并處理從View層傳遞過來的HTTP請(qǐng)求,然后再返回到View層。Service層是業(yè)務(wù)邏輯層,用于處理項(xiàng)目中的業(yè)務(wù)邏輯,Controller層就是調(diào)用Service層的接口來處理不同的HTTP請(qǐng)求。Dao層是數(shù)據(jù)訪問層,用來直接交互底層數(shù)據(jù)庫,在Service層,用戶請(qǐng)求處理完之后,就是調(diào)用Dao層接口來修改數(shù)據(jù)庫中的數(shù)據(jù)信息,確保其一致性。另外,View層的前端與后端的數(shù)據(jù)傳遞都是以json字符串形式進(jìn)行傳輸。本系統(tǒng)的后端采用SpringBoot框架內(nèi)置的Tomcat服務(wù)器作為應(yīng)用服務(wù)器,用于接收和處理客戶端發(fā)來的HTTP請(qǐng)求[15]。圖3.1為系統(tǒng)架構(gòu)設(shè)計(jì)圖。圖3.1系統(tǒng)架構(gòu)圖系統(tǒng)功能模塊設(shè)計(jì)在上文的需求分析完成之后,就可以確定該具有的功能模塊,然后將其按照不同的模塊進(jìn)行劃分,本系統(tǒng)分成注冊(cè)登錄、運(yùn)動(dòng)管理、健康管理、藥物記錄、健康狀態(tài)、用戶賬號(hào)和時(shí)間管理等7個(gè)模塊,系統(tǒng)的總體功能模塊圖如圖3.2所示。圖3.2系統(tǒng)功能模塊圖 注冊(cè)登錄模塊本系統(tǒng)包含一個(gè)用戶注冊(cè)登錄操作的模塊。在該系統(tǒng)中,每個(gè)用戶名只能與一個(gè)用戶賬號(hào)進(jìn)行一對(duì)一的綁定。(1)用戶注冊(cè)新用戶需要先進(jìn)行賬號(hào)的注冊(cè)才可以登錄該APP,然后再進(jìn)行一系列的操作。用戶注冊(cè)分為兩個(gè)部分,即用戶名和密碼的設(shè)置,用戶可以輸入任意的用戶名,但是密碼的設(shè)置必須按照一定的規(guī)則才可以。只有當(dāng)用戶名和密碼都不為空且密碼符合規(guī)則才會(huì)把注冊(cè)請(qǐng)求發(fā)送到服務(wù)端進(jìn)行具體操作。服務(wù)端會(huì)先對(duì)用戶名進(jìn)行數(shù)據(jù)庫檢索,判斷它是否被注冊(cè),若已注冊(cè),則會(huì)返回提示信息,讓用戶重新操作。反之可以完成正常操作,然后再將用戶名和密碼添加到數(shù)據(jù)庫表中。注冊(cè)功能的具體流程如圖3.3所示。圖3.3用戶注冊(cè)流程圖(2)用戶登錄用戶通過用戶名和密碼進(jìn)行登錄,在保證數(shù)據(jù)沒有空值的時(shí)候,前端才會(huì)把用戶的登錄請(qǐng)求發(fā)送到后端。后端的底層數(shù)據(jù)庫會(huì)對(duì)用戶名檢索,確定該用戶名已被注冊(cè)。若輸入的用戶名沒有被注冊(cè),則無法完成登錄;如果用戶名輸入正確,后端會(huì)將密碼與數(shù)據(jù)庫中該用戶名所對(duì)應(yīng)的密碼進(jìn)行比較,一致則成功登錄。登錄功能的具體流程如圖3.4所示。圖3.4用戶登錄流程圖運(yùn)動(dòng)管理模塊該模塊包含了健康管理APP中所有關(guān)于運(yùn)動(dòng)方面的功能。由于健康管理對(duì)于運(yùn)動(dòng)的要求不大,本文主要從健康運(yùn)動(dòng)的角度來設(shè)計(jì)該模塊的功能。主要是有運(yùn)動(dòng)步數(shù)的測量,以及對(duì)應(yīng)消耗的熱量,還有就是針對(duì)一些常見運(yùn)動(dòng)項(xiàng)目進(jìn)行方法的介紹和推薦,這里主要就運(yùn)動(dòng)步數(shù)的測量模塊進(jìn)行描述。用戶開始運(yùn)動(dòng)并進(jìn)行計(jì)步,系統(tǒng)會(huì)校驗(yàn)時(shí)間是否合理,并給出提示信息,直到停止運(yùn)動(dòng)為止。然后,停止計(jì)步并記錄步數(shù),最后進(jìn)行數(shù)據(jù)的分析和保存。流程圖如圖3.5所示。圖3.5運(yùn)動(dòng)步數(shù)測量功能流程圖健康管理模塊該APP的健康管理功能主要包括兩個(gè)方面,一是BMI指數(shù)的計(jì)算,用戶可以通過該功能大致判斷出自己的身體情況。然后系統(tǒng)會(huì)根據(jù)計(jì)算得出的結(jié)果給用戶推薦合理的飲食,來確保用戶可以有一個(gè)健康的身體;二是一個(gè)飲食健康知識(shí)庫。系統(tǒng)會(huì)先檢查輸入的數(shù)據(jù)是否正確,如果正確,系統(tǒng)就會(huì)給出其指數(shù),然后判斷其是否合理,并給出相應(yīng)正確飲食推薦。BMI指數(shù)功能流程圖如圖3.6所示。圖3.6BMI指數(shù)計(jì)算功能流程圖藥物記錄模塊該模塊下涵蓋了對(duì)藥物記錄的添加,查看、修改和刪除等常規(guī)功能。本節(jié)就藥物添加記錄模塊作具體介紹。該APP支持用戶記錄每次藥物的攝取數(shù)據(jù),正確輸入數(shù)據(jù)之后,系統(tǒng)會(huì)將數(shù)據(jù)保存。用戶添加藥物記錄流程圖如圖3.7所示。圖3.7用戶添加藥物記錄流程圖健康狀態(tài)模塊用戶可以在該模塊進(jìn)行添加、刪改信息,該APP支持用戶記錄自己的身體狀態(tài)數(shù)據(jù),包括,身高,體重,血壓和心跳等信息。用戶可以在修改記錄時(shí)間,系統(tǒng)會(huì)校驗(yàn)時(shí)間是否合理,最后在輸入正確的數(shù)據(jù)之后進(jìn)行保存即可。用戶添加身體狀態(tài)的流程圖如圖3.8所示。圖3.8用戶添加身體狀態(tài)記錄流程圖用戶賬號(hào)模塊用戶在進(jìn)行賬號(hào)管理之前,系統(tǒng)系統(tǒng)會(huì)檢測用戶是否登錄,若沒有檢測到用戶的登錄注冊(cè)信息,則不能進(jìn)行該模塊的操作。當(dāng)用戶已登錄,用戶可以更換頭像,在該模塊中從本地文件中找一個(gè)自己想要的模塊然后再替換掉原來的頭像。然后用戶可以修改密碼,為了提高賬號(hào)安全性,用戶要先正確輸入當(dāng)前密碼之后才可以修改為新的密碼。最后就是綁定手機(jī)號(hào),用戶必須要輸入正確格式的手機(jī)號(hào),系統(tǒng)才可以完成綁定操作。用戶賬號(hào)管理功能流程圖如圖3.9所示。圖3.9用戶賬號(hào)管理功能流程圖時(shí)間管理模塊本模塊包括所有用戶對(duì)時(shí)間管理方面的需求的實(shí)現(xiàn),其中有時(shí)鐘,鬧鐘和記事本三個(gè)功能。用戶首先是看到該模塊的主界面,然后顯示的時(shí)鐘可以告知用戶時(shí)間,用戶可以設(shè)置自己的鬧鐘,設(shè)置完成之后,系統(tǒng)會(huì)判斷鬧鐘是否有效,如果無效,用戶需要重新設(shè)置。在本次設(shè)計(jì)的健康管理APP中,進(jìn)入到時(shí)間管理界面,用戶就可以通過定時(shí)功能,在是否在工作日,是否響鈴等選擇中設(shè)置自己的鬧鐘。最后就是記事本功能,用戶在里面可以進(jìn)行編輯操作。然后系統(tǒng)會(huì)自動(dòng)保存數(shù)據(jù)庫中。時(shí)間管理功能流程圖如圖3.10所示。圖3.10時(shí)間管理模塊功能流程圖數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫概念設(shè)計(jì)以下內(nèi)容是本次APP數(shù)據(jù)庫設(shè)計(jì)會(huì)涉及到的實(shí)體關(guān)系。(1)用戶實(shí)體如圖3.11所示,該實(shí)體包括用戶ID,密碼,手機(jī)號(hào),頭像地址等屬性。圖3.11用戶實(shí)體E-R圖(2)身體狀態(tài)實(shí)體身體健康狀態(tài)實(shí)體編號(hào),用戶ID,身高,體重,血壓和心跳等多種信息,如圖3.12所示。圖3.12身體狀態(tài)實(shí)體E-R圖(3)藥物記錄實(shí)體藥物記錄實(shí)體包括編號(hào),用戶ID,癥狀和用藥等信息,如圖3.13所示。圖3.13藥物記錄實(shí)體E-R圖(4)運(yùn)動(dòng)記錄實(shí)體如圖3.14所示,該實(shí)體包括編號(hào),用戶ID,時(shí)間,運(yùn)動(dòng)項(xiàng)目,運(yùn)動(dòng)時(shí)長和備注等屬性。圖3.14運(yùn)動(dòng)記錄E-R圖(5)時(shí)間管理實(shí)體用戶可以在時(shí)間管理模塊對(duì)自己每天的時(shí)間進(jìn)行管理,因此時(shí)間管理實(shí)體用在記錄用戶每次的時(shí)間管理信息,包括編號(hào),用戶ID,時(shí)間,鬧鐘,備忘錄和備注等信息,如圖3.15所示。圖3.15時(shí)間管理E-R圖(6)鬧鐘實(shí)體鬧鐘實(shí)體屬于時(shí)間管理實(shí)體的一部分,用于記錄用戶具體的鬧鐘設(shè)置情況,包括編號(hào)、是否在工作日、是否只響鈴一次、是否啟用等信息,如圖3.16所示。圖3.16鬧鐘E-R圖系統(tǒng)E-R圖系統(tǒng)整體E-R圖如圖3.16所示,用戶實(shí)體與、藥物記錄實(shí)體、運(yùn)動(dòng)記錄實(shí)體、時(shí)間管理實(shí)體都是1對(duì)N的管理關(guān)系。用戶實(shí)體與身體狀態(tài)實(shí)體是1對(duì)1的管理關(guān)系。而鬧鐘實(shí)體屬于時(shí)間管理的一部分,與時(shí)間管理實(shí)體成1對(duì)1關(guān)系。圖3.17系統(tǒng)整體E-R圖數(shù)據(jù)庫邏輯設(shè)計(jì)與物理設(shè)計(jì)根據(jù)上文的系統(tǒng)E-R圖,能得到以下關(guān)系模式,其中有下劃線的屬性為該關(guān)系的主碼(PrimaryKey):用戶信息(用戶ID,用戶名,密碼,手機(jī)號(hào),頭像地址)身體狀態(tài)(編號(hào),用戶ID,身高,體重,血壓,心跳)藥物記錄(編號(hào),用戶ID,癥狀,用藥)運(yùn)動(dòng)記錄(編號(hào),用戶ID,時(shí)間,運(yùn)動(dòng)項(xiàng)目,運(yùn)動(dòng)時(shí)長,備注)時(shí)間管理(編號(hào),用戶ID,時(shí)間,鬧鐘,備忘錄,備注)鬧鐘(編號(hào),是否在工作日,是否只響鈴一次,是否啟用)根據(jù)上述關(guān)系模式,可以進(jìn)行數(shù)據(jù)庫表的物理結(jié)構(gòu)設(shè)計(jì)。(1)用戶信息表該表包含用戶ID,用戶名,密碼,手機(jī)號(hào)和頭像地址等用戶信息字段,如表3.1所示。表3.1用戶信息表字段名類型長度是否為空主鍵描述idvarchar32否主鍵用戶IDuser_namevarchar255否用戶名pass_wordvarchar255否密碼mobilevarchar255否手機(jī)號(hào)avatarvarchar255否頭像地址(2)身體狀態(tài)表身體狀態(tài)表中包含編號(hào)、用戶ID、身高、體重、血壓和心跳等字段,如表3.2所示。表3.2身體狀態(tài)表字段名類型長度是否為空主鍵描述idvarchar32否主鍵編號(hào)user_idvarchar32否用戶名shengaovarchar255否身高tizhongvarchar255否體重xueyavarchar255否血壓xintiaovarchar255否心跳(3)藥物記錄表藥物記錄表包含編號(hào)、用戶ID、癥狀和用藥等字段,如表3.3所示。表3.3藥物記錄表字段名類型長度是否為空主鍵描述idvarchar32否主鍵編號(hào)user_idvarchar32否用戶名symptomvarchar255否癥狀drugvarchar255否用藥(4)運(yùn)動(dòng)記錄表該表包含編號(hào),用戶ID,時(shí)間,運(yùn)動(dòng)項(xiàng)目,運(yùn)動(dòng)時(shí)長和備注等運(yùn)動(dòng)記錄字段,如表3.4所示。表3.4運(yùn)動(dòng)記錄表字段名類型長度是否為空主鍵描述idvarchar32否主鍵編號(hào)user_idvarchar32否用戶名datedate否時(shí)間drugvarchar255否運(yùn)動(dòng)項(xiàng)目durationvarchar255否運(yùn)動(dòng)時(shí)長remarksvarchar255否備注(5)時(shí)間管理表該表包含編號(hào),用戶ID,時(shí)間,鬧鐘,備忘錄和備注等字段,如表3.5所示。表3.5時(shí)間管理表字段名類型長度是否為空主鍵描述idvarchar32否主鍵編號(hào)user_idvarchar32否用戶名datedate否時(shí)間clockdatetime否鬧鐘notevarchar255否備忘錄remarksvarchar255否備注(6)鬧鐘表鬧鐘表包含編號(hào)、是否在工作日、是否只響鈴一次和是否啟用等字段,如表3.6所示。表3.6鬧鐘表字段名類型長度是否為空主鍵描述idvarchar32否主鍵編號(hào)is_weekdaytinyint2否是否在工作日is_ring_oncetinyint2否是否只響鈴一次is_enabletinyint2否是否啟用系統(tǒng)實(shí)現(xiàn)與測試系統(tǒng)開發(fā)環(huán)境在上文的技術(shù)可行性分析中明確了該APP的客戶端使用Android平臺(tái),前端使用uni-app,后端使用Java平臺(tái)和SpringBoot框架并在IDEA上進(jìn)行開發(fā)。IDEA是常見的Java集成開發(fā)環(huán)境(IDE),IDEA的編輯器提供了更好的代碼自動(dòng)補(bǔ)全、智能重構(gòu)、代碼檢查、代碼格式化和快捷鍵等功能,使得編碼更加高效[16]。底層的數(shù)據(jù)庫選擇MySQL數(shù)據(jù)庫。具體如下:(1)APP前端采用HbuilderX作為開發(fā)工具,版本為0221228;(2)使用Chrome瀏覽器作為測試平臺(tái);(3)后端開發(fā)使用IntelliJIDEA,版本為2022.3.2,使用的JDK版本為11.0.18;(4)底層數(shù)據(jù)庫為MySQL,版本號(hào)8.0,并且通過NavicatPremium對(duì)數(shù)據(jù)庫進(jìn)行可視化界面操作;(5)使用SpringBoot2.4.5進(jìn)行后端的開發(fā)。APP實(shí)現(xiàn)思路據(jù)上文所講,該APP由客戶端和后端兩大部分構(gòu)成??蛻舳思凑麄€(gè)系統(tǒng)的View層,用來顯示具體前端界面,用戶可以通過該界面進(jìn)行交互。后端則主要是系統(tǒng)的業(yè)務(wù)邏輯功能的實(shí)現(xiàn)和底層數(shù)據(jù)庫的管理。前后端通過API接口向用戶發(fā)送服務(wù)請(qǐng)求,然后后端根據(jù)其對(duì)應(yīng)的業(yè)務(wù)邏輯實(shí)現(xiàn)功能后再返回請(qǐng)求響應(yīng)結(jié)果。APP前端界面的實(shí)現(xiàn)該系統(tǒng)中的所有UI界面都是在uni-app項(xiàng)目中用vue.js框架創(chuàng)建的。uni-app在開發(fā)中使用了vue.js的開發(fā)模式和語法,同時(shí)也提供了一些特定于uni-app的API和組件,如導(dǎo)航欄、TabBar、頁面生命周期等[17]。APP啟動(dòng)界面的和APP圖標(biāo)實(shí)現(xiàn)該APP的啟動(dòng)界面是在uni-app項(xiàng)目的mainfest.json中創(chuàng)建的,存放在根目錄下。其中icon信息是可以定義不同尺寸的圖標(biāo)以適應(yīng)不同平臺(tái)或設(shè)備。manifest.json文件中定義的信息會(huì)被uni-app編譯器解析并打包進(jìn)最終的APP中。mainfest.json文件界面如圖4.1所示。圖4.1mainfest.json配置界面圖基于大量的市場調(diào)研、數(shù)據(jù)分析以及個(gè)人主觀感受,選擇啟動(dòng)界面的主題色為白色和藍(lán)色,晴朗的天空的顏色就是白色和藍(lán)色,晴空萬里會(huì)讓人有出去走走的想法,走走便會(huì)有跑步、運(yùn)動(dòng)的想法。界面的底部是一個(gè)運(yùn)動(dòng)的人,正在跑步,顯示出人體的活力。所以本文的健康管理APP啟動(dòng)界面如圖4.2所示。APP圖標(biāo)則裁剪啟動(dòng)界面的上半邊文字部分,如圖4.3所示。圖4.2APP啟動(dòng)界面圖圖4.3APP圖標(biāo)顯示圖啟動(dòng)界面所需要的圖片放在uni-app的unpackage文件中,將APP圖標(biāo)放在unpackage/res中的icon文件中。APP的圖標(biāo)和啟動(dòng)界面圖在模擬測試平臺(tái)是看不到的,只有把系統(tǒng)打包成APK才能看到其效果。APP的主要頁面健康管理APP的前端主要頁面有四個(gè)部分,分別是運(yùn)功、健康、我的和時(shí)間頁面。其對(duì)應(yīng)的底部導(dǎo)航欄的四個(gè)選項(xiàng)。其中將運(yùn)動(dòng)界面設(shè)計(jì)為健康管理APP的首頁界面。(1)運(yùn)動(dòng)管理界面該部分是通過vue.js的組件來實(shí)現(xiàn)的。vue.js的組件可以定義一個(gè)默認(rèn)導(dǎo)出的對(duì)象,其中包括該組件需要使用的其他組件和方法,還有組件內(nèi)部使用的數(shù)據(jù)和邏輯。該組件包含了一個(gè)自定義的圓形進(jìn)度條組件arprogress,在頂部顯示了當(dāng)前的步數(shù)以及目標(biāo)步數(shù),并在圓形進(jìn)度條上展示了當(dāng)前的進(jìn)度百分比。頁面中展示了跑步、預(yù)熱、引體向上和俯臥撐等四個(gè)運(yùn)動(dòng)項(xiàng)目的信息,每個(gè)項(xiàng)目包含了一個(gè)標(biāo)題、一段描述和一個(gè)圖標(biāo)。用戶可以通過點(diǎn)擊每個(gè)項(xiàng)目來查看更多關(guān)于該項(xiàng)目的信息。在具體實(shí)現(xiàn)上,該組件的樣式、行為邏輯和頁面結(jié)構(gòu)都通過一個(gè)CSS文件、一個(gè)JS文件和一個(gè)Vue模板文件來實(shí)現(xiàn)。其中,樣式和行為邏輯都在index.css和index.js文件中實(shí)現(xiàn),Vue模板文件則通過Vue語法描述了頁面的結(jié)構(gòu)和組件的嵌套關(guān)系。頁面的數(shù)據(jù)通過Vue的data選項(xiàng)中定義的變量進(jìn)行綁定,通過Vue的生命周期函數(shù)onLoad和onShow等來實(shí)現(xiàn)組件的邏輯行為,運(yùn)動(dòng)管理界面如圖4.4所示。圖4.4運(yùn)動(dòng)管理頁面圖關(guān)鍵代碼如下:運(yùn)動(dòng)步數(shù)測量環(huán)形進(jìn)度頁面設(shè)計(jì)代碼:<arprogress:percent="percent":width='300'bgColor='#313131'> <viewclass="col_c"> <viewclass="yd-title">今日步數(shù)</view> <viewclass="yd-val">{{stepNum}}</view> <viewclass="yd-mb">目標(biāo)5000</view> </view> </arprogress>(2)健康管理界面該界面通過vue.js框架主要實(shí)現(xiàn)了一個(gè)BMI(BodyMassIndex,身體質(zhì)量指數(shù))計(jì)算器和推薦健康食品的功能。該頁面由一個(gè)swiper組件和兩個(gè)box組件構(gòu)成,swiper組件實(shí)現(xiàn)了輪播效果。box組件根據(jù)showRes變量值的不同來判斷渲染內(nèi)容。BMI功能具體實(shí)現(xiàn)為:在用戶輸入身高和體重后,點(diǎn)擊“開始計(jì)算”按鈕,vue組件中的method方法會(huì)先通過身高和體重計(jì)算出用戶的BMI值,然后根據(jù)BMI值的范圍來設(shè)置對(duì)應(yīng)的標(biāo)題、文本、顏色和建議食品列表等信息。最后將這些信息綁定到組件的對(duì)應(yīng)屬性上,并將showRes屬性設(shè)置為true,以顯示計(jì)算結(jié)果和建議食品列表。同時(shí),頁面下方會(huì)推薦一些健康食品。其中還有圖片組件可通過info方法和web方法實(shí)現(xiàn)不同的功能。Info方法作用是將用戶導(dǎo)航到一個(gè)特定的信息頁面,具體頁面由一個(gè)ID參數(shù)指定。該界面健康飲食圖片可以通過info方法將用戶帶到健康飲食詳情。web方法的作用是將用戶導(dǎo)航到一個(gè)WebView頁面,該頁面是一個(gè)嵌入在原生應(yīng)用程序中的Web瀏覽器視圖。該界面健康飲食大全圖片就是通過web方法將用戶帶到另一個(gè)瀏覽器從而實(shí)現(xiàn)用戶的營養(yǎng)元素檢索功能。該頁面還使用了Vue.js框架中的模板語法,例如v-if、v-for、v-model等,來實(shí)現(xiàn)數(shù)據(jù)綁定和渲染。同是還使用了CSS樣式文件和JavaScript腳本文件來實(shí)現(xiàn)頁面的樣式和交互效果。健康管理界面如圖4.5-4.7所示。圖4.5BMI計(jì)算結(jié)果和食物推薦圖關(guān)鍵代碼如下://計(jì)算BMI指數(shù)comBmi(){ console.log(111) //(BMI)=體重(kg)÷身高^2(m) letbmi=parseInt(this.tz)/(parseFloat(this.sg)/100)/(parseFloat(this.sg)/100); letlist=['偏瘦','正常','偏胖','超重']//判斷肥胖標(biāo)準(zhǔn)letindex=0; if(bmi<=18.4){ index=0; }elseif(bmi<=23.9){ index=1; }elseif(bmi<=27.9){ index=2; }else{ index=3; 圖4.6健康膳食詳情圖(info方法)圖4.7健康飲食知識(shí)庫營養(yǎng)元素檢索圖(web方法)關(guān)鍵代碼如下://info方法info(index){this.$Global.tool.routerTo('/pages/index/html/html?id='+index);},//Web方法web(){this.$Global.tool.routerTo('/pages/webview');}(2)時(shí)間管理界面該界面是在vue.js的語法中通過自定義組件的方式實(shí)現(xiàn)了一個(gè)包含兩個(gè)部分的頁面,分別是"鬧鐘列表"和"記事本列表"。頁面中可以新增鬧鐘和記事本,同時(shí)支持對(duì)已有的鬧鐘進(jìn)行狀態(tài)的切換。具體地說,頁面通過自定義組件的方式實(shí)現(xiàn)了以下功能:時(shí)鐘學(xué)習(xí)組件;"類型"選擇組件,用于切換"鬧鐘列表"和"記事本列表";"鬧鐘列表"組件,可以展示所有已設(shè)定的鬧鐘,可以對(duì)鬧鐘進(jìn)行編輯和狀態(tài)的切換;"記事本列表"組件,可以展示所有已添加的記事本,可以點(diǎn)擊進(jìn)入查看具體內(nèi)容;新增按鈕,用于新增鬧鐘或記事本。在該JS文件中,引入了兩個(gè)組件:wPicker和clockLearn。在方法中,定義了onshow()、onsave()、onType()、jsbinfo()、nzinfo()和onAdd()函數(shù),具體功能如下:onshow():從本地存儲(chǔ)中獲取數(shù)據(jù),并進(jìn)行簡單處理后賦值給list和list1數(shù)組。onsave():將list數(shù)組存儲(chǔ)到本地存儲(chǔ)中。onType():切換排序類型。jsbinfo():跳轉(zhuǎn)到記事本詳情頁。nzinfo():跳轉(zhuǎn)到鬧鐘詳情頁。onAdd():跳轉(zhuǎn)到新增頁面。時(shí)間管理界面如圖4.8-4.9所示。圖4.8鬧鐘設(shè)置圖圖4.9記事本編輯圖關(guān)鍵代碼如下:記事本功能實(shí)現(xiàn)://打印數(shù)字1111,用于調(diào)試和查看程序運(yùn)行狀態(tài)console.log(1111);//從本地緩存中獲取名為“jsb”的數(shù)據(jù)letlist=uni.getStorageSync('jsb');//打印獲取到的數(shù)據(jù),用于查看數(shù)據(jù)內(nèi)容console.log(list);//定義一個(gè)空數(shù)組,用于存放處理后的數(shù)據(jù)letplist=[];//判斷獲取到的數(shù)據(jù)是否存在if(list){//循環(huán)遍歷數(shù)組中的每個(gè)元素for(vari=0;i<list.length;i++){//判斷當(dāng)前元素是否存在if(list[i]){//如果當(dāng)前元素存在,則將其添加到新數(shù)組中plist.push(list[i]);}}//將處理后的數(shù)據(jù)賦值給組件的數(shù)據(jù)變量list1,以便在頁面中顯示this.list1=plist;}(2)我的界面該界面通過vue.js框架的組件來實(shí)現(xiàn)。該頁面包括用戶頭像、用戶名、個(gè)人資料、身體狀態(tài)記錄、藥物使用記錄和登錄/退出按鈕。該組件中使用了vue.js的模板語法和組件化思想。在data對(duì)象中定義了變量skin、menuArrow、menuCard、menuBorder和user,其中user對(duì)象中存儲(chǔ)了用戶的信息,包括用戶頭像和用戶名。onShow()生命周期函數(shù)中調(diào)用了uni.getStorageSync()方法獲取用戶信息,并將其保存在user對(duì)象中。methods對(duì)象中定義了多個(gè)方法,用于實(shí)現(xiàn)頁面的跳轉(zhuǎn)、登錄和退出功能。 具體方法如下:onshow:用于在頁面顯示時(shí)讀取緩存中的用戶信息,并將其保存到user變量中;toLogin:點(diǎn)擊登錄按鈕時(shí)調(diào)用,跳轉(zhuǎn)到登錄頁面;logout:點(diǎn)擊退出按鈕時(shí)調(diào)用,刪除用戶信息緩存,并跳轉(zhuǎn)到登錄頁面;toUserInfo:點(diǎn)擊“個(gè)人資料”菜單項(xiàng)時(shí)調(diào)用,跳轉(zhuǎn)到用戶信息頁面;toBody:點(diǎn)擊“身體狀態(tài)記錄”菜單項(xiàng)時(shí)調(diào)用,跳轉(zhuǎn)到身體狀態(tài)記錄頁面;toDrug:點(diǎn)擊“藥物使用記錄”菜單項(xiàng)時(shí)調(diào)用,跳轉(zhuǎn)到藥物使用記錄頁面。該模板中還使用了uni-app框架提供的組件,如view、text、button等,以及一些自定義的類,如cu-list、cu-item等,用于實(shí)現(xiàn)UI界面。同時(shí),模板中還使用了Vue.js的動(dòng)態(tài)綁定語法,如:class和:style,用于動(dòng)態(tài)修改元素的class和style屬性,我的界面如圖4.10-4.11所示。圖4.10我的界面圖圖4.11個(gè)人資料編輯圖關(guān)鍵代碼如下:進(jìn)入登錄:toLogin(){uni.navigateTo({url:"/pages/login/login"})},退出;logout(){uni.removeStorageSync('user')uni.navigateTo({url:"/pages/login/login"})},用戶管理:toUserInfo(){uni.navigateTo({url:"/pages/userInfo/userInfo"})},身體狀態(tài):toBody(){uni.navigateTo({url:"/pages/bodyList/bodyList"})},藥物記錄toDrug(){uni.navigateTo({url:"/pages/drugList/drugList"})更換頭像{if(!this.user.avatar){this.mint.toast('請(qǐng)上傳頭像');return}修改密碼if(!this.user.oldpassWord){this.mint.toast('請(qǐng)驗(yàn)證舊密碼');return} if(this.user.newpassWord.length<6){this.mint.toast('密碼不少于6位, 且只能是大小寫字母,阿拉伯?dāng)?shù)字,和“.”,“@”符號(hào)');return}綁定手機(jī)號(hào)if(!this.user.mobile){this.mint.toast('請(qǐng)輸入手機(jī)號(hào)');return} varreg=/^[1][3,4,5,6,7,8,9][0-9]{9}$/ if(!reg.test(this.user.mobile)){this.mint.toast('請(qǐng)輸入有效手機(jī)號(hào)');return}APP后端的功能實(shí)現(xiàn)該APP后端使用IDEA軟件搭建Java后端平臺(tái)和SpringBoot框架。其中Java語言作為主體編程語言。會(huì)啟動(dòng)SpringBoot應(yīng)用程序,加載Spring容器,并將啟動(dòng)類所在的包及其子包中的所有Bean注冊(cè)到Spring容器中。最終,應(yīng)用程序會(huì)運(yùn)行在嵌入式的Tomcat服務(wù)器上,監(jiān)聽并處理HTTP請(qǐng)求。具體功能實(shí)現(xiàn)如下:(1)確定底層數(shù)據(jù)庫為MySQL數(shù)據(jù)庫,然后設(shè)計(jì)數(shù)據(jù)模型,該系統(tǒng)根據(jù)上文所述的系統(tǒng)設(shè)計(jì)會(huì)涉及到三個(gè)表:Body、User和Drug。(2)使用SpringBoot工具創(chuàng)建項(xiàng)目并配置MyBatis、Web等相關(guān)依賴。(3)創(chuàng)建控制器層,使用SpringMVC框架編寫接口,處理HTTP請(qǐng)求,調(diào)用服務(wù)層方法,返回?cái)?shù)據(jù)。通過自定義一個(gè)基礎(chǔ)控制器,其中包含了構(gòu)造請(qǐng)求成功API響應(yīng)的success方法和構(gòu)造請(qǐng)求失敗API響應(yīng)的failure方法,failure方法中還包括了ApiError和ServiceException的處理。通過這些方法,該基礎(chǔ)控制器為其他控制器提供了快捷的構(gòu)造API響應(yīng)的方法,避免了代碼的重復(fù),提高了代碼的可維護(hù)性和可讀性。該系統(tǒng)通過前后端交互完成用戶登陸注冊(cè),藥物記錄和身體狀態(tài)記錄管理等功能。功能實(shí)現(xiàn)圖如圖4.12-4.13所示。圖4.12用戶登錄界面圖4.13用戶注冊(cè)界面關(guān)鍵代碼如下:用戶登錄:login(){if(!this.userName){this.mint.toast('請(qǐng)輸入賬號(hào)');return} if(!this.passWord){this.mint.toast('請(qǐng)輸入密碼');return} letdata={userName:this.userName,passWord:this.passWord,//type:3 }; //console.log(111) this.base.post('user/login?userName='+this.userName+'&passWord='+this.passWord).then(res=>{console.log(res)} if(res.code==0){uni.setStorageSync('user',res.data)uni.navigateTo({url:"/pages/home/home"})}})},用戶注冊(cè):register(){if(!this.userName){this.mint.toast('請(qǐng)輸入賬號(hào)');return} if(!this.passWord){this.mint.toast('請(qǐng)輸入密碼');return} if(this.passWord.length<6){this.mint.toast('密碼不少于6位,且只能是大小寫字母,阿拉伯?dāng)?shù)字,和“.”,“@”符號(hào)');return} letdata={imgUrl:this.imgUrl,userName:this.userName,passWord:this.passWord,mobile:this.mobile,}; this.base.post('user/save',data).then(res=>{if(res.code==0){this.mint.toast('注冊(cè)成功!');}}系統(tǒng)測試測試環(huán)境由于構(gòu)建的是Android客戶端,使用版本為Andrid7.0的模擬器作為測試平臺(tái),版本為Andrid7.0。在模擬器上使用APP能夠正常與電腦上的后端產(chǎn)生交互,就能夠測試APP有沒有缺陷。測試方法設(shè)計(jì)軟件檢測的方法有很多,針對(duì)設(shè)計(jì)的該款A(yù)PP決定采用黑盒測試。系統(tǒng)重點(diǎn)功能測試由于論文篇幅有限,這里選擇注冊(cè)和登錄這兩個(gè)重點(diǎn)功能進(jìn)行具體的測試說明。(1)用戶注冊(cè)功能測試APP中用戶注冊(cè)功能的測試方法和結(jié)果如表4.1所示。
表4.1用戶注冊(cè)功能測試表功能模塊登錄與注冊(cè)具體功能用戶注冊(cè)測試目的測試用戶是否可以正常注冊(cè)操作步驟操作描述預(yù)期結(jié)果驗(yàn)證結(jié)果1只輸入用戶名提示請(qǐng)輸入密碼√2只輸入密碼提示請(qǐng)輸入賬號(hào)√3用戶名和密碼都輸入了,但是密碼輸入4位提示密碼不能少于6位√4用戶名和密碼都輸入了,密碼符合規(guī)范,但用戶名是注冊(cè)過的提示該用戶名已存在√5用戶名和密碼都輸入了,密碼符合規(guī)范,用戶名是沒注冊(cè)過的注冊(cè)成功√通過詳細(xì)測試,該功能運(yùn)行正常,測試用例結(jié)果與預(yù)期一致。(2)用戶登錄功能測試用戶登錄功能測試的具體步驟和預(yù)期結(jié)果如表4.2所示。表4.2用戶登錄功能測試表功能模塊登錄與注冊(cè)具體功能用戶登錄測試目的測試用戶是否可以正常登錄操作步驟操作描述預(yù)期結(jié)果驗(yàn)證結(jié)果1只輸入用戶名提示請(qǐng)輸入密碼√2只輸入密碼提示請(qǐng)輸入賬號(hào)√3用戶名和密碼都輸入了,但是兩者不匹配提醒賬號(hào)或密碼錯(cuò)誤√4正確輸入用戶名和密碼登錄成功√通過詳細(xì)測試,該功能運(yùn)行正常,測試用例結(jié)果與預(yù)期一致。總結(jié)與展望總結(jié)當(dāng)今社會(huì),隨著人們健康意識(shí)的不斷提高和生活水平的不斷提升,健康管理已經(jīng)成為人們生活中不可或缺的一部分。為了更好地滿足人們對(duì)健康管理的需求,開發(fā)一款健康管理APP已經(jīng)成為越來越多開發(fā)者的選擇。正因?yàn)槿藗儗?duì)健康管理類APP的需求變多了,引起市場上的此類軟件質(zhì)量參差不齊,許多此類軟件存在著推送廣告,業(yè)務(wù)操作更為復(fù)雜等問題,不利于使用。因此,設(shè)計(jì)一款健康管理APP,給用戶提供簡潔、有效的健康管理服務(wù)。該APP共分為登錄注冊(cè)、運(yùn)動(dòng)管理、健康管理、藥物記錄、健康狀態(tài)、用戶賬號(hào)和時(shí)間管理七大模塊。新用戶注冊(cè)后,可以查看自己的運(yùn)動(dòng)步數(shù)和消耗熱量,可以計(jì)算自己的BMI來判斷身體是否正常并給出一定建議。此外,該APP還有藥物記錄、身體狀態(tài)記錄、鬧鐘和記事本等功能。經(jīng)過詳細(xì)測試,各項(xiàng)功能運(yùn)行正常,能夠提供廣大用戶實(shí)際有效的健康管理。展望在未來,健康管理APP的發(fā)展方向?qū)?huì)更加注重用戶體驗(yàn)和個(gè)性化服務(wù)。隨著移動(dòng)設(shè)備和傳感器的不斷發(fā)展,健康管理APP可以采集更多的健康數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年飲料罐鋁板項(xiàng)目發(fā)展計(jì)劃
- 2025廣西南寧市消防救援支隊(duì)政府專職消防員招聘3人模擬試卷完整參考答案詳解
- 2025年福建省晉江晉文坊商業(yè)管理有限公司招聘4人模擬試卷及參考答案詳解一套
- 2025年山東職業(yè)學(xué)院公開招聘人員(28名)考前自測高頻考點(diǎn)模擬試題及完整答案詳解一套
- 2025年證券經(jīng)紀(jì)代理與營業(yè)部服務(wù)項(xiàng)目發(fā)展計(jì)劃
- 2025年雅安市委組織部雅安市衛(wèi)生健康委員會(huì)遴選公務(wù)員(參公人員)的5人模擬試卷及參考答案詳解1套
- 2025昆明市滇池管理局引進(jìn)高層次人才(1人)模擬試卷有完整答案詳解
- 2025江蘇鎮(zhèn)江市高等??茖W(xué)校招聘5人考前自測高頻考點(diǎn)模擬試題及答案詳解(名師系列)
- 2025年銅陵市安徽陵港控股有限公司招聘5人考前自測高頻考點(diǎn)模擬試題參考答案詳解
- 2025年洛陽博物館人才引進(jìn)高層次人才2名模擬試卷及參考答案詳解一套
- 產(chǎn)品物料編碼管理制度
- 2025年急性肺栓塞診斷和治療指南解讀課件
- 無痛分娩試題及答案
- 八年級(jí)物理上冊(cè)(人教版2024)-新教材解讀培訓(xùn)課件
- 幫忙找工作協(xié)議書
- 轉(zhuǎn)讓賬戶協(xié)議書
- 鋸床操作規(guī)程
- 服刑人員出監(jiān)適應(yīng)性教育
- 中國心血管病一級(jí)預(yù)防指南
- 一故事一音標(biāo)課件
- 2025年煤礦安全規(guī)程試題及答案
評(píng)論
0/150
提交評(píng)論