基于JAVA個人健康管理系統(tǒng)_第1頁
基于JAVA個人健康管理系統(tǒng)_第2頁
基于JAVA個人健康管理系統(tǒng)_第3頁
基于JAVA個人健康管理系統(tǒng)_第4頁
基于JAVA個人健康管理系統(tǒng)_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PAGEPAGE25摘要在信息技術不斷發(fā)展的背景下,充分利用計算機的先進管理方式可以替代人工方式帶來的不足。例如耗時、成本高、數(shù)據(jù)維護困難、數(shù)據(jù)容易丟失等。本次利用數(shù)據(jù)庫工具SQLServer和JSP編程技術來開發(fā)個人健康管理系統(tǒng)。系統(tǒng)主要使用JAVA作為開發(fā)語言,是一個基于Web技術的B/S結構系統(tǒng),支持運行環(huán)境MicrosoftWindows7及以上版本。管理員主要實現(xiàn)錄入信息、管理醫(yī)生、用戶、發(fā)布健康資訊等功能。醫(yī)生主要查看和回復用戶。用戶可以查看醫(yī)生信息并在線咨詢醫(yī)生等。個人健康管理系統(tǒng)是基于計算機進行的數(shù)據(jù)處理,可以在短時間內完成批量數(shù)據(jù)的管理,即使是基礎數(shù)據(jù)的錄入、錯改數(shù)據(jù)、統(tǒng)計數(shù)據(jù)等操作要求也可以輕松完成,使用這樣的系統(tǒng)不僅減少了大量的人工工作量,更加節(jié)省了數(shù)據(jù)處理投資的資金和時間。關鍵詞:健康服務管理;管理用戶;咨詢醫(yī)生;健康信息體檢AbstractUnderthebackgroundofthecontinuousdevelopmentofinformationtechnology,theadvancedmanagementmodeofmakingfulluseofcomputercanreplacethedeficiencybroughtbymanualmode.Forexample,timeconsuming,highcost,difficultdatamaintenance,easydatalossandsoon.TheuseofdatabasetoolsSQLServerandJSPprogrammingtechnologytodeveloppersonalhealthmanagementsystem.ThesystemmainlyusesJAVAasthedevelopmentlanguage.ItisaB/SstructuresystembasedonWebtechnology.ItsupportsMicrosoftWindows7andaboveversionsoftheoperatingenvironment.Theadministratormainlyrealizesthefunctionsofinputtinginformation,managingdoctors,users,releasinghealthinformationandsoon.Thedoctormainlyviewsandrespondstotheuser.Userscancheckdoctorinformationandconsultdoctorsonline.Personalhealthmanagementsystemisbasedoncomputerdataprocessing,canbefinishedinashorttimebatchdatamanagement,eventhebasicdataentry,changethewrongdata,statisticsandotheroperationrequirementscanalsobedoneeasily,useofsuchasystemnotonlyreducetheworkloadofalotofartificial,moresavemoneyandtimeofinvestmentinthedataprocessing.Keywords:Healthservicemanagement;Manageusers;Consultyourdoctor;Healthinformationphysicalexamination目錄TOC\o"1-3"\h\u20152摘要 121986Abstract 2231231緒論 674591.1研究背景 6190641.2研究目的和意義 6283171.3國內外研究現(xiàn)狀 754951.4研究內容 7245712開發(fā)環(huán)境及相關技術 862462.1JSP技術 8265482.2SQLServer2008 837852.3JAVA語言 978023系統(tǒng)分析 9217073.1可行性分析 9258893.1.1操作可行性分析 9122733.1.2經(jīng)濟可行性分析 10232893.1.3技術可行性分析 10314023.2系統(tǒng)流程分析 10121993.2.1用戶注冊流程圖 11125953.2.2用戶登錄流程圖 11299443.2.3信息添加流程圖 1247613.3系統(tǒng)性能分析 13308073.3.1系統(tǒng)安全性分析 13242973.3.2系統(tǒng)維護性分析 13104303.3.3系統(tǒng)功能分析 13173604系統(tǒng)設計 16300414.1系統(tǒng)架構設計 16212974.2功能模塊設計 16128644.2.1管理員功能結構設計 17316164.2.2醫(yī)生功能結構設計 17153374.2.3用戶功能結構設計 17306914.3數(shù)據(jù)庫設計 1859564.3.1數(shù)據(jù)庫結構設計 1877824.3.2數(shù)據(jù)庫表結構 21316485系統(tǒng)實現(xiàn) 24257985.1管理員功能實現(xiàn) 24237505.1.1健康資訊管理 24308795.1.2醫(yī)生信息管理 25325015.1.3系統(tǒng)會員管理 25281635.2醫(yī)生功能實現(xiàn) 26111635.2.1查看咨詢信息 26245105.2.2回復用戶咨詢 2753795.3用戶功能實現(xiàn) 27304255.3.1每日記錄管理 27103245.3.2體檢信息管理 28151325.3.3醫(yī)生資源信息 28185735.3.4健康教育活動記錄 29236996系統(tǒng)測試 306136.1系統(tǒng)測試的實施 30262236.2系統(tǒng)功能測試 3021116.2.1登錄功能測試 3035116.2.2注冊功能測試 31323916.3測試結果分析 318862結論 329270參考文獻 338577致謝 34附錄361緒論1.1研究背景當今已經(jīng)進入互聯(lián)網(wǎng)發(fā)展的信息時代。隨著信息發(fā)展的飛速,單靠人工處理是不能迅速完成大量工作的,畢竟人工處理大量的數(shù)據(jù)會耗費較長時間,而且數(shù)據(jù)的錯誤率也會提升。另外,在檢索數(shù)據(jù)時也是一種既浪費能源,又消耗時間的事情[1]。因此,引入最新的信息技術開發(fā)系統(tǒng)去解決傳統(tǒng)管理模式帶來的各種困擾已逐漸成為一種新的趨勢。本次開發(fā)的是個人健康管理系統(tǒng),讓個人健康信息的管理去依賴于計算機,包括輸入健康信息,發(fā)布、維護健康信息等都在計算機上操作。在優(yōu)化信息管理系統(tǒng)的過程中,可以在此基礎上進一步的進行實現(xiàn)信息管理的規(guī)范化、系統(tǒng)化。從而使得個人健康信息的管理人員擺脫復雜繁瑣的工作,提高自身應用能力和管理能力,最大限度地發(fā)揮個人健康管理系統(tǒng)的作用,從而產(chǎn)生更大的效率。1.2研究目的和意義個人健康管理系統(tǒng)的出現(xiàn)可以解決傳統(tǒng)模式帶來的問題,如傳統(tǒng)模式不能處理大量的數(shù)據(jù)、效率低、耗時長、并且浪費大量人力物力、數(shù)據(jù)易出錯等。個人健康管理系統(tǒng)是基于計算機的數(shù)據(jù)處理,即可以在短時間內完成對數(shù)據(jù)的管理,甚至可以輕松完成基礎數(shù)據(jù)的錄入、管理數(shù)據(jù)、統(tǒng)計數(shù)據(jù)等操作要求,使用這樣的系統(tǒng)可以減少很多繁瑣的工作量,讓數(shù)據(jù)管理人員提高工作效率,可以節(jié)省數(shù)據(jù)處理的資金和時間。同時,個人健康管理系統(tǒng)自身也有一個支持的數(shù)據(jù)庫,以便用來保存系統(tǒng)的后臺數(shù)據(jù)。這種數(shù)據(jù)存儲的容量是傳統(tǒng)模式無法比擬的。在數(shù)據(jù)安全方面,有相應的加密技術提供保護,因此不易發(fā)生數(shù)據(jù)泄露和被盜等狀況。另外,個人健康管理系統(tǒng)可以對操作者輸入的數(shù)據(jù)進行實時檢查,能夠及時的反饋錯誤信息,提高輸入數(shù)據(jù)的準確性,可以充分保證系統(tǒng)數(shù)據(jù)的可靠性[2]??傊?,個人健康管理系統(tǒng),夠完成數(shù)據(jù)的高效處理,是一個可靠的操作系統(tǒng)。1.3國內外研究現(xiàn)狀國內:目前中國人民對健康的重視度還不夠,而且從事健康管理方面的專業(yè)人員非常短缺,其實早在05年中國就有近百人考取了健康管理師這門職業(yè),但是對于健康方面的權威人員還是非常緊缺的。就目前來看健康管理這門行業(yè)的潛力是巨大的,國家也在積極宣傳健康管理的重要性,一些以健康為主的公眾號以及健康平臺也進入了大眾的視線中,本系統(tǒng)就是針對有想初步體驗健康管理的人群所建立的,在家就可以咨詢醫(yī)生以及查看健康方面的資訊,這點對于上班族也是及其友好的。國外:健康管理這個詞匯是近幾十年才流行起來的,但是國外的健康管理理念一直領先于中國,尤其是美國的健康管理理念受到了美國政府的重視,并且美國的健康理念在全世界也是遙遙領先的。2010年起,日本就大力宣傳健康管理理念,對于本就注重健康管理的日本人來說這并不難實施。在德國和芬蘭也有著對于健康管理不同形式的策劃與實施例如提出以病人為中心以員工健康為重點等理念。1.4研究內容本系統(tǒng)用JAVA作為主要開發(fā)語言,對于國內外健康管理理念以及健康管理相關的軟件以及公眾號作為基本參考,從而設計出個人健康管理系統(tǒng),本文共分為六章,對個人健康管理系統(tǒng)的描述,將按照如下章節(jié)進行。第一章:根據(jù)前期的研究成果,以及對參考資料進行了分析和總結,從而進一步明確本系統(tǒng)研究的背景和意義。第二章:通過對現(xiàn)有開發(fā)技術分析的基礎上,確定了開發(fā)語言和開發(fā)工具,從而進行系統(tǒng)的開發(fā)。第三章:在用戶需求的基礎上,結合同類系統(tǒng)的功能,分析確定了系統(tǒng)的功能,并分析了系統(tǒng)開發(fā)的可行性。第四章:在第三章的基礎上,對系統(tǒng)功能進行了進一步的細分,對系統(tǒng)的各個模塊進行了功能設計,同時對系統(tǒng)的支撐數(shù)據(jù)庫也進行了設計。第五章:在第四章的基礎上,利用編程技術實現(xiàn)個人健康管理系統(tǒng)的所需功能。第六章:是系統(tǒng)測試部分。從登錄功能測試,注冊功能測試,測試結果分析來測試系統(tǒng)并得出結論。2開發(fā)環(huán)境及相關技術個人健康管理系統(tǒng)的開發(fā)是建立在一定的編程環(huán)境下,所以使用的工具和技術都有相應的要求,下面將介紹本系統(tǒng)中使用的工具和技術。JSP技術JSP里可以用JAVA語言寫在標記內??梢曰旌螲TML語言以及XHTML語言代碼進行混合編輯。編寫JAVA語言的代碼需要用特殊符號標記起來,用“<%”作為開始,中間書寫JAVA語句,以“%>”作為結束標簽,必須是有開頭和結尾的,不然會編譯是會出錯的,必須是成對出現(xiàn)也是必須有閉合的[3]。JSP可以處理表單數(shù)據(jù),因為JSP也算是一種Servlet,把數(shù)據(jù)提交給Servlet處理也是可以的。其實對于用戶來說,實現(xiàn)動態(tài)數(shù)據(jù)頁面就可以的,但是后臺也需要一些數(shù)據(jù)處理,JSP技術就可以做到數(shù)據(jù)處理。JSP可以通過JDBC直接操作數(shù)據(jù)庫,并在頁面上顯示數(shù)據(jù),記錄用戶的訪問信息和選擇信息,并使用JavaBean組件。它還可以通過會話在不同的網(wǎng)頁上傳遞信息和共享相關信息[4]。動態(tài)網(wǎng)頁有很多規(guī)范和標準,比如CGI規(guī)范或者ISAPI規(guī)范等。這些標準是固定的,但是JSP技術比CGI更規(guī)范、更強大。例如,JSP的性能比CGI好,因為JSP文件中可以嵌入許多元素。如果有那么多的元素,使用CGI時將變成大量的文件。受硬盤讀寫效率的限制,時間越短越好,能耗得越低才是最完美的。JSP就是JavaEE中不可缺少的一部分。SQLServer2008本系統(tǒng)應用的是SQLServer數(shù)據(jù)庫。SQLServer是一個關系數(shù)據(jù)庫管理系統(tǒng),因為SQLServer數(shù)據(jù)庫一直是微軟研究的商業(yè)產(chǎn)品。隨著中國市場的增加,微軟在客戶體驗方面也做了不少的優(yōu)化。微軟的官方網(wǎng)站上有很多中文版的數(shù)據(jù)庫學習資料,網(wǎng)上也有很多關于數(shù)據(jù)庫操作的書籍。在大家熟悉的Windows程序開發(fā)平臺中,選擇SQLServer數(shù)據(jù)庫自然成為首選。從學習的角度來看,由于以前對SQLServer數(shù)據(jù)庫進行過淺顯的運用,從而也想進一步的熟悉并使用SQLServer數(shù)據(jù)庫。另一方面,SQLServer數(shù)據(jù)庫的功能與其他數(shù)據(jù)庫相似,能夠實現(xiàn)所需的數(shù)據(jù)操作功能并且操作簡單,因此選擇SQLServer數(shù)據(jù)庫作為本程序所應用的數(shù)據(jù)庫。JAVA語言JAVA語言發(fā)展有二十多年了,經(jīng)過互聯(lián)網(wǎng)行業(yè)經(jīng)過這么多年的發(fā)展,它仍然占據(jù)了一半的市場份額,仍然受到很多使用者的喜愛。隨著互聯(lián)網(wǎng)從業(yè)人員的增多,JAVA在語言世界上的地位并沒有降低,可以被視為語言界的“不老樹”。JAVA語言學習并沒有很難,當然這是針對于前輩C++來講的,C++語言相當?shù)膹姾穂5]。JAVA取消了很多C++特征,比如goto這些語句,并且取消了主文件,因此所有文件都是帶有數(shù)組和各種對象的類。JAVA自帶“垃圾回收”來防止泄漏和其他相關的儲存以及動態(tài)內存分配造成的鎖死等現(xiàn)象。在性能方面,JAVA自可以實現(xiàn)自動處理對象的引用,然后處理自動無用單元收集,這樣使得開發(fā)人員只需要創(chuàng)建對象,使用對象,編輯代碼邏輯,不需要去關注它的性能。選擇讓JAVA處理各種數(shù)據(jù),這樣程序員就可以花更多的時間研究應用和程序之間的關系,使開發(fā)更加的集中。從以上來看JAVA是一種實用的編譯語言,同時操作方便易于編寫。因此設計過程不是非常的復雜就可以產(chǎn)生優(yōu)秀的代碼。3系統(tǒng)分析3.1可行性分析一個系統(tǒng)能否發(fā)展,能否帶來效益,都是需要進行提前分析的。而可行性研究就是對這些問題進行分析,并得出這個環(huán)節(jié)在項目發(fā)展中是否起著重要作用的結論。3.1.1操作可行性分析系統(tǒng)的運行環(huán)境是利用率高的軟件,通過網(wǎng)絡教程就可以下載并安裝,其次,系統(tǒng)對運行設備的要求較低,可以使用4GB內存的計算機。隨著當前硬件設備的升級,幾乎所有的計算機都有8GB的內存,因此運行的設備也滿足了使用程序的要求。本系統(tǒng)不用于處理類似于商業(yè)軟件的各種信息和內容,所以占用空間較小。大多數(shù)計算機都能運行。3.1.2經(jīng)濟可行性分析經(jīng)濟可行性分析主要分析系統(tǒng)的經(jīng)濟效益能否超過系統(tǒng)自身的開發(fā)成本。在任何項目開發(fā)之前,其經(jīng)濟可行性都是值得探討的問題。本次項目個人健康管理系統(tǒng)的數(shù)據(jù)處理相對簡單,管理的數(shù)據(jù)量也相對較少。因此,項目的開發(fā)周期不會耽誤很長時間,項目開發(fā)成本也不高。另外,本項目需要管理的數(shù)據(jù)量較少,性能條件一般的計算機都能夠滿足本項目的運行要求。從后期管理成本來看,項目管理成本不高。但項目一旦投入使用,將給用戶帶來一定的效益,同時也節(jié)約了信息管理的成本。如此一來,這樣一個投資成本低,卻能帶來諸多效益的項目,個人健康管理系統(tǒng)在經(jīng)濟上是可行的。3.1.3技術可行性分析技術上的可行性分析主要分析現(xiàn)有的條件以及技術是否可以順利展開后續(xù)的工作。隨著互聯(lián)網(wǎng)的快速發(fā)展,與互聯(lián)網(wǎng)有關的程序也逐漸被廣泛關注,尤其是著名的以B/S為結構的程序,再加上JSP技術的發(fā)展與成熟度,現(xiàn)在可以快速使用模塊化代碼來開發(fā)基于B/S結構的項目程序[6]。JAVA也是學習過的內容,所以技術操作并沒有太大的困難。通過對系統(tǒng)運行、經(jīng)濟技術可行性分析來看,開發(fā)個人健康管理系統(tǒng)是十分必要的,這樣不僅使得管理信息計算機化,還可以縮短數(shù)據(jù)處理所消耗的時間,從而提高工作效率。3.2系統(tǒng)流程分析本系統(tǒng)在完成數(shù)據(jù)處理后,其內部也都設置了相應的處理流程。如注冊數(shù)據(jù)的最終去向以及對每個數(shù)據(jù)的判斷等,這些都是事先進行分析的,然后在編碼時,將判斷邏輯寫入系統(tǒng)。當系統(tǒng)面臨相同的事務處理需求時,執(zhí)行相應的邏輯處理規(guī)則。3.2.1用戶注冊流程圖目前,在很多系統(tǒng)中,除了編碼時提前寫入管理員的登錄信息外,其他用戶的數(shù)據(jù)大多通過注冊寫入系統(tǒng),這樣注冊用戶的數(shù)據(jù)就可以保存在數(shù)據(jù)庫中。注冊功能其對應的流程如下。只有每項必填數(shù)據(jù)都符合要求,用戶的資料才會被數(shù)據(jù)庫保存。用戶注冊流程圖如3-1所示。圖3-1用戶注冊流程圖3.2.2用戶登錄流程圖在本系統(tǒng)的數(shù)據(jù)庫中,所有用戶的信息都會保存在一張數(shù)據(jù)表中,這意味著用戶數(shù)據(jù)表中的用戶名和密碼可以用于系統(tǒng)的登錄功能。用戶提交的登錄信息是必需填寫的,不能省略,進入功能操作區(qū)前,數(shù)據(jù)格式和內容必須準確。用戶登錄流程圖如圖3-2所示。圖3-2用戶登錄流程圖3.2.3信息添加流程圖本系統(tǒng)存儲的數(shù)據(jù)具有參考價值,因此在錄入數(shù)據(jù)時,必須保證數(shù)據(jù)的準確性,所添加的信息需要進行判斷才可以進行操作,這些數(shù)據(jù)只有在檢驗合格后才由數(shù)據(jù)庫保存。信息添加流程圖如圖3-3所示。圖3-3信息添加流程圖3.3系統(tǒng)性能分析3.3.1系統(tǒng)安全性分析一個系統(tǒng)的安全與否直接影響到用戶的使用。系統(tǒng)安全性體現(xiàn)在數(shù)據(jù)的保密性上。通常,很多系統(tǒng)都配備了游客登錄或注冊功能。無論是登錄時使用的賬戶密碼,還是用戶注冊生成的私有數(shù)據(jù),都是系統(tǒng)中寶貴的資源。一旦數(shù)據(jù)泄露,一些不法人員就會從中謀取利益,或者通過用戶注冊留下的電話騷擾用戶,給用戶帶來身心傷害。因此,密鑰數(shù)據(jù)通常是直接加密的,這樣可以始終保持數(shù)據(jù)的安全性[7]。3.3.2系統(tǒng)維護性分析系統(tǒng)在長期使用中難免會出現(xiàn)一些問題。因此,在處理這些問題時,可以對系統(tǒng)進行一些修改。系統(tǒng)變更的難度反映了系統(tǒng)是否易于維護。一般來說,當一個系統(tǒng)易于維護時,它將更加易于更改,并將節(jié)省大量的時間和金錢。3.3.3系統(tǒng)功能分析本系統(tǒng)的功能不會像市面上的商業(yè)程序那樣復雜,所提供的功能只能滿足目標用戶進行一般的操作系統(tǒng)內容并瀏覽以及一些簡單的信息處理功能。管理員錄入醫(yī)生信息,發(fā)布健康資訊,管理系統(tǒng)用戶,管理醫(yī)生和管理健康資訊等,用戶和醫(yī)生也分別有不同的操作功能,如圖3-4至3-6所示。1.管理員用例圖管理員具有修改密碼,添加刪除信息等功能。管理員用例圖,如圖3-4所示。圖3-4管理員用例圖醫(yī)生具有查看、回復用戶功能。醫(yī)生用例圖,如圖3-5所示。圖3-5醫(yī)生用例圖3.用戶用例圖用戶具有管理、添加每日記錄,添加體檢信息,咨詢醫(yī)生等功能。用戶用例圖,如圖3-6所示圖3-6用戶用例圖4系統(tǒng)設計個人健康管理系統(tǒng)分為普通用戶,管理員,醫(yī)生這三種權限。管理員身份具有會員信息管理、健康資訊管理、醫(yī)生信息管理,發(fā)布健康資訊、修改個人密碼等功能。普通用戶注冊一個系統(tǒng)賬號后登錄系統(tǒng),可以管理自己的健康信息,包括每日記錄管理,體檢信息管理,健康教育活動記錄,健康資訊信息瀏覽,瀏覽醫(yī)生信息,在線咨詢醫(yī)生等。醫(yī)生身份具有查看和回復用戶的咨詢問題等功能。4.1系統(tǒng)架構設計頁面的布局需要對系統(tǒng)的各個模塊進行劃分,然后根據(jù)這些模塊的重要性進行布局,還需要關注用戶關心的關鍵信息,采用合理的布局,傳達系統(tǒng)想要表達的信息內容,還可以讓用戶快速高效地獲得所需的信息。版面設計雖然是頁面設計的核心,但也要注意頁面內容的協(xié)調、統(tǒng)一和平衡性[8]。布局設計也要考慮基本原則,接下來的內容就對此進行闡述。第一點:參照系統(tǒng)要求,對系統(tǒng)內容進行劃分,根據(jù)不同的重要性進行布局,并在同一區(qū)域內展示相似或相近的信息內容,使訪問者能夠更順暢地閱讀信息;第二點:頁面中比較重要的區(qū)域是左側的位置,所以這部分區(qū)域應該放系統(tǒng)中比較重要的模塊,畢竟這部分區(qū)域可以吸引用戶的注意力,讓用戶進入頁面,就可以找到自己需要的信息。對于一些次要的模塊,它們可以放在頁面的底部和右側。只有這樣才能發(fā)揮頁面設計的實用性;第三點:根據(jù)用戶習慣設計頁面。雖然大多數(shù)用戶都有共同的操作特點,但它們之間還是有區(qū)別的。影響用戶操作習慣的常見因素有:年齡、學歷、職業(yè)、性別等。所以設計時也在考慮用戶的共性特征,也需要盡量尊重用戶的不同習慣。4.2功能模塊設計功能模塊也是不可缺少的部分,它能夠清晰的展示出不同功能所擁有的不同作用。下面為系統(tǒng)的功能設計,管理員可以錄入醫(yī)生信息,發(fā)布健康資訊,管理系統(tǒng)會員,管理醫(yī)生和健康資訊等,醫(yī)生可以回復和查看用戶資訊,用戶可以資訊醫(yī)生以及管理體檢信息等功能。4.2.1管理員功能結構設計設置管理員可以錄入醫(yī)生信息發(fā)布健康資訊,管理系統(tǒng)會員,管理醫(yī)生和健康咨詢等。管理員功能結構圖,如圖4-1所示。圖4-1管理員功能結構圖4.2.2醫(yī)生功能結構設計醫(yī)生主要實現(xiàn)了查看用戶咨詢,回復用戶咨詢功能。醫(yī)生功能結構圖,如圖4-2所示。圖4-2醫(yī)生功能結構圖4.2.3用戶功能結構設計用戶需要管理每日記錄,管理體檢信息,登記健康教育活動信息,查看醫(yī)生信息并在線咨詢醫(yī)生,查看健康咨詢信息。用戶功能結構圖,如圖4-3所示。圖4-3用戶功能結構圖4.3數(shù)據(jù)庫設計個人健康管理系統(tǒng)選用關系數(shù)據(jù)庫作為程序的后臺,之所以選擇關系數(shù)據(jù)庫主要還是因為它使用方便,維護數(shù)據(jù)方便,特別是是它具備了強大的SQL查詢語言[9]。數(shù)據(jù)庫不僅能更加方便程序的書寫另一方面也提高了程序的質量。4.3.1數(shù)據(jù)庫結構設計這部分內容需要根據(jù)用戶需求當中的數(shù)據(jù)信息進行仔細的拆分和分析,并從這些數(shù)據(jù)中標識出E-R模型需要使用的數(shù)據(jù),包括實體、實體擁有的屬性以及基于實體的關系[10]。使用這種方法不僅可以節(jié)省數(shù)據(jù)庫設計的時間,而且可以直觀地表達設計內容及其相互之間的關系。1.醫(yī)生實體屬性圖設計的醫(yī)生實體,其具備的屬性如下圖4-4所示。圖4-4醫(yī)生實體屬性圖2.健康教育活動實體屬性圖設計的健康教育活動實體屬性圖,其具備的屬性如圖4-5所示。圖4-5健康教育活動實體屬性圖3.每日記錄實體屬性圖每日記錄實體屬性圖,如圖4-6所示。圖4-6每日記錄實體屬性圖4.咨詢信息實體屬性圖設計的咨詢信息實體實體屬性圖,其具備的屬性如圖4-7所示。圖4-7咨詢信息實體屬性圖5.用戶實體屬性圖設計用戶實體屬性圖,其具備的屬性如圖4-8所示。圖4-8用戶實體屬性圖6.管理員實體屬性圖設計管理員實體屬性圖,其具備的屬性如圖4-9所示。圖4-9管理員實體屬性圖7.實體間關系E-R圖設計的實體間關系E-R圖,其具備的屬性如圖4-10所示。圖4-10實體間關系E-R圖4.3.2數(shù)據(jù)庫表結構一般來說,數(shù)據(jù)庫是用來保存數(shù)據(jù)的,無論設計得多好,它都不會失去保存數(shù)據(jù)的功能。設計數(shù)據(jù)庫和不設計數(shù)據(jù)庫的區(qū)別在于數(shù)據(jù)訪問的效率。一個設計良好的數(shù)據(jù)庫可以快速響應數(shù)據(jù)的查詢、存儲和更新。一個設計糟糕的數(shù)據(jù)庫不僅會延長數(shù)據(jù)的處理時間,而且很容易出錯。因此,數(shù)據(jù)庫設計也是程序開發(fā)中不可缺少的環(huán)節(jié)之一[11]。個人健康管理系統(tǒng)共有六張數(shù)據(jù)表,分別是用戶信息表,管理員信息表,每日記錄信息表,健康教育活動信息表,醫(yī)生信息表,咨詢信息表。如表4-1至4-6所示。1.用戶信息表用戶信息表(id,loginName,loginPass,xingming,xingbie,shengri),其中id為主鍵。該表可以編寫用戶的基本信息。表的結構如表4-1所示。表4-1用戶信息表列名說明數(shù)據(jù)類型長度允許空id編號(主鍵)int4否loginName賬號varchar50否loginPass密碼varchar50否xingming姓名varchar50否xingbie性別varchar50否shengri出生日期varchar50否2.管理員信息表管理員信息表(userId,userName,userPw),其中userId為主鍵,該表可以管理用戶名userName和密碼userPw。表的結構如表4-2所示。表4-2管理員信息表列名說明數(shù)據(jù)類型長度允許空userId編號(主鍵)int4否userName用戶名varchar50否userPw密碼varchar50否3.每日記錄信息表每日記錄信息表(id,yonghu_id,shijian,yinshi,yundong,shuimian,beizhu),其中id為主鍵。該表可記錄用戶的每日信息。表的結構如表4-3所示。表4-3每日記錄信息表列名說明數(shù)據(jù)類型長度允許空id編號(主鍵)Int4否yonghu_id用戶IDvarchar4否shijian記錄時間varchar50否yinshi飲食狀況varchar50否yundong運動情況varchar50否shuimian睡眠狀況varchar50否beizhu備注信息varchar50否4.健康教育活動信息表健康教育活動信息表(id,yonghu_id,shijian,didian,xingshi,zhuti,zuzhizhe,neirong),其中id為主鍵。該表可記錄用戶的健康教育活動信息。表的結構如表4-4所示。表4-4健康教育活動信息表列名說明數(shù)據(jù)類型長度允許空id編號(主鍵)int2否yonghu_id用戶IDint50否shijian活動時間varchar50否didian活動地點varchar50否xingshi活動形式varchar50否zhuti活動主題varchar50否zuzhizhe組織者varchar50否neirong活動內容varchar50否5.醫(yī)生信息表醫(yī)生信息表(id,xingming,xingbie,nianling,biye,loginname,loginpw),其中id為主鍵。該表可以編輯醫(yī)生的詳細信息。表的結構如表4-5所示。表4-5醫(yī)生信息表列名說明數(shù)據(jù)類型長度允許空id編號(主鍵)int4否xingming姓名varchar50否xingbie性別date8否nianling年齡int4否biye畢業(yè)院校int4否loginname賬號int4否loginpw密碼int4否6.咨詢信息表咨詢信息表(id,content,zixunshijian,huifu,huifushijian,yonghu_id,yisheng_id),其中id為主鍵。表的表結構如表4-6所示。表4-6咨詢信息表列名說明數(shù)據(jù)類型長度允許空id編號(主鍵)Int4否content內容varchar5000否zixunshijian咨詢時間varchar50否huifu回復信息varchar50否huifushijian回復時間varchar50否yonghu_id用戶IDInt4否yisheng_id醫(yī)生IDInt4否5系統(tǒng)實現(xiàn)這部分工作主要由程序員完成。通常面對一個大系統(tǒng),這些程序員會分工明確,每個人完成不同的功能模塊,在使用代碼實現(xiàn)功能的基礎上,提前預留接口,最后通過接口將自己完成的功能模塊組合起來[12]。本章將具體討論如何實現(xiàn)功能模塊從而最終實現(xiàn)了整個系統(tǒng)。5.1管理員功能實現(xiàn)5.1.1健康資訊管理管理員進入指定功能操作區(qū)之后,可以管理健康資訊信息,管理員在當前頁面添加健康資訊,對每條健康資訊的詳細信息都可以詳細查看并且刪除。其運行效果,如圖5-1所示。圖5-1健康資訊管理頁面5.1.2醫(yī)生信息管理管理員進入指定功能操作區(qū)之后,需要進行管理醫(yī)生信息時,有關醫(yī)生信息的錄入,刪除都可以在本頁面完成。其運行效果,如圖5-2所示。圖5-2醫(yī)生信息管理頁面5.1.3系統(tǒng)會員管理管理員進入指定功能操作區(qū)之后,需要管理系統(tǒng)會員信息,運行效果,管理員可以停用并啟用系統(tǒng)會員的賬號,查詢系統(tǒng)會員信息。如圖5-3所示。圖5-3系統(tǒng)會員管理頁面5.2醫(yī)生功能實現(xiàn)5.2.1查看咨詢信息醫(yī)生進入指定功能操作區(qū)之后,需要查看用戶的咨詢信息,醫(yī)生查看這些信息后,需要一一進行回復處理。運行效果,如圖5-4所示。圖5-4查看咨詢信息頁面5.2.2回復用戶咨詢醫(yī)生進入指定功能操作區(qū)之后,對需要回復的咨詢信息進行回復處理,醫(yī)生登記回復內容就可提交。運行效果,如圖5-5所示。圖5-5回復用戶咨詢頁面5.3用戶功能實現(xiàn)5.3.1每日記錄管理用戶進入指定功能操作區(qū)之后,需要記錄每日的飲食情況,運動情況,睡眠情況等信息,記錄的信息也可以被用戶刪除。運行效果,如圖5-6所示。圖5-6每日記錄管理頁面5.3.2體檢信息管理用戶進入指定功能操作區(qū)之后,需要管理體檢信息,用戶隨時可查看體檢信息,并且登記新的體檢信息。運行效果,如圖5-7所示。圖5-7體檢信息管理頁面5.3.3醫(yī)生資源信息用戶進入指定功能操作區(qū)之后,需要查看醫(yī)生資源信息,用戶可以選擇某位醫(yī)生進行在線咨詢。運行效果,如圖5-8所示。圖5-8醫(yī)生資源信息頁面5.3.4健康教育活動記錄用戶進入指定功能操作區(qū)之后,需要查看健康教育活動記錄信息,用戶可以繼續(xù)添加已經(jīng)參加的健康教育活動信息,也可以刪除這些信息。運行效果,如圖5-9所示。圖5-9健康教育活動記錄頁面6系統(tǒng)測試面對已完成的系統(tǒng),下一步的工作就是對其進行測試。這個環(huán)節(jié)需要運用多種方式發(fā)現(xiàn)操作系統(tǒng)中存在的問題,及時分析并且解決,使目標系統(tǒng)能夠被用戶所接受。6.1系統(tǒng)測試的實施下面的測試內容包括確認測試、驗收測試、回歸測試。確認測試:這個環(huán)節(jié)的主要的任務是確認系統(tǒng)的有效性,所以它還有另外一個名字,就是有效性測試。通過檢查目標系統(tǒng)的功能及其運行環(huán)境的配置,測試人員需要檢查目標系統(tǒng)是否符合先前分析,以及設計是否符合用戶的需求規(guī)范[13]。驗收測試:在實踐中,通常要求開發(fā)人員、質量保障人員和面向系統(tǒng)的用戶參與這一過程。讓用戶通過設計好的用例在系統(tǒng)的操作界面上輸入數(shù)據(jù),并檢測系統(tǒng)的輸出結果[14]?;貧w測試:主要用于測試變更的軟件。在保證修改后的系統(tǒng)不會產(chǎn)生其他錯誤的情況下,驗證系統(tǒng)修改部分的正確性。6.2系統(tǒng)功能測試很多時候,需要對系統(tǒng)中的指定功能進行數(shù)據(jù)檢驗,檢驗不同數(shù)據(jù)的錄入,其產(chǎn)生的結果或反饋的信息跟預定的需求是否有差別。6.2.1登錄功能測試作為個人健康管理系統(tǒng)的門面,其登錄功能起著非常重要的作用。它不僅可以保護系統(tǒng)的安全,還可以引導不同的用戶進入不同的操作區(qū)域。每當有不同形式的數(shù)據(jù)輸入時,系統(tǒng)都會對每個數(shù)據(jù)進行判斷,準確錄入的數(shù)據(jù)才會讓訪問者登錄進入功能操作區(qū)。登錄功能測試表,如表6-1所示。表6-1登錄功能測試表測試內容錄入的數(shù)據(jù)預期結果最終結果輸入用戶表的賬號和密碼賬號:user密碼:user登錄成功登錄成功隨意輸入賬號和密碼賬號:abc密碼:abc提示信息錯誤提示信息錯誤輸入用戶表的賬號,密碼隨意輸入賬號:user密碼:abc提示賬號密碼不匹配提示賬號密碼不匹配隨意輸入賬號,輸入用戶表的密碼賬號:abc密碼:cba提示賬號密碼不匹配提示賬號密碼不匹配6.2.2注冊功能測試如果訪問者需要操作本系統(tǒng)的功能,前提是要在用戶表里面有登錄本系統(tǒng)的個人資料。注冊功能就是讓游客成為用戶的一種操作方式,只要不是本系統(tǒng)用戶,注冊時登記的賬號不能與用戶表已有的賬號重復就可以。注冊功能測試表,如圖6-2所示。表6-2注冊功能測試表測試內容錄入的數(shù)據(jù)預期結果最終結果輸入用戶表的賬號賬號:user操作失敗操作失敗輸入用戶表沒有的賬號賬號:abc操作成功操作成功6.3測試結果分析通過以上對個人健康管理系統(tǒng)的測試,發(fā)現(xiàn)該系統(tǒng)統(tǒng)一的界面和清晰的導航設計使系統(tǒng)易于操作。通過與用戶需求的比較,發(fā)現(xiàn)該系統(tǒng)功能完善,能夠在操作環(huán)境中正常使用,這里的操作環(huán)境類似于系統(tǒng)的生產(chǎn)環(huán)境??傊?,個人健康管理系統(tǒng)通過測試后即可使用。結論在系統(tǒng)開發(fā)之前,需要確定用戶的身份和程序的應用范圍,以便對系統(tǒng)進行準確的定位。只有精確的定位系統(tǒng)才能節(jié)省開發(fā)時間和不必要的麻煩。本系統(tǒng)的功能是幫助用戶管理自己的個人健康信息,當然本系統(tǒng)的功能也采取了一些類似的系統(tǒng)功能。系統(tǒng)設計是基于功能需求的分析,這同樣也是一個重要的組成部分,需要引起開發(fā)者的重視。系統(tǒng)前期的設計對后期的編碼起著重要的作用,這樣不僅可以降低編碼過程中的誤碼率,而且可以提高編碼的速度。畢竟,系統(tǒng)的實現(xiàn)是基于系統(tǒng)設計的。系統(tǒng)編碼完成后,將進行最終測試。當所開發(fā)的系統(tǒng)合格后,即可完成系統(tǒng)開發(fā)。本系統(tǒng)的開發(fā)遵循功能分析、系統(tǒng)模塊設計、數(shù)據(jù)庫設計、系統(tǒng)功能實現(xiàn)、系統(tǒng)功能測試等過程。系統(tǒng)采用了JAVA、JSP等技術并開展了以下幾方面工作。(1)使用JAVA作為項目的主要開發(fā)語言,后臺使用SQLServer作為數(shù)據(jù)庫管理系統(tǒng)并建立數(shù)據(jù)庫表格,本項目是一個基于Web技術的B/S結構的系統(tǒng)。(2)系統(tǒng)具有較完善的功能,使用者基本可以使用本系統(tǒng)去處理相關數(shù)據(jù),而且系統(tǒng)可以較長時間進行工作。對于系統(tǒng)的操作,使用者也易于上手,畢竟本系統(tǒng)在設計時,就對頁面中的導航目錄進行著重設計,把頁面中的重點區(qū)域用來展示系統(tǒng)的導航功能,讓使用者進入系統(tǒng)界面,可以第一時間就可以發(fā)現(xiàn)系統(tǒng)的導航,并使用系統(tǒng)的導航功能找到需要的內容。(3)本系統(tǒng)具有一定優(yōu)勢的同時也會暴露出自身的缺陷,例如系統(tǒng)在編碼的過程中對使用的變量名不便于記憶,并且變量名也不是非常規(guī)范,代碼的編寫也不是特別規(guī)范,缺少關鍵代碼的注釋等,還有項目的目錄規(guī)劃不合理等問題。本系統(tǒng)還需要時間來完善,日后運用先進成熟的技術去重構本系統(tǒng),讓系統(tǒng)日益完善。參考文獻[1]周曉雯.面向學生的健康管理系統(tǒng)的設計與實現(xiàn).中國地質大學(北京),2019.[2]王敏東,孫丹.個人健康管理服務信息平臺對健康體檢人群的作用[J].臨床醫(yī)藥文獻電子雜志,2020,28(08):200-204.[3]王云錦,趙志宏.基于B/S架構的健康管理平臺的設計與實現(xiàn)[J].電腦知識與技術,2010(33):495-497.[4]張永瑞.基于Android及JavaWeb平臺的個人健康信息管理系統(tǒng)[D].西安電子科技大學,2014.[5]賈賀順.基于JavaEE平臺的個人健康管理系統(tǒng)設計與實現(xiàn)[J].南京郵電大學,2018,50(20):247-248.[7]禹蒙蒙.基于B/S架構的健康管理系統(tǒng)的設計與實現(xiàn)[J].管理與科技(上旬刊),2018(08):179-180.[8]程燦.計算機軟件Java編程及應用分析[J].科技創(chuàng)新與應用,2020(16):170-180.[9]馬達,彭濤,周春光,等.基于網(wǎng)絡的個人健康管理實時監(jiān)控健康分析平臺[J].吉林大學學報(理學版),2010(03):461-463.[10]張云健.計算機軟件Java編程特點及其技術應用[J].信息與電腦(理論版),2019(13):97-98.[10]李民璽,馬凱,楊曉東.基于Web平臺的輔助診斷系統(tǒng)[J].軟件,2020,486(10):42-45.[11]吳雨渲,嚴張凌.基于微服務架構的個人健康管理系統(tǒng)的設計與實現(xiàn)[J].信息與電腦(理論版),2020,32;No.457(15):101-103.[12]岳青玲.Java面向對象編程的三大特性[J].電子技術與軟件工程,2019(24):239-240.[13]劉星淇.Java編程語言的特點與應用分析[J].通訊世界,2019,26(09):149-150.[13]CernianAlexandra,TiganoaiaBogdan.ABlockchain-BasedApproachtoIntergetPersonalHealthRecords[J].FusionEngineeringandDesign,2020.[14]WilliamD,Freeman,MeredithKarney.ChallengesofPersonalHealthRecords[J].HealthInformaticsJournal,2019,100.附錄/***健康報告*/publicclassHealthReportActivityextendsAppCompatActivity{privateintstepCount=0;privateTextViewshow_length,show_cal,show_step,show_weight;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_health_report);show_cal=(TextView)findViewById(R.id.show_cal);show_weight=(TextView)findViewById(R.id.show_weight);show_step=(TextView)findViewById(R.id.show_step);show_length=(TextView)findViewById(R.id.show_length);Useruser=BmobUser.getCurrentUser(User.class);Stringweight=user.getWeight()+"";if(user.getStep()!=null){intcount=0;Datedate=newDate(System.currentTimeMillis());SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");StringcurrentTime=sdf.format(date);Stringday=currentTime.substring(8,10);if(day.substring(0,1).equals("0")){count=Integer.parseInt(day.substring(1,2));}else{count=Integer.parseInt(day);}floatstart=1f;for(inti=(int)start;i<start+count;i++){Calendarcal=Calendar.getInstance();cal.setTime(newDate());cal.set(Calendar.HOUR_OF_DAY,0);cal.set(Calendar.MINUTE,0);cal.set(Calendar.SECOND,0);cal.set(Calendar.MILLISECOND,0);cal.set(Calendar.DAY_OF_MONTH,cal.get(Calendar.DAY_OF_MONTH)-count+i);//讓日期減去5DateendDate=cal.getTime();SimpleDateFormatsimpleDateFormat=newSimpleDateFormat("yyyy-MM-dd");Stringd=simpleDateFormat.format(endDate);intk=user.getStepDate().size();for(intj=0;j<count;j++){if(k-1-j>=0&&user.getStepDate().get(k-1-j).equals(d)){inty=Integer.parseInt(user.getStep().get(k-1-j));stepCount+=y;break;}}}}DecimalFormatdf=newDecimalFormat("0.00");show_step.setText("步數(shù):"+stepCount);show_length.setText("距離:"+df.format(stepCount*0.75/1000)+"公里");show_cal.setText("熱量:"+df.format(stepCount*0.056)+"千卡");show_weight.setText("體重:"+weight+"kg");}}/***用戶運動周和月歷史*/publicclassStepHistoryActivityextendsAppCompatActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_step_history);finalTextViewzhou=(TextView)findViewById(R.id.zhou);finalTextViewyue=(TextView)findViewById(R.id.yue);finalWeekFragmentblankFragment=newWeekFragment();finalMonthFragmentblankFragment2=newMonthFragment();FragmentManagerfragmentManager1=getSupportFragmentManager();FragmentTransactionfragmentTransaction=fragmentManager1.beginTransaction();fragmentTransaction.add(R.id.container4,blankFragment);fragmentTmit();zhou.setClickable(false);zhou.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){FragmentManagerfragmentManager=getSupportFragmentManager();FragmentTransactiontransaction=fragmentManager.beginTransaction();transaction.replace(R.id.container4,blankFragment);mit();yue.setClickable(true);zhou.setClickable(false);zhou.setTextColor(getResources().getColor(R.color.orangered));yue.setTextColor(getResources().getColor(R.color.black));}});yue.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){FragmentManagerfragmentManager=getSupportFragmentManager();FragmentTransactiontransaction=fragmentManager.beginTransaction();transaction.replace(R.id.container4,blankFragment2);mit();yue.setClickable(false);zhou.setClickable(true);zhou.setTextColor(getResources().getColor(R.color.black));yue.setTextColor(getResources().getColor(R.color.orangered));}});}}/**

*體重管理

*/publicclassWeightActivityextendsActivityimplementsView.OnClickListener{

privateEditTextedit_weight,edit_height;

privateButtondetermine;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_weight);

edit_weight=(EditText)findViewById(R.id.edit_weight);

edit_height=(EditText)findViewById(R.id.edit_height);

determine=(Button)findViewById(R.id.btn_determine);

determine.setOnClickListener(this);

}

