版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
[21]。除此之外,SQLite還提供了豐富的功能,比如支持主鍵、外鍵約束,確保數(shù)據(jù)有效性,內(nèi)置查詢計(jì)劃和索引優(yōu)化,提高檢索效率等。在記賬本app開發(fā)中,SQLite主要用于存儲(chǔ)用戶賬單數(shù)據(jù),管理儲(chǔ)蓄計(jì)劃以及快速本地查詢賬單等。SQLite通過其簡(jiǎn)潔性和可靠性,成為移動(dòng)開發(fā)中本地存儲(chǔ)的首選方案。2.5第三方庫(kù)2.5.1MPAndroidChartMPAndroidChart是Android平臺(tái)設(shè)計(jì)的開源圖表庫(kù),圖表類型多樣,數(shù)據(jù)可視化功能可進(jìn)行定制。開發(fā)記賬本應(yīng)用時(shí),用其把消費(fèi)數(shù)據(jù)以圖形展示。通過集成折線圖、柱狀圖、餅圖等組件,系統(tǒng)能直觀呈現(xiàn)用戶月度消費(fèi)趨勢(shì)、收支對(duì)比、消費(fèi)分類占比等關(guān)鍵財(cái)務(wù)信息。在App開發(fā)中,餅圖可直觀展示餐飲、交通、娛樂等不同消費(fèi)類別比例分布。它憑借流暢交互體驗(yàn)和靈活樣式配置,方便開發(fā)者通過簡(jiǎn)單API調(diào)用實(shí)現(xiàn)復(fù)雜圖表效果,且支持手勢(shì)縮放和動(dòng)態(tài)更新,讓數(shù)據(jù)展示美觀實(shí)用,提高用戶對(duì)自身財(cái)務(wù)狀況的認(rèn)知效率,幫助消費(fèi)者較快發(fā)現(xiàn)消費(fèi)習(xí)慣潛在問題。2.5.2ext-recognition-chineseMLKit的文本識(shí)別(TextRecognition)功能是Google提供的機(jī)器學(xué)習(xí)工具包的重要組成部分,其中針對(duì)中文優(yōu)化的ChineseTextRecognizerOptions可以高效準(zhǔn)確地識(shí)別包含中文、數(shù)字和符號(hào)的文本內(nèi)容。在進(jìn)行app開發(fā)時(shí),這個(gè)功能主要用于紙質(zhì)賬單數(shù)字化處理,比如用戶掃描導(dǎo)入紙質(zhì)購(gòu)物小票,系統(tǒng)就會(huì)自動(dòng)識(shí)別圖像里消費(fèi)金額、物品名稱、數(shù)量、單價(jià)等關(guān)鍵信息,隨即轉(zhuǎn)成結(jié)構(gòu)化數(shù)據(jù)直接填到記賬表單里。這既減少了用戶手動(dòng)輸入工作量,也能避免人為輸入出錯(cuò)。與其他OCR方案相比,MLKit憑借本地化處理能力,無需網(wǎng)絡(luò)就能運(yùn)行,還能適應(yīng)復(fù)雜版面,讓記賬功能變得更智能便捷。通過使用這個(gè)庫(kù),記賬操作從以前傳統(tǒng)的表單填寫模式升級(jí)為智能化圖像識(shí)別模式,極高提升了用戶體驗(yàn)和記賬本應(yīng)用的技術(shù)附加值。2.6本章小結(jié)本章主要介紹記賬本app設(shè)計(jì)中所使用到的技術(shù),開發(fā)采用Kotlin語言實(shí)現(xiàn)數(shù)據(jù)處理與業(yè)務(wù)邏輯,并且采用MVC架構(gòu)和SQLite數(shù)據(jù)庫(kù)進(jìn)行本地?cái)?shù)據(jù)存儲(chǔ)。與此同時(shí)集成MPAndroidChart實(shí)現(xiàn)數(shù)據(jù)可視化展示和MLKit的文本識(shí)別技術(shù)優(yōu)化用戶輸入體驗(yàn)。這些技術(shù)的使用為記賬本App的功能實(shí)現(xiàn)提供了穩(wěn)固的技術(shù)支撐。第3章需求分析3.1系統(tǒng)需求概述隨著移動(dòng)互聯(lián)網(wǎng)、云計(jì)算等技術(shù)的迅猛發(fā)展,記賬本應(yīng)用在個(gè)人財(cái)務(wù)管理中得到了廣泛應(yīng)用,這不僅僅為用戶提供了便捷的功能而且推動(dòng)了人們對(duì)財(cái)務(wù)管理意識(shí)的提升。本app是為用戶提供一個(gè)智能化、便攜的記賬管理平臺(tái)并且包括注冊(cè)登錄、隨時(shí)記賬、掃描記賬、攢錢計(jì)劃、查詢統(tǒng)計(jì)、消費(fèi)預(yù)警和設(shè)置購(gòu)物清單的功能,能夠滿足個(gè)人財(cái)務(wù)管理的多樣化需求,并且?guī)椭脩舾玫乩斫夂涂刂谱约旱呢?cái)務(wù)狀況。3.2功能需求分析3.2.1系統(tǒng)用例圖模型系統(tǒng)的功能需求包括直接記賬其包括收支類型,備注和金額;賬單掃描則包括物品名稱,物品金額,物品數(shù)量和物品單價(jià);統(tǒng)計(jì)查詢,包括餅形圖展示比例,當(dāng)日賬單和當(dāng)月收支總覽;查詢賬單,包括按天查詢和按月查詢;攢錢計(jì)劃包括計(jì)劃創(chuàng)建,存錢進(jìn)度跟蹤和計(jì)劃完成提醒;消費(fèi)預(yù)警包括自定義預(yù)警閾值以及試試消費(fèi)提醒;購(gòu)物清單則包括清單創(chuàng)建,商品管理和計(jì)劃創(chuàng)建。系統(tǒng)總用例圖模型如圖3-1所示。圖3-1系統(tǒng)總用例圖3.2.2記賬功能記賬功能是記賬本應(yīng)用的核心模塊幫助用戶記錄日常的收入與支出情況。此功能主要由金額、收支類型和備注組成并且可以根據(jù)實(shí)際的消費(fèi)場(chǎng)景選擇相應(yīng)的收支類型來填寫具體金額和特殊備注。系統(tǒng)提供了預(yù)設(shè)的收支類型選項(xiàng),收入類以工資、獎(jiǎng)金、投資收益為代表,支出類以餐飲、購(gòu)物、交通、娛樂為代表并且系統(tǒng)還支持用戶在“其他”選項(xiàng)中自定義收支類型。備注信息會(huì)與對(duì)應(yīng)的記賬記錄進(jìn)行綁定,并且查看記錄時(shí)同步顯示。其用例圖如圖3-2所示。圖3-2系統(tǒng)記賬功能用例圖3.2.3掃描賬單掃描賬單功能利用OCR技術(shù),提取消費(fèi)金額、物品名稱、物品數(shù)量和物品單價(jià)。與此同時(shí)系統(tǒng)會(huì)根據(jù)預(yù)設(shè)規(guī)則將物品分類到相應(yīng)的類別中,識(shí)別結(jié)果會(huì)以結(jié)構(gòu)化數(shù)據(jù)的形式存儲(chǔ)為了接著的后續(xù)的數(shù)據(jù)處理與分析。隨后系統(tǒng)會(huì)根據(jù)常見物品的分類邏輯,將識(shí)別出的物品歸類到相應(yīng)的類別中。并且系統(tǒng)會(huì)動(dòng)態(tài)更新分類規(guī)則,分類結(jié)果將與識(shí)別信息綁定以便用戶確認(rèn),系統(tǒng)提供“確認(rèn)”按鈕用于保存最終結(jié)果,“重新掃描”按鈕允許用戶重新上傳圖片進(jìn)行識(shí)別。其用例圖如圖3-3所示。圖3-3系統(tǒng)掃描賬單用例圖3.2.4統(tǒng)計(jì)賬單統(tǒng)計(jì)賬單功能主要包括展示當(dāng)日賬單、當(dāng)月收支總覽和餅形圖展示。當(dāng)日賬單用戶能夠查看當(dāng)天所有收支記錄的金額、收支類型和備注。當(dāng)月收支用戶能夠查看當(dāng)月的總收入、總支出和結(jié)余情況,并且允許用戶按周或自定義時(shí)間段查看收支情況。餅形圖展示了收入與支出中不同類別的占比情況,用戶可以查看具體類別的收支詳情。其用例圖如圖3-4所示。圖3-4統(tǒng)計(jì)賬單用例圖3.2.5查詢賬單查詢賬單功能能夠查看當(dāng)天或當(dāng)月的收入與支出消費(fèi)明細(xì)。按天查詢時(shí),用戶選擇具體的日期,系統(tǒng)展示當(dāng)前日期的金額、收支類型和備注收支記錄。按月查詢時(shí),用戶可以選擇具體的月份,系統(tǒng)展示選定月份的所有收支記錄以及每日的消費(fèi)明細(xì)。其用例圖如圖3-5所示。圖3-5查詢賬單用例圖3.2.6攢錢計(jì)劃攢錢功能允許用戶根據(jù)不同的儲(chǔ)蓄目標(biāo)創(chuàng)建攢錢計(jì)劃分類,并為每個(gè)分類設(shè)定目標(biāo)金額。用戶可以在各個(gè)分類下添加儲(chǔ)蓄記錄,系統(tǒng)會(huì)自動(dòng)匯總并顯示每個(gè)計(jì)劃的累計(jì)儲(chǔ)蓄進(jìn)度,其用例圖如圖3-6所示。圖3-6攢錢計(jì)劃用例圖3.2.7消費(fèi)預(yù)警消費(fèi)預(yù)警功使用戶能夠設(shè)定每月的支出閾值并且系統(tǒng)會(huì)實(shí)時(shí)監(jiān)控用戶的消費(fèi)情況。當(dāng)本月支出達(dá)到設(shè)定閾值的90%時(shí),系統(tǒng)會(huì)發(fā)出“即將超出”預(yù)警;若支出超過閾值,則發(fā)出“已超出”預(yù)警;若支出在閾值以下,則本月支出正常。其用例圖如圖3-7所示。圖3-7消費(fèi)預(yù)警用例圖3.2.8購(gòu)物清單購(gòu)物清單允許用戶創(chuàng)建購(gòu)物清單并從商品表中添加所需購(gòu)買的商品,并將商品分為“需購(gòu)買”和“已購(gòu)買”兩類,當(dāng)需購(gòu)買清單中的商品全部采購(gòu)?fù)戤叄栀?gòu)清單將自動(dòng)歸類到已購(gòu)清單中。其用例圖如圖3-8所示。圖3-8購(gòu)物清單用例圖3.2.9系統(tǒng)用例表注冊(cè)用例在用戶想創(chuàng)建新賬號(hào)時(shí)觸發(fā)。用戶點(diǎn)擊“注冊(cè)”按鈕創(chuàng)建新用戶,需要輸入用戶名,密碼,重復(fù)密碼。若輸入不合法系統(tǒng)會(huì)有對(duì)應(yīng)的錯(cuò)誤提示,若沒有輸入任何信息,系統(tǒng)提示用戶名或密碼錯(cuò)誤,若重復(fù)密碼與密碼不同,系統(tǒng)提示兩次輸入密碼不一致,用例流程如下:表3-1注冊(cè)用例表用戶注冊(cè)參與者用戶觸發(fā)條件用戶通過填寫必要信息注冊(cè)系統(tǒng)賬戶前置條件用戶未注冊(cè)或未登錄后置條件用戶成功注冊(cè)并登錄系統(tǒng)正常流程1.用戶進(jìn)入注冊(cè)頁(yè)面2.用戶填寫用戶名、密碼、重復(fù)密碼3.用戶提交注冊(cè)信息4.系統(tǒng)驗(yàn)證信息并創(chuàng)建賬戶擴(kuò)展流程l.沒有輸入任何信息,系統(tǒng)提示用戶名或密碼錯(cuò)誤2.輸入重復(fù)密碼與密碼不一致,系統(tǒng)提示兩次輸入的密碼不一致登錄用例在用戶想進(jìn)入系統(tǒng)時(shí)觸發(fā),是使用系統(tǒng)的第一步,用戶輸入用戶名和密碼,系統(tǒng)會(huì)驗(yàn)證用戶的憑證,如果憑證有效,系統(tǒng)允許用戶進(jìn)入主界面,否則,系統(tǒng)顯示錯(cuò)誤信息并要求重新輸入,用例流程如下:表3-2登錄用例表用戶登錄參與者用戶觸發(fā)條件用戶想登錄記賬本前置條件用戶已注冊(cè),并擁有有效用戶名和密碼后置條件用戶成功登陸后,系統(tǒng)進(jìn)入主界面,用戶可以開始使用記賬功能正常流程1.用戶輸入用戶名和密碼2.系統(tǒng)驗(yàn)證用戶的憑證3.如果憑證有效,系統(tǒng)允許用戶進(jìn)入主界面4.如果憑證無效,系統(tǒng)顯示錯(cuò)誤信息并要求重新輸入擴(kuò)展流程l.沒有輸入任何信息,系統(tǒng)提示用戶名或密碼錯(cuò)誤2.輸入密碼有誤,系統(tǒng)提示用戶名或密碼錯(cuò)誤記賬用例在用戶點(diǎn)擊“+”按鈕時(shí)觸發(fā),需要點(diǎn)擊收支類型并填寫相關(guān)金額,用戶選擇記賬類型(收入或支出)并且輸入相關(guān)信息,金額、日期、分類、備注,之后確認(rèn)記賬信息。系統(tǒng)將保存記賬信息并更新記賬本,顯示最新的記賬記錄。用例流程如下:表3-3記賬用例表記賬管理參與者用戶觸發(fā)條件用戶點(diǎn)擊“+”按鈕,進(jìn)入記賬功能前置條件用戶成功登錄系統(tǒng)后置條件記賬記錄成功保存,用戶可以在記賬本中查看該記錄正常流程1.用戶選擇記賬類型(收入或支出)2.用戶輸入相關(guān)信息,金額、日期、分類、備注3.用戶確認(rèn)記賬信息4.系統(tǒng)保存記賬信息5.系統(tǒng)更新記賬本,顯示最新的記賬記錄擴(kuò)展流程沒有輸入金額,記賬記錄顯示為空賬單掃描用例在用戶點(diǎn)擊“OCR”按鈕時(shí)觸發(fā),需要上傳賬單記錄,系統(tǒng)識(shí)別并提取賬單信息,用戶確認(rèn)提取的信息并保存賬單信息,最后系統(tǒng)更新記賬本,顯示賬單的收支記錄,用例流程如下:表3-4賬單掃描用例表賬單掃描參與者用戶觸發(fā)條件用戶點(diǎn)擊“掃描”按鈕前置條件用戶已成功登錄系統(tǒng),設(shè)備具備掃描功能后置條件掃描的賬單信息成功保存,用戶可以在記賬本中查看該記錄正常流程1.用戶打開掃描功能2.用戶上傳賬單3.系統(tǒng)識(shí)別并提取賬單信息4.用戶確認(rèn)提取的信息5.用戶保存賬單信息6.系統(tǒng)更新記賬本,顯示賬單的收支記錄擴(kuò)展流程如果識(shí)別不準(zhǔn)確,用戶可以選擇手動(dòng)輸入賬單信息賬單統(tǒng)計(jì)用例在用戶點(diǎn)擊“統(tǒng)計(jì)”按鈕時(shí)觸發(fā),可用戶進(jìn)入統(tǒng)計(jì)頁(yè)面,系統(tǒng)顯示當(dāng)日、當(dāng)月的收支記錄和收支總覽,生成并顯示餅形圖,展示消費(fèi)比例用例,可展示消費(fèi)者的消費(fèi)習(xí)慣,用例流程如下:表3-5賬單統(tǒng)計(jì)用例表賬單統(tǒng)計(jì)參與者用戶觸發(fā)條件用戶點(diǎn)擊“統(tǒng)計(jì)”按鈕前置條件用戶已成功登錄系統(tǒng),進(jìn)入主界面后置條件用戶成功查看信息正常流程1.用戶進(jìn)入統(tǒng)計(jì)頁(yè)面2.系統(tǒng)顯示當(dāng)日、當(dāng)月的收支記錄3.系統(tǒng)顯示收支總覽4.系統(tǒng)生成并顯示餅形圖,展示消費(fèi)比例擴(kuò)展流程用戶可以選擇查看歷史月份的統(tǒng)計(jì)信息賬單查詢用例在用戶當(dāng)月收支總覽中,用戶進(jìn)入查詢頁(yè)面,點(diǎn)擊日期選擇器按鈕,用戶選擇查詢?nèi)掌诓⑻峤徊樵冋?qǐng)求,之后系統(tǒng)顯示該月份的具體消費(fèi)記錄。用例流程如下:3-6賬單查詢用例表賬單查詢參與者用戶觸發(fā)條件用戶查詢?nèi)我庖惶旎蛞辉碌南M(fèi)記錄前置條件用戶已成功登錄系統(tǒng)后置條件用戶成功查詢到消費(fèi)記錄正常流程1.用戶進(jìn)入查詢頁(yè)面2.用戶選擇查詢?nèi)掌诓⑻峤徊樵冋?qǐng)求3.系統(tǒng)顯示該月份的具體消費(fèi)記錄擴(kuò)展流程無該日期或月份的消費(fèi)記錄,顯示暫無數(shù)據(jù)創(chuàng)建攢錢計(jì)劃用例在用戶進(jìn)入攢錢頁(yè)面時(shí)觸發(fā),用戶可以創(chuàng)建不同的攢錢計(jì)劃分類,每個(gè)分類包含目標(biāo)金額和用途說明。用例流程如下:表3-7創(chuàng)建攢錢計(jì)劃用例表創(chuàng)建攢錢計(jì)劃參與者用戶觸發(fā)條件用戶進(jìn)入攢錢頁(yè)面前置條件用戶已成功登錄系統(tǒng)后置條件新的攢錢計(jì)劃分類被成功創(chuàng)建,用戶可在計(jì)劃列表中查看正常流程1.用戶進(jìn)入攢錢功能2.用戶輸入計(jì)劃名稱和目標(biāo)金額3.系統(tǒng)保存新建的攢錢計(jì)劃分類,并更新計(jì)劃列表擴(kuò)展流程用戶輸入的信息不完整或格式錯(cuò)誤則重新輸入添加儲(chǔ)蓄用例用例在用戶進(jìn)入攢錢頁(yè)面時(shí)觸發(fā),用戶不同計(jì)劃下輸入金額,系統(tǒng)會(huì)自動(dòng)匯總并顯示累計(jì)儲(chǔ)蓄進(jìn)度,除此之外還可以查看儲(chǔ)蓄記錄。用例流程如下:表3-8添加儲(chǔ)蓄記錄用例表添加儲(chǔ)蓄記錄參與者用戶觸發(fā)條件用戶進(jìn)入攢錢頁(yè)面前置條件用戶已登錄并至少創(chuàng)建了一個(gè)攢錢計(jì)劃分類后置條件新的儲(chǔ)蓄記錄被成功添加,計(jì)劃的累計(jì)儲(chǔ)蓄金額更新正常流程1.用戶選擇一個(gè)已有的攢錢計(jì)劃分類2.用戶輸入儲(chǔ)蓄金額和備注信息3.系統(tǒng)保存新的儲(chǔ)蓄記錄,并更新該計(jì)劃的累計(jì)儲(chǔ)蓄金額擴(kuò)展流程用戶輸入的金額不合理則重新輸入消費(fèi)預(yù)警用例在用戶開始記賬時(shí)觸發(fā),用戶設(shè)定每月的支出閾值,系統(tǒng)實(shí)時(shí)監(jiān)控用戶的消費(fèi)情況。當(dāng)本月支出達(dá)到設(shè)定閾值的90%時(shí),系統(tǒng)發(fā)出“即將超出”預(yù)警;若支出超過閾值,則發(fā)出“已超出”預(yù)警;若支出在閾值以下,則本月支出正常。表3-9消費(fèi)預(yù)警用例表消費(fèi)預(yù)警參與者系統(tǒng)觸發(fā)條件用戶開始記賬前置條件用戶已設(shè)置月支出閾值后置條件用戶收到當(dāng)前支出狀態(tài)的預(yù)警通知正常流程1.系統(tǒng)定期計(jì)算用戶本月累計(jì)支出2.系統(tǒng)將累計(jì)支出與設(shè)定的閾值進(jìn)行比較3.根據(jù)比較結(jié)果,系統(tǒng)判斷支出狀態(tài):若支出低于閾值的90%,狀態(tài)為“正?!保糁С鲞_(dá)到閾值的90%,狀態(tài)為“即將超出”,若支出超過閾值,狀態(tài)為“已超出”4.系統(tǒng)根據(jù)支出狀態(tài)向用戶發(fā)送相應(yīng)的預(yù)警通知擴(kuò)展流程若閾值為負(fù)數(shù)或非數(shù)字則輸入有效的閾值添加商品用例在進(jìn)入購(gòu)物清單界面時(shí)觸發(fā),用戶可以創(chuàng)建購(gòu)物清單,并從商品表中添加所需購(gòu)買的商品并且購(gòu)物清單中的商品分為“需購(gòu)買”和“已購(gòu)買”兩類。用例流程如下:表3-10添加商品用例表添加商品參與者用戶觸發(fā)條件進(jìn)入購(gòu)物清單界面前置條件用戶已創(chuàng)建購(gòu)物清單后置條件商品被成功添加到購(gòu)物清單中,狀態(tài)為“未購(gòu)買”正常流程1.用戶選擇一個(gè)已有的購(gòu)物清單2.選擇“添加商品”功能3.系統(tǒng)顯示商品列表供用戶選擇4.系統(tǒng)將商品添加到選定的購(gòu)物清單中狀態(tài)為“需購(gòu)買”擴(kuò)展流程用戶輸入的商品名稱為空,系統(tǒng)無反應(yīng)3.3非功能需求分析(1)安全性需求在記賬本系統(tǒng)中,系統(tǒng)必須確保個(gè)人財(cái)務(wù)信息得到保護(hù),同時(shí)防止數(shù)據(jù)泄露或沒有經(jīng)過授權(quán)的訪問,想要進(jìn)入記賬本用戶必須進(jìn)行登錄,未注冊(cè)用戶要先進(jìn)行注冊(cè)。注冊(cè)時(shí)用戶要提供用戶名和密碼,并且在登錄時(shí)要對(duì)輸入的用戶名和密碼在數(shù)據(jù)庫(kù)中進(jìn)行查找。(2)可用性需求此記賬本的設(shè)計(jì)以直觀和易用為標(biāo)準(zhǔn),以基礎(chǔ)功能記賬和查看統(tǒng)計(jì)為例,需要保證突出顯示,并且戶快速找到入口。在用戶進(jìn)行操作時(shí)系統(tǒng)可提供及時(shí)的反饋,不管是成功操作還是錯(cuò)誤提示都可以告知用戶。成功操作后,系統(tǒng)可以顯示確認(rèn)消息,反之在出現(xiàn)錯(cuò)誤時(shí),系統(tǒng)能明確指出問題并提供解決方案。(3)兼容性需求因?yàn)锳ndroid設(shè)備種類繁多的原因,系統(tǒng)需要保障在不同設(shè)備上的兼容性以及不同設(shè)備的屏幕尺寸和硬件性能。首先,在開發(fā)過程中要充分調(diào)查不同Android版本間的API差異和功能變更。其二,考慮到不同設(shè)備的屏幕尺寸將應(yīng)采用響應(yīng)式設(shè)計(jì),保障在各種分辨率的設(shè)備上都能保持良好的用戶體驗(yàn)。并且對(duì)于低性能設(shè)備app需進(jìn)行性能優(yōu)化,保證在資源不允許的環(huán)境下依舊能夠運(yùn)行,除此之外開發(fā)過程中要注意內(nèi)存使用和處理器負(fù)擔(dān)防止出現(xiàn)卡頓現(xiàn)象。(4)UI交互需求界面設(shè)計(jì)需保證簡(jiǎn)潔大方不僅要滿足用戶需求,還不能使操作變得復(fù)雜。在每個(gè)功能頁(yè)面的頂部,都會(huì)設(shè)置標(biāo)題欄和返回按鈕方便用戶進(jìn)行返回操作。主界面的布局設(shè)計(jì)將與功能相關(guān)的內(nèi)容集中在標(biāo)題欄和導(dǎo)航欄之間,并且其余的功能安排在標(biāo)題欄下方,各個(gè)功能界面的設(shè)計(jì)從實(shí)際需求出發(fā)來合理安排控件的位置。其二,還要保障良好的交互性,當(dāng)用戶輸入數(shù)據(jù)時(shí),系統(tǒng)對(duì)輸入數(shù)據(jù)進(jìn)行即時(shí)驗(yàn)證。反之若輸入不符合條件要求將彈出提示信息。這不僅幫助用戶提高輸入的準(zhǔn)確性,而且減少因錯(cuò)誤輸入導(dǎo)致的后續(xù)問題。除此之外因?yàn)榭紤]到系統(tǒng)運(yùn)行的穩(wěn)定性,當(dāng)系統(tǒng)因?yàn)閮?nèi)部故障或外部因素導(dǎo)致無法正常運(yùn)行時(shí),將及時(shí)向用戶反饋相應(yīng)的錯(cuò)誤信息。3.4本章小結(jié)本章對(duì)記賬本App的功能需求和非功能需求進(jìn)行了需求分析。在功能需求方面,對(duì)記賬管理、賬單掃描、統(tǒng)計(jì)查詢、攢錢計(jì)劃、消費(fèi)預(yù)警和購(gòu)物清單等核心功能模塊進(jìn)行用例分析。在非功能需求方面,從安全性、可用性、兼容性和UI交互進(jìn)行了可行性分析,驗(yàn)證了系統(tǒng)開發(fā)的可行性,保障了后續(xù)的設(shè)計(jì)與開發(fā)。系統(tǒng)設(shè)計(jì)4.1系統(tǒng)功能模塊設(shè)計(jì)根據(jù)軟件需求分析結(jié)果,設(shè)計(jì)出本系統(tǒng)的基本功能模塊層次結(jié)構(gòu),如圖4-1所示。該系統(tǒng)細(xì)分為四個(gè)主要模塊。它們分別為記賬模塊分為直接記賬,掃描記賬;統(tǒng)計(jì)模塊分為當(dāng)日統(tǒng)計(jì),當(dāng)月統(tǒng)計(jì),圖表展示模塊;查詢功能模塊分為按天查詢,按月查詢;用戶管理模塊分為用戶注冊(cè)與用戶登錄;購(gòu)物清單模塊分為清單創(chuàng)建,商品管理;攢錢計(jì)劃模塊分為計(jì)劃創(chuàng)建,存錢進(jìn)度跟進(jìn)以及計(jì)劃完成提醒;消費(fèi)預(yù)警模塊分為自定義預(yù)警閾值和實(shí)時(shí)消費(fèi)提醒。圖4-1系統(tǒng)功能模塊層次結(jié)構(gòu)圖4.2系統(tǒng)詳細(xì)設(shè)計(jì)4.2.1系統(tǒng)數(shù)據(jù)庫(kù)實(shí)體設(shè)計(jì)基于Android平臺(tái)的記賬本app數(shù)據(jù)庫(kù)總體設(shè)計(jì)E-R圖如圖4-2所示,總E-R圖包含八個(gè)核心實(shí)體表,分別為用戶表、記賬表、類型表、計(jì)劃分類表、計(jì)劃記錄表、消費(fèi)預(yù)警表、購(gòu)物清單表和商品表。這些表之間以清晰的一對(duì)多或多對(duì)一關(guān)系構(gòu)成了完整的數(shù)據(jù)結(jié)構(gòu)。其中用戶表是整個(gè)系統(tǒng)的核心,每位用戶可以擁有多條記賬記錄、多個(gè)攢錢計(jì)劃、多個(gè)購(gòu)物清單及多條消費(fèi)預(yù)警設(shè)置,因此與記賬表、攢錢計(jì)劃表、購(gòu)物清單表、消費(fèi)預(yù)警表之間構(gòu)成一對(duì)多的關(guān)系。記賬表用于記錄用戶的每日收支信息,因?yàn)槊織l記錄歸屬于一個(gè)用戶,并對(duì)應(yīng)一個(gè)具體的消費(fèi)類型,從而與用戶表和類型表分別形成多對(duì)一的關(guān)系。類型表則存儲(chǔ)賬目的分類信息,每種類型可對(duì)應(yīng)多條記賬記錄,體現(xiàn)為一對(duì)多關(guān)系。在攢錢功能模塊中,用戶可以創(chuàng)建多個(gè)攢錢計(jì)劃,每個(gè)計(jì)劃屬于某一分類因此計(jì)劃表與攢錢計(jì)劃分類表之間是多對(duì)一關(guān)系。為幫助用戶控制消費(fèi),系統(tǒng)提供消費(fèi)預(yù)警功能,用戶可設(shè)定每日消費(fèi)閾值等策略,消費(fèi)預(yù)警表與用戶表之間同樣是多對(duì)一關(guān)系。在購(gòu)物清單模塊中,每位用戶可建立多個(gè)購(gòu)物清單,一個(gè)購(gòu)物清單可包含多個(gè)商品條目。通過用戶記賬、攢錢、消費(fèi)控制及購(gòu)物管理等功能模塊的協(xié)同運(yùn)作,形成一個(gè)完整、結(jié)構(gòu)清晰且功能豐富的記賬本應(yīng)用數(shù)據(jù)庫(kù)架構(gòu)。圖4-2數(shù)據(jù)庫(kù)設(shè)計(jì)E-R圖用戶表用戶表包含了用戶id,密碼和用戶名,用戶可以通過正確用戶名與密碼登入系統(tǒng),用戶表實(shí)體圖如圖4-3所示。圖4-3用戶表E-R圖(2)類型表類型表包括類型圖標(biāo),主鍵類型ID,類型名稱以及標(biāo)志,其中標(biāo)志為0時(shí)代表支出,為1時(shí)代表收入,類型表實(shí)體圖如圖4-4所示。圖4-4類型E-R圖(3)記賬表用戶對(duì)當(dāng)天的消費(fèi)記錄可進(jìn)行直接記賬,記賬表包括年份,類型圖標(biāo),類型名稱,時(shí)間,用戶ID,月份,日期,備注,金額,記賬ID和標(biāo)志,其中標(biāo)志為0時(shí)代表支出,為1時(shí)代表收入,記賬表實(shí)體圖如圖4-5所示。圖4-5記賬E-R圖計(jì)劃分類表系統(tǒng)設(shè)置了攢錢計(jì)劃分類表,計(jì)劃分類表包括主鍵記賬ID,攢錢計(jì)劃的標(biāo)題和計(jì)劃預(yù)設(shè)總金額,計(jì)劃分類表實(shí)體圖如圖4-6所示。圖4-6計(jì)劃分類E-R圖計(jì)劃記錄表攢錢計(jì)劃記錄表用于表示記賬本儲(chǔ)蓄計(jì)劃的明細(xì),計(jì)劃記錄表包括存入金額和存入日期,計(jì)劃記錄表實(shí)體圖如圖4-7所示。圖4-7計(jì)劃記錄E-R圖消費(fèi)預(yù)警表消費(fèi)預(yù)警用來提醒用戶消費(fèi)即將超支,幫助用戶養(yǎng)成良好消費(fèi)習(xí)慣,消費(fèi)預(yù)警表包括預(yù)警記錄ID和觸發(fā)預(yù)警的檔位金額,消費(fèi)表實(shí)體圖如圖4-8所示。圖4-8消費(fèi)預(yù)警E-R圖購(gòu)物清單表購(gòu)物清單包括已購(gòu)物品和需購(gòu)物品,相當(dāng)于記賬本的備忘錄,購(gòu)物清單表包括購(gòu)物清單項(xiàng)ID,所屬分類ID,分類名稱,清單商品名稱以及清單名稱,購(gòu)物清單表實(shí)體圖如圖4-9所示。圖4-9購(gòu)物清單E-R圖商品表購(gòu)物清單中的物品從商品表中選取,商品表包括商品ID和商品名稱,商品表實(shí)體圖如圖4-10所示。圖4-10商品E-R圖4.2.2系統(tǒng)數(shù)據(jù)庫(kù)詳細(xì)設(shè)計(jì)用戶表設(shè)計(jì)用戶表的主要屬性包括主鍵(int)、用戶名(string)以及密碼(string)。表4-1用戶表字段名數(shù)據(jù)類型說明idint主鍵usernamestring用戶名passwordstring密碼類型表類型表的主要屬性包括類型ID(int,主鍵)、類型名稱(varchar(32))、類型圖標(biāo)(varchar(32))以及標(biāo)志(int,用于區(qū)分收支類型)。表4-2類型表字段名數(shù)據(jù)類型說明idint類型ID(主鍵)typenamevarchar(32)類型名稱typeICvarchar(32)類型圖標(biāo)flagint標(biāo)志(0支出,1收入)記賬表設(shè)計(jì)記賬表的主要屬性包括記賬ID(int,主鍵)、類型名稱(varchar(32))、類型圖標(biāo)(varchar(32))、記賬備注(varchar(128))、記賬金額(varchar(32))、記賬時(shí)間(date)、記賬年份(int)、記賬月份(int)、記賬日期(int)、標(biāo)志(int,用于區(qū)分收支類型)以及用戶ID(int,外鍵)。表4-3記賬表字段名數(shù)據(jù)類型說明idint記賬ID(主鍵)typenamevarchar(32)類型名稱typeICvarchar(32)類型圖標(biāo)remarkvarchar(128)記賬備注pricevarchar(32)記賬金額timedate記賬時(shí)間yearint記賬年份monthint記賬月份dayint記賬日期flagint標(biāo)志(0支出,1收入)User_idint用戶ID外鍵計(jì)劃分類表設(shè)計(jì)計(jì)劃分類表的主要屬性包括計(jì)劃分類ID(int,主鍵)、標(biāo)題(varchar(50))以及總金額(decimal(12))。表4-4計(jì)劃分類表段名數(shù)據(jù)類型說明plan_idint計(jì)劃分類ID(主鍵)titlevarchar(50)標(biāo)題total_amountdecimal(12)總金額計(jì)劃存錢記錄表設(shè)計(jì)計(jì)劃存錢記錄表的主要屬性包括存入金額(decimal(12))和存入日期(date)。表4-5計(jì)劃存錢記錄表字段名數(shù)據(jù)類型說明amountdecimal(12)存入金額deposit_datedate存入日期消費(fèi)預(yù)警表設(shè)計(jì)消費(fèi)預(yù)警表的主要屬性包括預(yù)警記錄id(int)和檔位金額(decimal(12))。表4-6消費(fèi)預(yù)警表字段名數(shù)據(jù)類型說明idint預(yù)警記錄idthreshold_amountdecimal(12)檔位金額購(gòu)物清單表購(gòu)物清單表的主要屬性包括所屬分類id(int)、購(gòu)物清單id(int)、分類名稱(varchar(20))、清單商品名稱(varchar(50))和清單名稱(varchar(30))。表4-7購(gòu)物清單表字段名數(shù)據(jù)類型說明category_idint所屬分類ididint購(gòu)物清單idcategory_namevarchar(20)分類名稱item_namevarchar(50)清單商品名稱list_namevarchar(30)清單名稱商品表商品表的主要屬性包括商品id(int)和商品名稱(varchar(100))。表4-8商品表段名數(shù)據(jù)類型說明idint商品idnamevarchar(100)商品名稱4.3系統(tǒng)流程設(shè)計(jì)4.3.1注冊(cè)登錄設(shè)計(jì)(1)注冊(cè)用戶要使用記賬本,需要先注冊(cè)賬號(hào),首先輸入用戶名,系統(tǒng)會(huì)判斷用戶名是否為空,若為空則提示“不能為空”,反之接著輸入密碼,若為空則提示“不能為空”,接著輸入重復(fù)密碼,注冊(cè)邏輯結(jié)構(gòu)會(huì)判斷重復(fù)密碼與輸入密碼是否相同,若不相同則提示“兩次輸入的密碼不一致”,相同則代表注冊(cè)成功。注冊(cè)成功的賬戶數(shù)據(jù)可存儲(chǔ)在數(shù)據(jù)庫(kù)中,注冊(cè)的流程圖如下:圖4-11注冊(cè)流程圖(2)登錄用戶完成注冊(cè)后輸入用戶名與密碼登錄。系統(tǒng)在輸入用戶名和密碼后會(huì)判斷用戶名是否為空,若為空將提示“用戶名或密碼錯(cuò)誤”反之接著進(jìn)行下一步輸入密碼,若密碼為空將提示“用戶名或密碼錯(cuò)誤”否則會(huì)根據(jù)登錄邏輯判斷是否與數(shù)據(jù)庫(kù)中數(shù)據(jù)匹配,若匹配則成功進(jìn)入主界面,否則會(huì)提示“用戶名或密碼錯(cuò)誤”。流程圖如下:圖4-12登錄流程圖4.3.2統(tǒng)計(jì)功能設(shè)計(jì)用戶登陸成功后主頁(yè)界面可看到當(dāng)天收支明細(xì),進(jìn)入統(tǒng)計(jì)總頁(yè)面,當(dāng)前頁(yè)面可看當(dāng)月收支總覽,顯示當(dāng)月每天的收支情況以及餅圖。右上角有日歷選擇器按鈕,可根據(jù)需求選擇某月份進(jìn)行查詢,系統(tǒng)根據(jù)用戶選擇的日期,從數(shù)據(jù)庫(kù)中查詢對(duì)應(yīng)月份的消費(fèi)記錄。若查詢結(jié)果存在,系統(tǒng)在查詢頁(yè)面上展示消費(fèi)項(xiàng)目、金額和分類,同時(shí)會(huì)有收入和支出兩個(gè)餅圖分別展示收入和支出中各類別所占比例,可以清楚地看到該月份的所有消費(fèi)記錄。統(tǒng)計(jì)流程圖如下:圖4-13統(tǒng)計(jì)功能流程圖4.3.3記賬功能設(shè)計(jì)點(diǎn)擊“+”按鈕,用戶進(jìn)入記賬頁(yè)面,用戶可以輸入收入或支出的金額、分類、時(shí)間和備注,系統(tǒng)提供了預(yù)設(shè)的收支類型供用戶選擇,收入類包括薪資、獎(jiǎng)金、其它等,支出類則包含餐飲、購(gòu)物、交通、娛樂等,并且用戶可點(diǎn)擊日歷選擇器來查看或添加特定日期的賬單記錄。當(dāng)用戶點(diǎn)擊“確定”按鈕后則保存賬單記錄并同步更新數(shù)據(jù)庫(kù),用戶將返回首頁(yè),并能在首頁(yè)查看到最新的記賬記錄。記賬流程圖如下:圖4-14記賬功能流程圖4.3.4掃描功能設(shè)計(jì)點(diǎn)擊主頁(yè)“OCR”按鈕,用戶進(jìn)入掃描界面從相冊(cè)選擇賬單進(jìn)行上傳,系統(tǒng)通過OCR對(duì)賬單進(jìn)行文本識(shí)別并提取收支記錄。之后系統(tǒng)會(huì)對(duì)識(shí)別出的消費(fèi)記錄進(jìn)行解析,提取消費(fèi)項(xiàng)目和金額并根據(jù)預(yù)設(shè)的分類規(guī)則,將消費(fèi)項(xiàng)目自動(dòng)歸類到相應(yīng)的類別中。識(shí)別完成后,用戶可以查看識(shí)別的內(nèi)容并進(jìn)行確認(rèn)或重新掃描,若確認(rèn)數(shù)據(jù)無誤,系統(tǒng)會(huì)將消費(fèi)記錄存儲(chǔ)到數(shù)據(jù)庫(kù)中并更新記賬本,用戶將返回主頁(yè),將在記賬本中看到剛剛記錄的消費(fèi)信息。掃描流程圖如下:圖4-15掃描功能流程圖4.3.5查詢功能設(shè)計(jì)用戶點(diǎn)擊“統(tǒng)計(jì)”按鈕進(jìn)入查詢頁(yè)面,之后用戶可以選擇查詢方式,包括“按月查詢”或“按天查詢”。如果選擇“按月查詢”并通過日期選擇器選擇查詢的月份,在提交查詢請(qǐng)求后,系統(tǒng)從數(shù)據(jù)庫(kù)中查詢對(duì)應(yīng)月份的消費(fèi)記錄。若查詢結(jié)果存在,系統(tǒng)展示消費(fèi)項(xiàng)目、金額和分類,并以餅圖的方式顯示該月份的收支比例;若查詢結(jié)果不存在,則不顯示消費(fèi)記錄。若用戶選擇“按天查詢”并通過日期選擇器選擇具體日期,在提交查詢請(qǐng)求后系統(tǒng)查詢對(duì)應(yīng)日期的消費(fèi)記錄,并展示當(dāng)天的收支明細(xì)和總收入支出金額,反之不顯示消費(fèi)記錄。流程圖如下:圖4-16查詢功能流程圖4.3.6計(jì)劃功能設(shè)計(jì)用戶點(diǎn)擊“攢錢計(jì)劃”按鈕進(jìn)入攢錢計(jì)劃頁(yè)面。之后選擇創(chuàng)建新計(jì)劃,輸入計(jì)劃名稱和目標(biāo)金額,提交后系統(tǒng)保存新的攢錢計(jì)劃。查看計(jì)劃列表時(shí),系統(tǒng)展示所有已創(chuàng)建的攢錢計(jì)劃并且展示儲(chǔ)蓄記錄明細(xì)和當(dāng)前進(jìn)度。當(dāng)添加儲(chǔ)蓄記錄時(shí)用戶選擇一個(gè)計(jì)劃,輸入金額提交后系統(tǒng)保存新的儲(chǔ)蓄記錄,并更新該計(jì)劃的進(jìn)度。流程圖如下:圖4-17計(jì)劃功能流程圖4.3.7消費(fèi)預(yù)警功能設(shè)計(jì)用戶在點(diǎn)擊“消費(fèi)預(yù)警”按鈕進(jìn)入消費(fèi)預(yù)警頁(yè)面。之后用戶設(shè)置本月支出閾值,系統(tǒng)保存閾值并且實(shí)時(shí)監(jiān)控當(dāng)前月的總支出金額,其次判斷當(dāng)前支出與設(shè)定閾值的比例,如果支出低于閾值的90%則本月支出正常,如果支出在閾值的90%至100%之間將提示“本月支出即將超出”,如果支出超過閾值將提示“已超出本月支出”。流程圖如下:圖4-18消費(fèi)預(yù)警功能流程圖4.3.8購(gòu)物清單功能設(shè)計(jì)用戶在點(diǎn)擊“購(gòu)物清單”按鈕進(jìn)入購(gòu)物清單頁(yè)面,接著創(chuàng)建新購(gòu)物清單輸入清單名稱并提交,系統(tǒng)保存新的購(gòu)物清單。添加購(gòu)物項(xiàng)時(shí),用戶選擇一個(gè)購(gòu)物清單,輸入商品名稱和數(shù)量提交后系統(tǒng)保存新的購(gòu)物項(xiàng),并將其分類為“需購(gòu)物品”。查看購(gòu)物清單時(shí),系統(tǒng)展示所有購(gòu)物清單及其對(duì)應(yīng)的購(gòu)物項(xiàng),用戶選擇一個(gè)購(gòu)物清單查看詳情,將展示該清單中的“需購(gòu)物品”和“已購(gòu)物品”分類列表。流程圖如下:圖4-19購(gòu)物清單功能流程圖4.4本章小結(jié)本章主要介紹記賬本App的系統(tǒng)設(shè)計(jì),通過需求分析設(shè)計(jì)出了系統(tǒng)的具體功能模塊層次結(jié)構(gòu),接著進(jìn)行了系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì),詳細(xì)描述了八個(gè)核心數(shù)據(jù)表的結(jié)構(gòu)及其關(guān)系與詳細(xì)字段設(shè)計(jì),最終通過流程圖對(duì)系統(tǒng)各功能模塊的流程進(jìn)行了詳細(xì)設(shè)計(jì),為后續(xù)系統(tǒng)實(shí)現(xiàn)提供了明確的指導(dǎo)。第5章系統(tǒng)實(shí)現(xiàn)5.1注冊(cè)登錄的實(shí)現(xiàn)在登錄界面的設(shè)計(jì)中,首先輸入用戶名及密碼,點(diǎn)擊登錄按鈕后系統(tǒng)會(huì)執(zhí)行驗(yàn)證流程。首先檢查用戶名是否存在以及密碼是否與用戶名匹配,假如驗(yàn)證通過用戶將被成功進(jìn)入記賬本的主界面,反之系統(tǒng)會(huì)提示用戶用戶名或密碼錯(cuò)誤并且要求用戶重新輸入。圖5-1登錄功能圖登錄時(shí)利用login方法運(yùn)行登錄邏輯。使用findViewById獲取用戶名輸入框etUsername和密碼輸入框etPwd。通過text.toString().trim()獲取輸入內(nèi)容,并去除首尾空格。通過SharedPreferences讀取本地存儲(chǔ)的用戶信息以及getSharedPreferences來
獲取存儲(chǔ)對(duì)象,使用getString方法讀取用戶名和密碼。驗(yàn)證登錄信息時(shí)先使用TextUtils.isEmpty檢查用戶名和密碼是否為空,如果為空,提示用戶“請(qǐng)先注冊(cè)”,如果不為空,使用equals方法將輸入的用戶名和密碼與存儲(chǔ)的值進(jìn)行比較。如果匹配,跳轉(zhuǎn)到主頁(yè)面MainActivity,并關(guān)閉當(dāng)前登錄頁(yè)面,如果不匹配,提示“用戶名或者密碼錯(cuò)誤”。圖5-2登錄核心代碼圖在注冊(cè)界面中,用戶輸入希望注冊(cè)的用戶名并且設(shè)置密碼,在重復(fù)密碼輸入框中再次輸入密碼并且點(diǎn)擊確認(rèn)按鈕系統(tǒng)進(jìn)行驗(yàn)證流程。首先會(huì)檢查用戶名是否為空,其次是密碼是否符合為空以及兩次輸入的密碼是否一致。假如通過驗(yàn)證用戶將成功注冊(cè)并點(diǎn)擊“返回”按鈕跳轉(zhuǎn)到登錄界面。假如用戶名和密碼為空將提示“不能為空”,反之若第一次輸入密碼與再次輸入密碼不一致,則提示“兩次輸入的密碼不一致”。圖5-3注冊(cè)功能圖在registerUser方法中,通過findViewById獲取用戶輸入的用戶名和密碼框etUsername,etPwd,etPwd1。使用TextUtils.isEmpty方法檢查輸入框是否為空,如果有任何一個(gè)為空,則通過Toast提示用戶“不能為空”并返回,阻止后續(xù)操作。接著要檢查兩次輸入的密碼是否一致,如果不一致提示用戶“兩次輸入的密碼不一致”。反之利用SharedPreferences存儲(chǔ)用戶注冊(cè)信息,并且利用getSharedPreferences方法獲取存儲(chǔ)對(duì)象,并使用edit方法創(chuàng)建一個(gè)SharedPreferences.Editor實(shí)例。通過putString方法將用戶名和密碼存儲(chǔ)到SharedPreferences中。使用commit方法提交數(shù)據(jù),確保數(shù)據(jù)持久化存儲(chǔ)。注冊(cè)成功后,通過調(diào)用finish方法關(guān)閉當(dāng)前注冊(cè)頁(yè)面,返回到之前的頁(yè)面。圖5-4注冊(cè)核心代碼實(shí)現(xiàn)圖5.2系統(tǒng)首頁(yè)的實(shí)現(xiàn)在用戶成功登錄后將進(jìn)入記賬本的主界面。點(diǎn)擊“統(tǒng)計(jì)”按鈕進(jìn)入統(tǒng)計(jì)頁(yè)面,可以查看收支總覽并且餅圖展示當(dāng)月的整體收支比例;點(diǎn)擊記賬按鈕“+”將進(jìn)入記賬頁(yè)面進(jìn)行直接記賬;點(diǎn)擊“OCR”按鈕可通過掃描小票直接進(jìn)行記賬,若掃描結(jié)果不符合可以選擇重新掃描;點(diǎn)擊“存錢”按鈕可創(chuàng)建攢錢計(jì)劃并進(jìn)行存錢;點(diǎn)擊“購(gòu)物清單”按鈕可創(chuàng)建需購(gòu)清單,在需購(gòu)清單物品都購(gòu)買完成時(shí)將自動(dòng)加入至已購(gòu)清單中;點(diǎn)擊“預(yù)警”按鈕,可設(shè)置每月消費(fèi)預(yù)警值,在即將超過預(yù)警或已超過時(shí),系統(tǒng)會(huì)做出不同的提示。模塊效果如下圖所示:圖5-5首頁(yè)圖通過DBManager類的方法獲取當(dāng)天的賬目記錄和總收入、支出數(shù)據(jù)。代碼中使用了getDayAccountList和getDayAllMoney等方法從數(shù)據(jù)庫(kù)中拉取數(shù)據(jù),確保主界面信息的實(shí)時(shí)更新。使用RecyclerView以列表形式展示當(dāng)天的賬目信息。與此同時(shí)利用setOnClickListener方法為編輯和統(tǒng)計(jì)按鈕設(shè)置點(diǎn)擊事件,用戶點(diǎn)擊按鈕后會(huì)跳轉(zhuǎn)到對(duì)應(yīng)的EditActivity和StatisticsActivity。在onResume方法中重新加載數(shù)據(jù),確保用戶返回主界面時(shí)可以看到最新的財(cái)務(wù)數(shù)據(jù)。使用statisticsRefresh方法獲取并更新今日和本月的收入支出數(shù)據(jù)。在loadDBData方法中,通過更新mDatas列表并調(diào)用adapter.notifyDataSetChanged()通知適配器數(shù)據(jù)已更改,確保用戶能夠看到最新的賬目信息。圖5-6首頁(yè)核心代碼實(shí)現(xiàn)圖5.3統(tǒng)計(jì)功能的實(shí)現(xiàn)用戶點(diǎn)擊“統(tǒng)計(jì)”按鈕進(jìn)入統(tǒng)計(jì)頁(yè)面,可以查看某一月的收支明細(xì)并且餅圖展示當(dāng)月收入支出的具體狀況。圖5-7統(tǒng)計(jì)功能界面圖通過initVie方法初始化頁(yè)面展示內(nèi)容,包括月收支金額文本、賬單列表、餅圖。除此之外利用typeStatistic方法將數(shù)據(jù)庫(kù)中本月的收入和支出按類型分類統(tǒng)計(jì),用于繪制餅圖。并使用DBManager().getMonthTypeAllMoney來獲取某月某類別的收支金額。創(chuàng)建了兩個(gè)PieChart對(duì)象其中,pieChart1是收入,pieChart2是支出。getTypeListRatio和getTypeListRatio2方法將按類別計(jì)算出來的收入或支出數(shù)據(jù)轉(zhuǎn)成PieEntry列表作為餅圖的數(shù)據(jù)源。用getMonthTypeAllMone來查詢?cè)撛履骋皇杖牖蛑С鲱愋偷目偨痤~。圖5-8統(tǒng)計(jì)功能核心代碼實(shí)現(xiàn)圖5.4記賬功能的實(shí)現(xiàn)點(diǎn)擊首頁(yè)“+”按鈕用戶進(jìn)入記賬頁(yè)面,輸入金額、類別,備注具體收支信息。用戶可從預(yù)設(shè)的收支類型中選擇,像工資、獎(jiǎng)金、投資收益、其他的收入類別以及像餐飲、購(gòu)物、交通、娛樂、日常開銷等支出類別。記賬頁(yè)面設(shè)置有日程表按鈕點(diǎn)擊之后來根據(jù)具體日期添加賬單記錄。在記賬成功后系統(tǒng)保存賬單記錄并且更新數(shù)據(jù)庫(kù),用戶返回首頁(yè)便看到剛剛的記賬記錄,長(zhǎng)按記錄可以選擇刪除記賬記錄。圖5-9記賬功能界面圖onCreate在創(chuàng)建Fragment時(shí)初始化account對(duì)象,并設(shè)置默認(rèn)的賬目類型為“其它”。onCreateView為加載布局,初始化界面組件,設(shè)置初始時(shí)間和類型選擇的視圖。onViewCreated設(shè)置類型選擇的點(diǎn)擊監(jiān)聽器和數(shù)字按鍵的點(diǎn)擊監(jiān)聽器,initView用于查找布局中的視圖,并初始化相關(guān)的UI組件,setInitTime獲取當(dāng)前日期并設(shè)置到account對(duì)象中,initTypeView初始化類型選擇的視圖,將類型列表關(guān)聯(lián)到GridView,numOnClic為數(shù)字和操作符按鈕設(shè)置點(diǎn)擊監(jiān)聽器,更新moneyTV的內(nèi)容,通過拼接字符串實(shí)現(xiàn)金額的輸入,同時(shí)處理小數(shù)點(diǎn)和刪除功能。typeClickListene監(jiān)聽用戶在GridView中選擇的類型,并將選擇的類型信息更新到account對(duì)象。showPopu創(chuàng)建一個(gè)日歷彈窗,讓用戶選擇日期。通過CalendarView控件,設(shè)置日期改變時(shí)year、month和day的值。BtnCancel和BtnOk分別用于取消和確認(rèn)日期選擇,并更新account對(duì)象中的日期。BtnDone收集用戶輸入的金額和備注信息,進(jìn)行輸入驗(yàn)證后,調(diào)用saveInDB方法保存信息,并結(jié)束當(dāng)前Activity。使用PopupWindow顯示日歷選擇界面,提供用戶友好的日期選擇體驗(yàn)。以醫(yī)療支出為例,核心代碼如圖5-10所示。圖5-10醫(yī)療支出核心代碼5.5掃描功能的實(shí)現(xiàn)用戶點(diǎn)擊“OCR”按鈕后進(jìn)入掃描界面上傳本地賬單照片,使用OCR庫(kù)對(duì)賬單進(jìn)行文本識(shí)別并且提取消費(fèi)記錄,接著對(duì)識(shí)別出的文本進(jìn)行解析提取出消費(fèi)項(xiàng)目和金額等信息,隨后根據(jù)規(guī)則將消費(fèi)項(xiàng)目分類到不同的類別,就像蘋果屬于水果而自行車屬于交通出行。識(shí)別完成后,用戶可以查看識(shí)別內(nèi)容進(jìn)行確認(rèn)或重新掃描,最后將消費(fèi)記錄存儲(chǔ)到數(shù)據(jù)庫(kù)中并且更新記賬本,返回主頁(yè)顯示剛剛記錄的消費(fèi)信息。如圖5-11所示為小票設(shè)計(jì),圖5-12為掃描界面設(shè)計(jì)。圖5-11小票設(shè)計(jì)圖5-12掃描功能界面圖使用ContextCompat.checkSelfPermission檢查是否已授予讀取外部存儲(chǔ)的權(quán)限,假如未授予權(quán)限,調(diào)用ActivityCompat.requestPermissions請(qǐng)求權(quán)限并且權(quán)限請(qǐng)求結(jié)果通過onRequestPermissionsResult方法處理。在選擇圖片時(shí)使用ImagePicker庫(kù)從相冊(cè)中選擇圖片,ImagePickerInterface接口用于處理圖片選擇后的回調(diào)。當(dāng)用戶選擇圖片后,onGallerySingleImage方法會(huì)被調(diào)用,傳入圖片的Bitmap和Uri。將圖片轉(zhuǎn)換為InputImage對(duì)象,并調(diào)用process方法進(jìn)行文本識(shí)別,對(duì)識(shí)別出的文本按行分割,并解析為商品名稱、價(jià)格等。并且利用DBManager類將解析后的收支信息存儲(chǔ)到SQLite數(shù)據(jù)庫(kù)中。核心代碼實(shí)現(xiàn)如圖5-13所示。圖5-13掃描功能核心代碼圖5.6查詢功能的實(shí)現(xiàn)主界面點(diǎn)擊“統(tǒng)計(jì)”按鈕進(jìn)入查詢頁(yè)面,頁(yè)面包括日期選擇器和提交按鈕,點(diǎn)擊日期選擇器并且選擇希望查詢的月份和年份,隨之會(huì)自動(dòng)返回所選的日期系統(tǒng)開始處理查詢請(qǐng)求,從數(shù)據(jù)庫(kù)中查詢對(duì)應(yīng)月份的消費(fèi)記錄。若查詢結(jié)果存在,系統(tǒng)展示消費(fèi)項(xiàng)目、金額和分類,并且餅圖的設(shè)置以可視化的方式呈現(xiàn)該月份的收支比例,讓用戶更直觀地了解自己的消費(fèi)情況。圖5-14查詢功能界面圖當(dāng)用戶點(diǎn)擊選擇月份的按鈕時(shí),彈出一個(gè)對(duì)話框,用戶可以選擇具體的年份和月份。選擇確定后,更新year和month變量,并重新加載視圖。通過DBManager獲取指定月份的賬戶記錄,存儲(chǔ)在mDatas中,并使用HistoryAccountAdapter將數(shù)據(jù)綁定到RecyclerView中進(jìn)行顯示,initView方法調(diào)用typeStatistics來計(jì)算收入和支出各類別的金額,并更新餅圖顯示。DBManager獲取每個(gè)類別的收入和支出數(shù)據(jù),并將其填入餅圖數(shù)據(jù)集中。在typeStatistics中,構(gòu)建收入和支出的餅圖,分別使用getTypeListRatio1和getTypeListRatio2方法生成數(shù)據(jù)源PieEntry列表,為餅圖設(shè)置數(shù)據(jù)、顏色和標(biāo)簽,最后通過調(diào)用invalidate來刷新圖表。統(tǒng)計(jì)完畢后,更新界面上顯示的收入和支出總額,以及設(shè)置餅圖的描述文本。圖5-15查詢功能核心代碼圖5.7計(jì)劃功能的實(shí)現(xiàn)點(diǎn)擊主界面上的“計(jì)劃”按鈕,用戶進(jìn)入攢錢計(jì)劃頁(yè)面。進(jìn)入頁(yè)面后用戶輸入計(jì)劃名稱和目標(biāo)金額來創(chuàng)建新的儲(chǔ)蓄計(jì)劃。每個(gè)計(jì)劃分類下,用戶可以添加具體的儲(chǔ)蓄記錄,輸入金額并且系統(tǒng)會(huì)自動(dòng)匯總各個(gè)計(jì)劃的儲(chǔ)蓄進(jìn)度并直觀展示,幫助用戶直觀了解每個(gè)目標(biāo)的完成情況。計(jì)劃功能界面圖如圖5-16所示。圖5-16計(jì)劃功能界面圖攢錢界面使用SaveMoneyMainActivity作為主入口并與RecyclerView配合SaveMoneyCategoryAdapter展示儲(chǔ)蓄分類列表,儲(chǔ)蓄明細(xì)的展示采用二級(jí)界面模式,SaveMoneyDetailActivity通過SaveMoneyDetailAdapter展示具體儲(chǔ)蓄記錄。在添加儲(chǔ)蓄明細(xì)時(shí)同時(shí)更新分類總進(jìn)度hasSaveMoney,在分類添加界面中使用intent參數(shù)預(yù)置“創(chuàng)業(yè)”等固定分類名稱。所有界面在onResume生命周期中調(diào)用DBManager重新查詢數(shù)據(jù)并使用adapter.updateData方法數(shù)據(jù)源刷新和列表重繪,保證每次數(shù)據(jù)變化都能準(zhǔn)確反映最新進(jìn)度。整體通過分類適配器、明細(xì)適配器和分類添加適配器實(shí)現(xiàn)UI組件復(fù)用。圖5-17計(jì)劃功能核心代碼圖5.8消費(fèi)預(yù)警功能的實(shí)現(xiàn)在主界面選擇“消費(fèi)預(yù)警”功能,用戶進(jìn)入消費(fèi)預(yù)警設(shè)置頁(yè)面。在設(shè)置每月的支出閾值后系統(tǒng)將會(huì)實(shí)時(shí)監(jiān)控用戶的消費(fèi)情況,并根據(jù)當(dāng)前支出與設(shè)定閾值的比例提供三個(gè)級(jí)別提示:當(dāng)支出低于閾值的90%時(shí),屬于本月支出正常;當(dāng)支出達(dá)到閾值的90%至100%之間時(shí),提示“本月支出即將超出”;當(dāng)支出超過閾值時(shí),提示“已超出本月支出”,以此來幫助用戶及時(shí)調(diào)整消費(fèi)行為。消費(fèi)預(yù)警功能界面圖如圖5-18所示。圖5-18消費(fèi)預(yù)警功能界面圖預(yù)警列表數(shù)據(jù)綁定通過自定義的ForewarningListAdapter完成,此適配器繼承自RecyclerView.Adapter,實(shí)現(xiàn)了onCreateViewHolder創(chuàng)建視圖、onBindViewHolder綁定數(shù)據(jù)、getItemCount返回?cái)?shù)據(jù)量,當(dāng)用戶刪除預(yù)警時(shí),DBManager直接操作數(shù)據(jù)庫(kù)后立即調(diào)用notifyDataSetChanged刷新界面,確保數(shù)據(jù)的及時(shí)更新。頁(yè)面導(dǎo)航的實(shí)現(xiàn)通過Intent在不同界面間傳遞數(shù)據(jù),在ForewarningListActivity中,onResume自動(dòng)刷新數(shù)據(jù)確保從添加頁(yè)面返回時(shí)列表能展示最新數(shù)據(jù)。圖5-19消費(fèi)預(yù)警功能核心代碼圖5.9購(gòu)物清單功能的實(shí)現(xiàn)點(diǎn)擊主界面上的“購(gòu)物清單”按鈕進(jìn)入購(gòu)物清單頁(yè)面。用戶可以創(chuàng)建新的購(gòu)物清單,輸入清單名稱并從商品表中添加所需購(gòu)買的商品。購(gòu)物清單中的商品分為“需購(gòu)物品”和“已購(gòu)物品”兩個(gè)分類,當(dāng)購(gòu)物清單需購(gòu)物品全部完成時(shí),會(huì)自動(dòng)將需購(gòu)清單加到完成清單內(nèi)。購(gòu)物清單功能界面圖如圖5-20所示。圖5-20購(gòu)物清單功能界面圖購(gòu)物模塊的實(shí)現(xiàn)通過Intent實(shí)現(xiàn)界面跳轉(zhuǎn)和數(shù)據(jù)傳遞。核心界面使用RecyclerView配合GoodsListAdapter、ShopListAdapter等自定義適配器展示數(shù)據(jù),TabLayout與RecyclerView組合實(shí)現(xiàn)“需購(gòu)清單和完成清單”的狀態(tài)切換,整體數(shù)據(jù)模型設(shè)計(jì)采用嵌套結(jié)構(gòu),ShopListItem包含Goods對(duì)象集合并通過type字段區(qū)分清單狀態(tài),數(shù)據(jù)整體采用onResume生命周期自動(dòng)刷新機(jī)制確保各界面數(shù)據(jù)及時(shí)更新。當(dāng)用戶勾選商品時(shí),ShopListDetailGoodsListAdapter會(huì)自動(dòng)檢測(cè)是否所有商品都已選中,通過data.firstOrNull查詢未選商品,若不存在則自動(dòng)調(diào)用updateShopListToFinish更新清單狀態(tài)。購(gòu)物清單界面使用商品列表、清單列表、商品選擇等六個(gè)專用Adapter實(shí)現(xiàn)功能復(fù)用并且各Activity職責(zé)單一,數(shù)據(jù)流動(dòng)采用單向數(shù)據(jù)流模式,從DBManager獲取數(shù)據(jù)經(jīng)Adapter處理后更新視圖。圖5-21購(gòu)物清單功能核心代碼圖5.10本章小結(jié)本章詳細(xì)闡述了記賬本App各功能模塊的實(shí)現(xiàn)界面圖和具體實(shí)現(xiàn)過程,直觀展示了用戶注冊(cè)與登錄、首頁(yè)數(shù)據(jù)展示、收支統(tǒng)計(jì)與分析、賬單記錄與管理、掃描識(shí)別記賬、賬單查詢、儲(chǔ)蓄計(jì)劃跟蹤、消費(fèi)預(yù)警提醒以及購(gòu)物清單管理等核心功能的實(shí)現(xiàn)。本章內(nèi)容為后續(xù)系統(tǒng)的功能測(cè)試奠定了基礎(chǔ)。系統(tǒng)測(cè)試6.1測(cè)試環(huán)境測(cè)試用到的設(shè)備包括聯(lián)想平板電腦、華為nova7以及小米15,軟件測(cè)試環(huán)境是基于AndroidStudio開發(fā)平臺(tái)搭建的,能支持Android10至13的系統(tǒng)版本。測(cè)試采用SQLite數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)存儲(chǔ),使用AndroidProfiler進(jìn)行性能分析,以此測(cè)試系統(tǒng)在不同硬件配置與操作系統(tǒng)版本下的兼容性、穩(wěn)定性和性能表現(xiàn)。測(cè)試過程中運(yùn)用多種Android設(shè)備,旨在確保測(cè)試覆蓋不同硬件性能水平。表6-1硬件測(cè)試環(huán)境配置表測(cè)試項(xiàng)目聯(lián)想平板電腦華為nova7小米15操作系統(tǒng)版本Android10Android11Android13處理器型號(hào)高通驍龍865華為麒麟985聯(lián)發(fā)科天璣9200內(nèi)存容量6GB8GB12GB存儲(chǔ)空間128GB256GB256GB6.2系統(tǒng)功能模塊測(cè)試6.2.1注冊(cè)登錄功能測(cè)試(1)注冊(cè)功能測(cè)試用戶點(diǎn)擊“注冊(cè)”按鈕后會(huì)進(jìn)入注冊(cè)界面,系統(tǒng)檢測(cè)用戶名和密碼是否為空以及兩次輸入密碼是否一致。如果輸入內(nèi)容為空會(huì)提示不能為空,如果用戶名和密碼不匹配會(huì)提示兩次輸入的密碼不一致,注冊(cè)成功后會(huì)回到登陸界面。表6-2注冊(cè)功能測(cè)試用例表用例名稱操作操作過程預(yù)期結(jié)果測(cè)試結(jié)果注冊(cè)模塊測(cè)試用戶名和密碼為空點(diǎn)擊注冊(cè)按鈕不能為空正確注冊(cè)模塊測(cè)試在設(shè)置密碼和確認(rèn)密碼中輸入不一樣的密碼1.輸入用戶名和密碼2.錯(cuò)誤輸入重復(fù)密碼3.點(diǎn)擊注冊(cè)按鈕兩次輸入的密碼不一致正確注冊(cè)模塊測(cè)試輸入用戶名密碼,正確重復(fù)密碼點(diǎn)擊注冊(cè)1.輸入用戶名和密碼2.輸入重復(fù)密碼3.點(diǎn)擊注冊(cè)按鈕注冊(cè)成功正確(2)登錄功能測(cè)試用戶點(diǎn)擊“登錄”按鈕進(jìn)入登錄界面并輸入相應(yīng)的用戶名和密碼。用戶名與密碼匹配時(shí)用戶成功進(jìn)入記賬本首頁(yè)。反之若用戶名和手機(jī)號(hào)在數(shù)據(jù)庫(kù)中均不存在,系統(tǒng)會(huì)提示用戶名或密碼錯(cuò)誤。最后用戶名存在但密碼不匹配,系統(tǒng)會(huì)提示用戶名或密碼錯(cuò)誤。表6-3登錄功能測(cè)試用例表用例名稱操作操作過程預(yù)期結(jié)果測(cè)試結(jié)果登錄模塊測(cè)試正確輸入用戶名,密碼點(diǎn)擊登錄1.輸入用戶名2.輸入密碼3.點(diǎn)擊登錄按鈕登錄成功正確登錄模塊測(cè)試輸入用戶名,錯(cuò)誤密碼點(diǎn)擊登錄1.輸入用戶名2.輸入錯(cuò)誤密碼3.點(diǎn)擊登錄按鈕登錄失敗,提示賬號(hào)或密碼錯(cuò)誤正確登錄模塊測(cè)試不輸入任何信息點(diǎn)擊登錄按鈕登錄失敗,提示賬號(hào)或密碼錯(cuò)誤正確6.2.2記賬功能測(cè)試用戶點(diǎn)擊“記賬”按鈕并且選擇收支類型以及輸入金額后點(diǎn)擊完成按鈕后主頁(yè)成功顯示該類型下的具體金額,測(cè)試結(jié)果正確。其次當(dāng)用戶在基本記賬信息基礎(chǔ)上加上備注內(nèi)容后點(diǎn)擊完成按鈕,主頁(yè)不僅顯示該類型下的具體金額而且在左下角展示了備注內(nèi)容,測(cè)試結(jié)果正確。表6-4記賬功能測(cè)試用例表用例名稱操作操作過程預(yù)期結(jié)果測(cè)試結(jié)果記賬功能測(cè)試輸入金額1.選擇收支類型2.輸入金額3.點(diǎn)擊完成按鈕主頁(yè)顯示該類型下的具體金額正確記賬功能測(cè)試不輸入金額并添加備注1.選擇收支類型2.不輸入金額3.添加備注4.點(diǎn)擊完成按鈕主頁(yè)未顯示記賬記錄正確記賬功能測(cè)試輸入金額和備注1.選擇收支類型2.輸入金額3.輸入備注4.點(diǎn)擊完成按鈕主頁(yè)顯示該類型下的具體金額,并在左下角顯示備注內(nèi)容正確6.2.3統(tǒng)計(jì)功能測(cè)試用戶點(diǎn)擊首頁(yè)統(tǒng)計(jì)按鈕,系統(tǒng)將顯示某月的收支情況一覽。接著當(dāng)用戶點(diǎn)擊統(tǒng)計(jì)按鈕并在日歷中隨機(jī)選擇一天,系統(tǒng)能夠準(zhǔn)確顯示所選擇當(dāng)天的收支記錄。最后用戶每天的收入支出具體消費(fèi)比例會(huì)在統(tǒng)計(jì)頁(yè)展示,直觀顯示了消費(fèi)比例。表6-5統(tǒng)計(jì)功能測(cè)試用例表用例名稱操作操作過程預(yù)期結(jié)果測(cè)試結(jié)果統(tǒng)計(jì)功能測(cè)試獲取統(tǒng)計(jì)主頁(yè)點(diǎn)擊首頁(yè)統(tǒng)計(jì)按鈕顯示某月收支情況一覽正確統(tǒng)計(jì)功能測(cè)試查早歷史賬單1.點(diǎn)擊統(tǒng)計(jì)按鈕2.在日歷中隨機(jī)選擇一天顯示選擇當(dāng)天的收支記錄正確統(tǒng)計(jì)功能測(cè)試獲取扇形圖統(tǒng)計(jì)1.點(diǎn)擊統(tǒng)計(jì)按鈕2.在日歷中隨機(jī)選擇一天3繪制收支扇形圖得到當(dāng)天各種收支合成的扇形圖正確6.2.4掃描功能測(cè)試在對(duì)ocr功能實(shí)現(xiàn)進(jìn)行測(cè)試時(shí)首先,用戶點(diǎn)擊首頁(yè)的掃描按鈕并上傳小票照片,系統(tǒng)將根據(jù)預(yù)設(shè)的物品歸屬規(guī)則將不同收支情況準(zhǔn)確記錄在對(duì)應(yīng)的類別下,若掃描結(jié)果不符合可點(diǎn)擊重新掃描重新上傳賬單。其二,點(diǎn)擊返回按鈕時(shí)首頁(yè)能夠完整顯示小票中的所有記錄。表6-6掃描功能測(cè)試用例表用例名稱操作操作過程預(yù)期結(jié)果測(cè)試結(jié)果掃描功能測(cè)試掃描小票1.點(diǎn)擊首頁(yè)掃描按鈕2.上傳小票照片根據(jù)物品歸屬規(guī)則,在對(duì)應(yīng)的類別下記錄支出情況正確掃描功能測(cè)試返回首頁(yè)點(diǎn)擊返回按鈕首頁(yè)完整顯示小票所有記錄正確6.2.5查詢功能測(cè)試按月查詢時(shí)驗(yàn)證了用戶在選擇“按月查詢”后,系統(tǒng)是否能正確顯示當(dāng)前月份的收支總覽,包括總收入、總支出以及每日的收支明細(xì)。與此同時(shí)還測(cè)試了用戶選擇“按天查詢”后,系統(tǒng)是否能正確顯示當(dāng)天的收支總覽和具體明細(xì)。表6-7查詢功能測(cè)試用例表用例名稱操作操作過程預(yù)期結(jié)果測(cè)試結(jié)果查詢功能測(cè)試用戶已登錄,存在當(dāng)月賬單數(shù)據(jù)1.進(jìn)入統(tǒng)計(jì)界面2.點(diǎn)擊日歷選擇器,選擇查詢的月份顯示某月總收支情況以及消費(fèi)明細(xì)正確查詢功能測(cè)試用戶已登錄,存在當(dāng)天賬單數(shù)據(jù)1.進(jìn)入統(tǒng)計(jì)界面2.點(diǎn)擊日歷選擇器,選擇查詢的某天顯示選擇當(dāng)天的收支記錄以及總收支正確6.2.6計(jì)劃功能測(cè)試計(jì)劃功能測(cè)試用例展示了用戶創(chuàng)建多個(gè)攢錢計(jì)劃分類并在各分類下添加儲(chǔ)蓄記錄。系統(tǒng)將自動(dòng)匯總存錢記錄并顯示每個(gè)計(jì)劃的累計(jì)儲(chǔ)蓄進(jìn)度。表6-8計(jì)劃功能測(cè)試用例表用例名稱操作操作過程預(yù)期結(jié)果測(cè)試結(jié)果計(jì)劃功能測(cè)試添加儲(chǔ)蓄記錄在“旅游”計(jì)劃中添加記錄:金額1000儲(chǔ)蓄記錄新增成功,顯示累計(jì)儲(chǔ)蓄為1000正確計(jì)劃功能測(cè)試查看計(jì)劃分類及進(jìn)度進(jìn)入攢錢計(jì)劃頁(yè)面展示所有計(jì)劃分類及各自目標(biāo)完成進(jìn)度正確計(jì)劃功能測(cè)試查看某分類的儲(chǔ)蓄記錄點(diǎn)擊“旅游”計(jì)劃展示“旅游”計(jì)劃的所有儲(chǔ)蓄記錄明細(xì)正確6.2.7消費(fèi)預(yù)警功能測(cè)試消費(fèi)預(yù)警功能測(cè)試用例測(cè)試確保系統(tǒng)能實(shí)時(shí)監(jiān)控消費(fèi)數(shù)據(jù)即當(dāng)支出達(dá)到設(shè)定閾值的90%時(shí)發(fā)出“即將超出”預(yù)警,超過閾值時(shí)發(fā)出“已超出”預(yù)警,支出在閾值以下時(shí)本月支出正常。表6-9消費(fèi)預(yù)警功能測(cè)試用例表用例名稱操作操作過程預(yù)期結(jié)果測(cè)試結(jié)果消費(fèi)預(yù)警功能測(cè)試消費(fèi)未超支當(dāng)前支出為2000元,閾值為3000元本月支出正常正確消費(fèi)預(yù)警功能測(cè)試支出接近超支預(yù)警當(dāng)前支出為2900元,閾值為3000元系統(tǒng)提示“本月支出即將超出,請(qǐng)注意消費(fèi)”正確消費(fèi)預(yù)警功能測(cè)試支出超出預(yù)警當(dāng)前支出為3100元,閾值為3000元系統(tǒng)提示“本月支出已超出預(yù)算!”正確6.2.8購(gòu)物清單功能測(cè)試對(duì)于購(gòu)物清單功能測(cè)試用例,測(cè)試了用戶創(chuàng)建購(gòu)物清單,并從商品表中添加所需購(gòu)買的商品并且購(gòu)物清單中的商品分為“未購(gòu)買”和“已購(gòu)買”兩類。?表6-10購(gòu)物清單功能測(cè)試用例表用例名稱操作操作過程預(yù)期結(jié)果測(cè)試結(jié)果購(gòu)物清單功能測(cè)試添加購(gòu)物商品1.在“周末采購(gòu)”中添加商品“牛奶”,狀態(tài)默認(rèn)“未購(gòu)買”2.商品添加成功顯示為“未購(gòu)買”狀態(tài)正確購(gòu)物清單功能測(cè)試查看購(gòu)物清單及狀態(tài)分類點(diǎn)擊“周末采購(gòu)”清單顯示商品按“需購(gòu)買”和“已購(gòu)買”分類展示正確6.3系統(tǒng)非功能模塊測(cè)試6.3.1安全測(cè)試安全測(cè)試部分主要驗(yàn)證了用戶注冊(cè)與登錄功能的安全性,通過模擬登錄注冊(cè)中的異常操作檢測(cè)系統(tǒng)是否能正確攔截非法輸入并給出明確提示,若合法注冊(cè)以及正確登錄則可成功跳轉(zhuǎn)。表6-11安全測(cè)試用例表用例名稱操作操作過程預(yù)期結(jié)果測(cè)試結(jié)果安全測(cè)試用戶注冊(cè)驗(yàn)證1.進(jìn)入注冊(cè)頁(yè)面
2.不填寫任何信息直接點(diǎn)擊注冊(cè)
3.僅填寫用戶名不填密碼點(diǎn)擊注冊(cè)
4.填寫完整信息點(diǎn)擊注冊(cè)1.提示“不能為空”
2.提示“請(qǐng)輸入用戶名或密碼”
3.成功注冊(cè)并跳轉(zhuǎn)到登錄頁(yè)面通過安全測(cè)試用戶登錄驗(yàn)證1.使用正確用戶名和錯(cuò)誤密碼登錄
2.使用不存在用戶名登錄
3.使用正確用戶名密碼登錄1.提示“用戶名或密碼錯(cuò)誤”
2.提示“用戶名或密碼錯(cuò)誤”3.成功登錄進(jìn)入主界面通過6.3.2兼容測(cè)試兼容性測(cè)試主要測(cè)試多設(shè)備適配能力。屏幕適配測(cè)試驗(yàn)證了系統(tǒng)能根據(jù)手機(jī)和平板的不同尺寸自動(dòng)優(yōu)化布局,同時(shí)Android10至13的設(shè)備上驗(yàn)證了功能一致性,性能測(cè)試則驗(yàn)證了大數(shù)據(jù)量下的基本操作穩(wěn)定性。表6-12兼容測(cè)試用例表用例名稱操作操作過程預(yù)期結(jié)果測(cè)試結(jié)果兼容測(cè)試屏幕適配測(cè)試在手機(jī)和平板上分別運(yùn)行布局自動(dòng)調(diào)整,合理利用大屏空間通過兼容測(cè)試系統(tǒng)版本兼容性在Android10,Android13,Android11設(shè)備分別運(yùn)行所有功能正常使用通過兼容測(cè)試性能壓力測(cè)試在平板電腦運(yùn)行并導(dǎo)入多條記錄后查看統(tǒng)計(jì)基本功能可用通過6.3.3安裝測(cè)試進(jìn)行app安裝測(cè)試時(shí),針對(duì)不同設(shè)備進(jìn)行了安裝、圖片加載、功能測(cè)試及權(quán)限申請(qǐng)的驗(yàn)證。測(cè)試設(shè)備主要有聯(lián)想平板電腦、華為nova7和小米15,并且在導(dǎo)入之后所有設(shè)備均能正常安裝應(yīng)用程序,圖片加載功能正常并且功能測(cè)試通過以及且權(quán)限申請(qǐng)均成功。表6-13安裝測(cè)試表手機(jī)型號(hào)安裝情況圖片加載功能測(cè)試權(quán)限申請(qǐng)聯(lián)想平板電腦正常安裝通過通過通過華為nova7正常安裝通過通過通過小米15正常按安裝通過通過通過6.3.4UI交互測(cè)試導(dǎo)航一致性測(cè)試驗(yàn)證了所有功能頁(yè)面均包含可操作的返回按鈕,輸入驗(yàn)證測(cè)試通過空金額和特殊字符輸入場(chǎng)景,驗(yàn)證了系統(tǒng)對(duì)非法數(shù)據(jù)的攔截能力,異常處理測(cè)試則證明在網(wǎng)絡(luò)中斷時(shí),應(yīng)用核心功能仍可正常使用。表6-14UI交互測(cè)試表用例名稱操作操作過程預(yù)期結(jié)果測(cè)試結(jié)果UI交互測(cè)試導(dǎo)航一致性驗(yàn)證1.進(jìn)入各個(gè)功能頁(yè)面
2.檢查返回按鈕所有頁(yè)面都有可用的返回按鈕通過UI交互測(cè)試輸入驗(yàn)證測(cè)試記賬時(shí)留空金額在金額出加入特殊字符未顯示記賬記錄,記賬失敗通過UI交互測(cè)試異常處理測(cè)試1.關(guān)閉網(wǎng)絡(luò)連接
2.嘗試同步數(shù)據(jù)記賬本所有功能不受影響,正常使用通過6.3.5可用性測(cè)試從用戶角度去進(jìn)行核心功能的可用性測(cè)試,主要表現(xiàn)為測(cè)試顯示主界面記賬按鈕位置醒目,并且統(tǒng)計(jì)功能支持?jǐn)?shù)據(jù)展示與流暢的圖表交互,操作反饋機(jī)制能及時(shí)展示是否成功記賬。表6-15可用性測(cè)試表用例名稱操作操作過程預(yù)期結(jié)果測(cè)試結(jié)果可用性測(cè)試核心功能入口可見性進(jìn)入主界面觀察記賬按鈕按鈕位于屏幕顯著位置通過可用性測(cè)試統(tǒng)計(jì)功能驗(yàn)證添加多筆不同類別的記賬記錄進(jìn)入記賬頁(yè)面切換不同時(shí)間范圍1.數(shù)據(jù)按類別分類顯示
2.圖表可交互縮放
3.時(shí)間切換響應(yīng)迅速通過可用性測(cè)試操作反饋驗(yàn)證1.成功添加一筆記賬
2.輸入字母作為金額1.返回主頁(yè)顯示新增記賬記錄
2.主頁(yè)未顯示記賬記錄通過6.4本章小結(jié)本章通過系統(tǒng)化的測(cè)試流程,驗(yàn)證了記賬本應(yīng)用的功能和非功能性完整性。主要通過聯(lián)想平板電腦、華為nova7和小米15三種不同安卓設(shè)備,完成了包括注冊(cè)登錄、記賬管理、統(tǒng)計(jì)分析、OCR掃描、消費(fèi)預(yù)警等核心功能模塊的測(cè)試,以及兼容性、安全性、UI交互和可用性等非功能測(cè)試,展示了應(yīng)用在不同Android版本下的穩(wěn)定表現(xiàn)。第7章結(jié)論本論文設(shè)計(jì)并實(shí)現(xiàn)基于Android平臺(tái)的智能記賬本應(yīng)用程序,采用Kotlin語言和MVC架構(gòu),同時(shí)集成MPAndroidChart和MLKit等第三方庫(kù),成功
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 萬達(dá)集團(tuán)校招題庫(kù)及答案
- 通州建總集團(tuán)招聘面試題目及答案
- 術(shù)后居家護(hù)理延伸服務(wù)在DRG支付改革下的適應(yīng)策略
- 術(shù)后SU預(yù)防的術(shù)后家庭護(hù)理延續(xù)方案
- 昌樂鋁制葡萄架施工方案
- 天元錳業(yè)校招筆試題目及答案
- 術(shù)前神經(jīng)功能評(píng)估對(duì)脊柱側(cè)彎手術(shù)監(jiān)測(cè)方案制定的價(jià)值
- 天合光能招聘面試題及答案
- 風(fēng)格美感課件
- 護(hù)理服務(wù)營(yíng)養(yǎng)支持
- 2023年武漢大學(xué)城市規(guī)劃考研真題
- 中考語文二輪復(fù)習(xí)《文言文斷句》課件
- 人教版高中地理必修一第二章《地球上大氣》單元檢測(cè)試題
- 食品配送應(yīng)急處突保障全新預(yù)案
- 我為班級(jí)添光彩-主題教育課程主題班會(huì)
- PICC導(dǎo)管相關(guān)血流感染課件
- 氣燒石灰窯熱工計(jì)算
- DBJ∕T45-093-2019 混凝土超高泵送施工技術(shù)規(guī)程
- 夾點(diǎn)技術(shù)與換熱網(wǎng)絡(luò)優(yōu)化綜合
- 部編版九年級(jí)歷史(上)全冊(cè)教案
- 簡(jiǎn)約立警為公執(zhí)法為民模板
評(píng)論
0/150
提交評(píng)論