@Override

publicvoidonClick(Viewview){

switch(view.getId()){

caseR.id.btn_determine:

doubleuserWeight=0;

Stringweight=edit_weight.getText().toString();

Stringheight=edit_height.getText().toString();

if(BmobUser.getCurrentUser(User.class).getWeight()!=null){

userWeight=Double.parseDouble(BmobUser.getCurrentUser(User.class).getWeight());

}

Stringinfo="";

if(!weight.isEmpty()&&!height.isEmpty()){

doubled_weight=Double.parseDouble(weight);

doubled_height=Double.parseDouble(height)/100;

if(userWeight>0){

if(userWeight>d_weight){

info=",與上次測量相比減少了"+(userWeight-d_weight)+"kg";

}elseif(userWeight<d_weight){

info=",與上次測量相比增加了"+(d_weight-userWeight)+"kg";

}else{

info=",與上次測量相比體重沒有變化";

}

}

finaldoubleresult=d_weight/d_height/d_height;

BigDecimalbigDecimal=newBigDecimal(result);

AlertDialog.Builderbuilder=newAlertDialog.Builder(WeightActivity.this);

builder.setTitle("成年人正常體重指數(shù)為18.5-22.9");

builder.setMessage("你的體重指數(shù)為"+bigDecimal.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue()+info);

builder.setCancelable(false);

builder.setPositiveButton("確定",newDialogInterface.OnClickListener(){

@Override

publicvoidonClick(DialogInterfacedialogInterface,inti){

if(result<22.9&&result>18.5){

Toast.makeText(WeightActivity.this,"體重正常,請保持",Toast.LENGTH_SHORT).show();

}elseif(result>22.9){

Toast.makeText(WeightActivity.this,"體重偏重,請減肥",Toast.LENGTH_SHORT).show();

}elseif(result<18.5){

Toast.makeText(WeightActivity.this,"體重過輕,請增加飲食",Toast.LENGTH_SHORT).show();

}

}

});

builder.show();

Useruser=newUser();

user.setWeight(d_weight+"");

user.update(BmobUser.getCurrentUser(User.class).getObjectId(),newUpdateListener(){

@Override

publicvoiddone(BmobExceptione){

if(e==null){

}else{

Log.d("tag","done:"+e.getMessage());

}

}

});

break;

}else{

Toast.makeText(WeightActivity.this,"請輸入",Toast.LENGTH_SHORT).show();

}

default:

break;

}

}

@Override

publicvoidonBackPressed(){

super.onBackPressed();

finish();

}}/***步數(shù)檢測器*/publicclassStepDetectorimplementsSensorEventListener{ privatefloatmLimit=10;privatefloatmLastValues[]=newfloat[3*2];privatefloatmScale[]=newfloat[2];privatefloatmYOffset;privatefloatmLastDirections[]=newfloat[3*2];privatefloatmLastExtremes[][]={newfloat[3*2],newfloat[3*2]};privatefloatmLastDiff[]=newfloat[3*2];privateintmLastMatch=-1;privateStepListenermListener;publicStepDetector(){inth=480;mYOffset=h*0.5f;mScale[0]=-(h*0.5f*(1.0f/(SensorManager.STANDARD_GRAVITY*2)));mScale[1]=-(h*0.5f*(1.0f/(SensorManager.MAGNETIC_FIELD_EARTH_MAX)));}publicvoidsetSensitivity(floatsensitivity){mLimit=sensitivity;}publicvoidsetStepListener(StepListenersl){ mListener=sl;}@SuppressWarnings("deprecation") publicvoidonSensorChanged(SensorEventevent){Sensorsensor=event.sensor;synchronized(this){if(sensor.getType()==Sensor.TYPE_ORIENTATION){}else{intj=(sensor.getType()==Sensor.TYPE_ACCELEROMETER)?1:0;if(j==1){floatvSum=0;for(inti=0;i<3;i++){finalfloatv=mYOffset+event.values[i]*mScale[j];vSum+=v;}intk=0;floatv=vSum/3;floatdirection=(v>mLastValues[k]?1:(v<mLastValues[k]?-1:0));if(direction==-mLastDirections[k]){ intextType=(direction>0?

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論