本科生畢業設計(論文)
![基於安卓的個人記賬管理APP設計與實現 基於安卓的個人記賬管理APP設計與實現](https://i1.fanfanwen.com/19d89cd9b24071/5e81d7/19d98bccbf/5e81d781e01031.jpg)
題 目:基於安卓的個人記賬管理APP設計與實現
獨創性聲明
本畢業設計(論文)是我個人在導師指導下完成的。文中引用他人研究成果的部分已在標註中説明;其他同志對本設計(論文)的啟發和貢獻均已在謝辭中體現;其它內容及成果為本人獨立完成。特此聲明。
論文作者簽名: 日期:
關於論文使用授權的説明
本人完全瞭解福州大學至誠學院有關保留、使用學位論文的規定,即:學院有權保留送交論文的印刷本、複印件和電子版本,允許論文被查閲和借閲;學院可以公佈論文的全部或部分內容,可以採用影印、縮印、數字化或其他複製手段保存論文。保密的論文在解密後應遵守此規定。
論文作者簽名: 指導教師簽名: 日期:
基於安卓的個人記賬管理APP設計與實現
摘要
記賬是千百年都流傳的事,老一輩的人都有使用算盤記賬的經歷;後來有了計算器,大家就使用筆和賬簿輔以計算結果進行記賬;到了二十一世紀的信息化時代,電腦軟件的普及,使得大家轉向了Excel或是其他一些帶有強大分析功能的桌面軟件進行電腦記賬。然而,以上種種方式,都帶有時間、空間的限制,不能做到隨時隨地的記錄,延誤了最佳的記賬時間,或是需要後期拿出大量時間進行賬目的統計分析工作,導致人們的記賬習慣不能得以延續下去,功虧一簣,更是達不到規劃理財的目的。
現代經濟社會中,人們的經濟活動頻繁,消費種類繁多,在這樣的情況下,研究一個專門為日常消費記賬的APP已是迫在眉睫。本論文設計的個人記賬管理APP不僅方便用户記錄收支信息、實現報表分析,總結自己的財務情況,方便人們更加快捷、實時的記錄自己的消費情況,而且可供用户記錄與管理日常事件。與傳統的記賬方式相比,本論文設計的個人記賬管理APP具有安全性、便攜性和實用性等特點。
本文首先針對個人記賬管理APP展開需求分析,其次對個人記賬管理APP展開功能分析,最後採用Android、Java和SQLite數據庫實現個人記賬管理APP。經系統測試,本文設計的個人記賬管理APP具有簡單鮮明、針對性功能設計和方便快速使用等特徵。
關鍵詞:記賬管理,Adroid,APP
Design and Implementation of Personal Account Management APP Based on Android
Abstract
Speaking of bookkeeping, I believe everyone's mind will come up with a variety of ways of bookkeeping. The older generation had the experience of using the abacus for accounting; later, with the calculator, everyone used pens and ledgers to calculate the results of accounting; by the 21st century information age, the popularity of computer software, Everyone turned to Excel or other desktop software with powerful analysis capabilities for computer bookkeeping. However, all of the above methods are limited by time and space, cannot be recorded anytime and anywhere, delay the best accounting time, or require a lot of time to perform statistical analysis of accounts, resulting in people’s The bookkeeping habits cannot be continued, and they will fail to achieve the goal of planning financial management.
In the modern economy and society, people's economic activities are frequent and there are many types of consumption. Under such circumstances, it is extremely urgent to study an APP that is specifically designed for daily consumption. The personal billing management APP designed in this paper not only facilitates users to record revenue and expenditure information, implement report analysis, summarizes their own financial situation, facilitates people to record their own consumption situation more quickly and in real time, and provides users with the ability to record and manage daily events. Compared with traditional billing methods, personal billing management APP designed in this thesis has the characteristics of security, portability and practicality. The
This article first analyzes the requirements for Personal Bookkeeping Management APP, then analyzes the Personal Bookkeeping Management APP, and finally uses Android, Java, and SQLite databases to implement Personal Bookkeeping Management APP. After system testing, the personal billing management APP designed in this paper has features such as simple and clear, targeted function design and convenient and quick use.
Key Words: Ajax, Web Application, Chat System
目 錄
第1章 緒論 1
1.1 選題背景及意義 1
1.2 國內外研究現狀 1
1.3 論文的研究思路 2
1.4 論文的設計與解決方法 2
(1)設計語言與結構 2
(2)功能解決 2
(3)性能解決 2
圖1-1設計路線圖 3
第2章 開發環境的介紹和搭建 4
2.1 開發環境的介紹 4
2.1.1 JDK的介紹 4
2.1.2 Eclipse的介紹 4
2.1.3 Android SDK的介紹 4
2.2 開發環境的搭建 4
2.2.1 JDK的安裝與環境變量配置 4
2.2.2 Android SDK 與Eclipse的安裝與配置 4
2.2.3 Android虛擬機AVD的配置 5
圖2-1 AVD配置圖 5
圖2-2 AVD界面圖 6
第3章 個人記賬管理APP需求分析 7
3.1 需求分析 7
3.2 可行性分析 7
3.3 APP系統用例圖及其分析 8
圖3-1 APP系統用例圖 9
3.4 APP各用例功能描述 9
3.4.1我的收入 10
圖3-2 我的收入用例圖 10
3.4.2我的支出 10
圖3-3 我的支出用例圖 11
3.4.3數據統計 11
圖3-4 數據統計用例圖 12
3.4.4用户管理 12
圖3-5 用户管理用例圖 13
3.4.5系統設置 13
圖3-6 系統設置用例圖 14
第4章 個人記賬管理APP詳細設計 15
4.1 菜單頁設計 15
圖4-1 主界面設計 15
4.2 我的支出功能設計 15
圖4-2 我的支出設計 16
4.3 我的收入功能設計 16
圖4-3我的收入設計 17
4.4 數據統計功能設計 17
圖4-4數據統計設計 18
4.5系統設置功能設計 18
圖4-5賬户管理設計 19
4.6數據庫設計 19
4.6.1 APP用户表 19
表4-6 用户表 19
4.6.2收入支出數據表 20
表4-7 收入數據信息表 20
4.6.3數據統計表 20
表4-8數據統計表表 20
第5章 個人記賬管理APP實現 21
5.1 主界面的實現 21
圖5-1 主界面 22
5.2 收支添加功能實現 22
圖5-2 新增支出界面 24
5.3 數據統計功能實現 25
圖5-3 數據統計 27
5.4 賬户管理功能的實現 27
圖5-4 賬户管理頁面 29
5.5系統設置功能的實現 29
圖5-5系統設置頁面 31
第6章 測試 32
6.1 基本概念 32
6.2 測試步驟 32
6.3 系統測試 32
6.4 功能測試 33
6.4.1賬號管理測試 33
表6-1 賬號管理測試 33
6.4.2收支添加測試 34
表6-2 收支添加功能測試 34
6.4.3系統設置測試 35
表6-3 系統設置測試內容表 35
結 論 36
參考文獻 37
致謝 38
第1章 緒論
1.1 選題背景及意義
進入到新世紀後,隨着社會不斷的發展,人們的物質生活也在不斷的變好,消費水平也有了很大的提升,尤其是對於年輕人來説,更是喜歡新型的消費,但是這樣也是帶來了一些壞處,比方説是一些80後和90後只懂得花錢,而在理財上面卻比較差,這也給他們的生活帶來了很大的麻煩。所以針對於這種情況,很多的有着不同功能的個人理財系統就產生了,不管是電腦上使用還是手機上使用都有。
Android是2007年由Google公司給研發出來的,它在出現以後短短的幾年中,就將原本看似完美的塞班系統給取代,成為用的最廣的操作系統[4]。Android操作系統是將源碼開放的,吸引了很多的廠商加入,從而也是有越來越多的人開始用Android手機,如果能設計一個基於Android平台的應用,一定是有很大的用户羣體,會被很多的廠商所喜歡推崇。
隨着手機和人們生活關係越來越緊密,人們也是對手機中的軟件有了很大的需求。因此,記賬軟件開始應運而生,而用手機軟件來記賬,有着以下3點重要的意義:
(1)記賬最為直接的作用就是可以將自己日常的收支情況給摸清,看看自己的收支情況到底是怎樣的,收入了多少,各種支出又有多少,都花在了什麼地方。這樣就能將自己的收支做一個規劃,然後考慮如何能更好的理財。
(2)“月光族”是一個之前很流行的詞,並不是説他們都是掙得錢太少,不夠花,而是往往在花錢的時候沒有一個好的計劃,很隨便的就將錢都花完了。而靠着記賬就可以把自己以前隨便畫的錢給記錄下來,能將這錢到底是怎樣給花出去的搞清楚,將亂花錢給避免了。靠着記賬也許用不了多長時間就能實現合理的花錢。
(3)記賬可以説開始理財的第一步,有了這一步就能讓自己對財務有一個更好的敏感,把理財的水平給提高。
1.2 國內外研究現狀
這些年智能手機已經是越來越多,在Android推出了以後,就因為它自己所具有的優勢而逐漸的把市場份額給擴大,尤其是在國外,可以説是相當的受歡迎,是處在一個蓬勃發展的時候。根據一家美國市場調研機構給出的報告中顯示,Android在美國已經是佔到了28%的市場份額,蘋果就要排在它的後面。而且從一些個業內人士的分析中也是可以看出,隨着Android系統中軟件數量的增加,越來越多的人會選擇用Android作為操作系統的設備[5]。
我國學者王秋麗以前曾經發表過一篇文章《財務軟件的現狀及發展趨勢》,在這篇文章裏面,她對與我國財務軟件的現狀做了分析,認為主要有兩個特點:在規模上不斷的變大,二就是還有市場可以開發。雖然説我國已經有10個年頭在發展財務及企業管理軟件,市場也從一開始競爭激烈的情況變成了被大型企業所佔據的場面。在我國加入了WTO以後,也是讓財務軟件面臨了新的挑戰,競爭也是更加的激烈[6]。
就個人記賬軟件來説,在國外的普及率相對國內來説較高,我國要相對的少一些。學者Bruce也是提出了自己的觀點,他認為隨着信息化的發展,個人記賬軟件對於數據有了更高的要求,通過對數據進行不斷整理與分析的軟件將有着更長遠的應用[7]。
1.3 論文的研究思路
第一章簡單説明研究近況和意義目的;第二章介紹編程語言和開發技術和編譯器環境;第三章是應用程序的需求分析,分析其可行性等;第四章為應用的總體設計,對應用有個總體輪廓;第五章是程序的詳細設計,即具體的代碼編寫;第六章是測試,確保其可用性。每一章都相輔相成,構建出完整的論文。
1.4 論文的設計與解決方法
目前的Android應用是相當的火爆,在這樣的情況下,來開發出一個基於Android的個人記賬應用,一定是可以藉助着安卓的優勢,來得到很多的用户喜歡與安裝。同時因為手機有着便於攜帶的特點,所以這樣就能將軟件的使用價值給大大的提高讓人們不但是説能夠隨時隨地的來把記賬完成,還能更好的幫助人們把不願意記賬的習慣給改善了,早一天幫助他們實現自主理財[8]。小乖記賬APP是基於Android平台的,在設計上較為清新,使用起來也是很簡單,還有這很強大管理功能,它的出現對於幫助當下的那些個不會理財的年輕人一定是有着很大的意義。根據個人理財實現的實際需求,本系統設計路線圖如1-1所示,其解決方法如下:
(1)設計語言與結構
在開發的語言上面是使用裏當下比較流行的Java,把它和最流行的移動開發技術結合起來,實現小乖記賬的開發,更好的將小乖記賬的用處給發揮出來。
(2)功能解決
在功能上面,小乖記賬是要更好的幫助人們來實現自主理財,通過小乖記賬中的各個功能,實現消費情況的記錄,提醒用户在一天的實現自主理財。
(3)性能解決
對於小乖記賬來説,不光是要考慮功能上面的實用,還要考慮性能上面的可靠。所以對於小乖記賬中最重要的數據部分是用到sqlite來存儲數據。
圖1-1設計路線圖
第2章 開發環境的介紹和搭建
2.1 開發環境的介紹
2.1.1 JDK的介紹
JDK 是Java語言的軟件開發工具包。它是作為Java的核心來存在的,在內容上是將Java的類庫。運行環境還有工具都給包括了進來。它是為開發Java的程序員而專門發佈的開發包[9]。
2.1.2 Eclipse的介紹
Eclipse是用來開發Java的平台,在剛開始的時候因為功能上的限制,只能用來開發Java,後來隨着功能的擴展,也是可以用來開發其他的一些語言。就Eclipse本身來説,它只是一個框架平台,但是因為一些個外掛程式的使用,讓它也是有了很大靈活性[10]。
2.1.3 Android SDK的介紹
SDK是軟件開發工具包。Android SDK 指的是Android專屬的軟件開發工具包。
2.2 開發環境的搭建
2.2.1 JDK的安裝與環境變量配置
(1)從網上下載JDK1.6或者JDK1.7版本。
(2)雙擊文件安裝JDK。
(3)環境變量的配置:首先在“我的電腦”屬性中找到“高級系統設置”,然後再找到"環境變量",在環境變量中完成“用户變量”和“系統變量”的配置。在系統變量裏點擊新建在變量名中輸入“JAVA_HOME”,在變量值中填入JDK的安裝路徑;接着新建classpath變量,變量值設為:.; %JAVA-HOME%lib;% JAVA-HOMElib,然後雙擊“系統變量”中存在的path在彈出對話框中添加變量值:%JAVA-HOME%bin;%JAVA-HOME%jre,
最後運行->cmd,輸入javac,如果出現用法説明,則表示成功[11]。
2.2.2 Android SDK 與Eclipse的安裝與配置
在網上搜索adt-bundle-windows並下載。下載完成以後直接安裝就可以,此文件中就已經將Eclipse和Android SDK都包括了進去,非常適合新手來做開發。
2.2.3 Android虛擬機AVD的配置
在Eclipse菜單欄中點擊Window->Android Virtual Device Manager,在彈出的窗口中點擊“new”按鈕,在新出現的AVD配置窗口中來將自己想要的AVD創建。如圖2-1所示:
圖2-1 AVD配置圖
在將AVD給配置完以後,就可以在創建好的AVD中通過“start”按鈕來在彈出的彈出對話框中用Launch按鈕來完成第一次啟動,因為第一次啟動是需要一個比較長的時間,所以需要耐心的等待下。開啟成功後如圖2-2所示:
圖2-2 AVD界面圖
第3章 個人記賬管理APP需求分析
3.1 需求分析
需求分析方面,大致的工作基本可以按照四個方面開始進行,首先是具體的問題識別,然後是對項目進行分析綜合,接着制定相應的規格説明,最後進行項目評審。
(1)具體的問題識別:對所要做的軟件APP進行理解,系統角度是一個很好的方向,從而確定自己要開發的系統的所有要求,然後提出這些要求的能夠實現的方式,根據具體的分析來確定項目應該具體達到的一個標準。具體要求包括以下內容:要做什麼功能,性能要達到什麼標準,項目所要的環境是什麼,要有什麼程度的可靠性,安全保密性做的怎麼樣,項目界面要求何如,系統資源使用是否允許,消耗多少軟件開發成本,按照什麼進度進行開發,所做的項目在之後可以達到怎樣的目標。本文指在做一個可以進行簡單記賬管理的APP,滿足單機狀態下用户的記賬管理需求。
(2)對項目APP進行分析綜合:對項目所需要的軟件功能進行分別細化,將各個元素之間的聯繫從系統之中找出來,並得出APP的特性以及設計上可能出現的限制,對以上內容進行分析,看看是否能對應項目APP需要的要求,將要求中不合理不規則部分找出來,去除這一部分的需求,然後對項目APP需要的功能進行增加。最後,將以上結果進行綜合,形成系統最後的的解決方案,同時,將系統進行邏輯模型搭建,給出項目要開發的詳細的系統模型。
(3)制定相應的規格説明:編寫需求文檔,在次環節中,編寫的文檔也就是制定對應的規格説明書。相應的文檔對於相應的需求分析進行説明。
(4)進行APP項目評審:對項目的功能進行評審,包括APP系統功能的正確性,需求功能是否完整,並且判斷是否具有清晰性,以及給於系統的其它飽含的需求相應的評價。評審階段通過後,項目才可以進行接下來的工作,如果項目評審沒有通過,就必須對項目重新開始需求分析,重複上幾個階段所做的內容。
本系統主要是設計一個基於安卓平台的個人記賬管理功能的APP的設計與開發,需求對象有家庭主婦、學生、在職人員等。家庭主婦主要是用於日常開支如買菜做飯以及衣服、鞋、包等個人物品的開支;學生一般是用於記錄零用錢等小型記賬;在職人員一般是用於房租、水電費等經濟上的開支記賬。
3.2 可行性分析
想要弄清是否能夠實現所要開發的APP項目,可以實現的項目是否值得對其做研究,因此進行可行性分析是十分重要的。對項目進行可行性分析,從客觀看來,這是一次着重簡化項目系統分析的一步,同時也減少了系統設計的過程,所以,進行可行性分析是非常重要的,也是十分必要的。通過所設計的最開始的目標,結合所做的實時調查進行可行性分析,能夠分析出以下三點:
(1)技術可行性:Android Studio 通過Google公司的不斷開發測試已經成為較為成熟的便利的開發環境,基本可以替代以前Eclipse 上安裝ADT的開發模式,然後使用Java語言進行系統項目開發[12]。
(2)運行可行性:本項目為安卓應用程序,需要安卓虛擬機環境,Android Studio開發環境中有運行該系統所需要安卓虛擬機環境,即AVD,運行穩定,功能豐富,利用它能夠很好的進行程序的調試測試。如果不適用,也可用真機usb連接,adb工具可以檢測手機進行真機測試,很好的運行程序[13]。
(3)法律可行性:所做的項目是自主開發的,所以不會出現侵權等商業問題,在相關法律上來説,這是可行的。通過對項目進行的可行性分析,完全可以用Android Studio進行應用開打,然後使用Java語言進行程序編寫。
3.3 APP系統用例圖及其分析
由上面的提到的那些個需求分析可以將小乖記賬的具體操作和功能給確定下來,進而就可以把系統用例圖給確定下來。
系統用例主要包括我的收入、我的支出、我的便籤、數據圖表統計、用户管理、系統設置、退出七大功能,其中記賬包括添加支出和添加收入;在圖表統計裏面,是可以選擇是按年還是按月來顯示的;在系統設置裏面應該是把收支類型給添加進去,還有賬户的類型等,系統用例圖如圖3-1所示
圖3-1 APP系統用例圖
用户通過手機使用APP,進入小乖記賬APP後應顯示菜單頁面,向用户提供七個功能:
1我的支出
該功能主要是讓用户能把自己每天的消費支出給記錄下來。
2我的收入
該功能主要用於用户對自己每天的收入情況進行記錄。
3我的便籤
該功能主要用於用户對自己需要備忘的事情進行記錄。
4數據統計
這個是為了讓用户可以對自己在某個時間段的收支情況進行一下統計分析。
5賬户管理
這個功能是為了讓用户能夠及時的對自己的信息做一個管理。
6系統設置
用户在該功能中可以進行數據的清空以及收支類型的管理。
7退出
該功能可安全退出系統。
3.4 APP各用例功能描述
為便於用户理解各功能,下面對功能進行詳細的描述。
3.4.1我的收入
在我的收入功能中,用户可通過新增按鈕,創建新的收入條目,包括的內容有金額、時間、類別、地點以及備註。具體實現如圖3-2所示。
圖3-2 我的收入用例圖
(1)用例名:我的收入
(2)行為者:用户
(3)目的:為的是説讓用户能把自己的收入情況給做一個記錄,即便以後要看也方便些。
(4)簡要説明:用户添加新增收入信息或者刪除。
(5)過程描述:
1在手機桌面上通過小乖記賬的圖標來進入到APP中;
2進入APP主界面後選擇“我的收入”進入APP系統記賬頁面;
3點擊新增,選擇記賬類型,輸入金額,選擇時間,選擇好收入類型,同時選擇好指定賬户進行記錄;
4設置完畢,用户數據保存成功。
(6)前置條件:登入APP
(7)後置條件:添加收入信息或刪除收入信息或修改收入信息並保存。
3.4.2我的支出
在我的支出功能中,用户可以通過點擊新增按鈕,來為自己創建新的支出條目,包括的內容有金額、時間、類別、地點以及備註。具體實現如圖3-3所示。
圖3-3 我的支出用例圖
(1)用例名:我的支出
(2)行為者:用户
(3)目的:為的是説讓用户能把自己的指出情況給做一個記錄,即便以後要看也方便些。
(4)簡要説明:用户添加新增支出信息或者刪除。
(5)過程描述:
1 在手機桌面上通過小乖記賬的圖標來進入到APP中;
2 進入APP主界面後選擇“我的支出”進入APP系統記賬頁面;
3 頁面上面有新增按鈕,在點擊這個按鈕以後局可以進入到新增頁面,然後依次來把記賬的類型,花了多少錢,什麼時間花的,類型是怎樣的來給完成,當然也是要在制定的賬户中來完成;
4 設置完畢,用户數據保存成功。
(6)前置條件:登入APP成功
(7)後置條件:添加支出信息、刪除支出信息、修改支出信息並保存。
3.4.3數據統計
在數據統計功能下,用户可以通過點擊分類支出統計、分類收入統計和收--支統計對自己在任意時間段中的某一項內容進行統計,並得到圖表分析,使自己的收支情況能夠更明瞭的顯示,方便為以後的消費做計劃。具體實現如圖3-4所示。
圖3-4 數據統計用例圖
(1)用例名:數據統計
(2)行為者:用户
(3)目的:這部分為的就是説將用户在某一個時間段裏的消費信息給分析出來,讓用户能夠很明顯的就把用户、消費和支出這三個之間的關係給看出來。
(4)簡要説明:用户選擇查看數據統計表。
(5)過程描述:
1 點擊進入APP系統主界面;
2 通過點擊菜單裏面的數據統計來記入到分析的界面裏面;
3 再截面上是會把支出和收入的情況給用曲線來顯示出來;
4 點擊系統界面下端的按上個月或者下個月顯示圖表;
5 系統顯示用户上個月或者下個月支出、收入曲線;
6點擊收支統計曲線,APP顯示收支折線統計圖。
(6)前置條件:成功登入APP
(7)後置條件:用户查看收入統計表或者支出統計表或收支折線統計表。
3.4.4用户管理
在用户管理的功能中,用户可以完成註冊、切換用户的功能,還可以進行自己密碼的修改,並將當前用户和該用户下的所有數據進行刪除,亦可使用APP默認的用户登錄來體驗小乖記賬APP。具體實現如圖3-5所示。
圖3-5 用户管理用例圖
(1)用例名:用户管理
(2)行為者:用户
(3)目的:這部分就是為了能夠把用户的信息給收集起來。
(4)簡要説明:用户註冊,註冊成功可修改密碼或者切換用户或者刪除所有數據。
(5)過程説明:
1 點擊進入APP系統主界面;
2 選擇主菜單中的賬户管理
3 系統界面顯示用户註冊、切換用户、修改密碼
4 點擊系統界面頂端的用户註冊或切換用户或修改密碼;
5 輸入用户名、密碼、完成註冊和修改密碼。點擊切換用户,輸入用户名和密碼,確認登錄。
6點擊修改當前用户和所有數據,點擊確認,完成刪除。
7點擊使用默認用户登錄,成功登入默認賬號。
(6)前置條件:打開APP。
(7)後置條件:註冊登錄成功。
3.4.5系統設置
小乖記賬為用户提供了系統設置的功能,用户可以通過該功能將收入、支出和便籤的數據進行清空的處理,也可對收入、支出的類型進行管理,完成增刪改查的功能,若是APP出現問題,亦可進行默認設置的還原以及當前系統信息的查看。具體實現如圖3-6所示。
圖3-6 系統設置用例圖
(1)用例名:系統管理
(2)行為者:用户
(3)目的:這部分就是為了預防用户在以後消費和支出類型給發生改變而設計出來的。
(4)簡要説明:用户進行清空數據或者修改類型管理。
(5)過程描述:
1 點擊進入APP系統主界面;
2 通過點擊菜單裏面的系統設置來進入到設置的界面裏面;
3 點擊選擇收入支出類型管理類型,進入類型添加界面 ;
4 輸入支出和收入類型,點擊添加按鈕添加支出收入類型;
5 點擊清空收入支出或者是便籤數據,點擊確認,成功刪除數據。
(6)前置條件:成功登入APP。
(7)後置條件:清空數據定義類型 。
第4章 個人記賬管理APP詳細設計
在整個應用編寫過程中,詳細設計是其中不可或缺的一步。在此環節中,詳細設計了此應用系統的代碼,下面將依照遊戲狀態進行設計,並在每個狀態中穿插説明系統所用的類和功能。
4.1 菜單頁設計
進入到小乖記賬APP後,顯示MainActivity,在onCreate方法中調用setContentView方法設置顯示xiaoguaiView頁面,可以看到菜單頁,上面有七個按鈕,分別是我的支出、我的收入、我的便籤、數據統計、賬户管理、系統設置、退出,分別對應相應的功能。具體主頁面設計如圖4-1所示。
圖4-1 主界面設計
4.2 我的支出功能設計
進入到我的支出功能後,在屏幕中會有新增按鈕,若是用户已經創建過支出條目,那麼還會有已有支出條目顯示。點擊新增按鈕後,進入新增界面,就可出現新增支出條目,在支出條目中可進行金額、時間、類別、地點以及備註共五個具體內容的添加,金額可隨意添加,日期選擇會出現日曆可滾動選擇,類別有多項類別可供選擇,地點備註可隨意添加,點擊保存完善該條支出記錄,取消則退出。點擊已存在條目還可以進行修改,或者刪除本條目操作,具體設計流程如下圖4-2所示。
圖4-2 我的支出設計
4.3 我的收入功能設計
小乖記賬APP不光是要對用户的支出情況進行記錄,還應將用户的收入情況進行記錄,這樣才能更好的實現記賬功能。在我的收入功能中也是有新增按鈕的設計,方便用户實時的將自己新的收入進行記錄,若是之前就已經記錄過新增收入,那麼在頂端會有該條目的顯示,在新增功能下有金額、時間、類別、放款方以及備註共五個具體內容可進行編輯。我的收入中金額、放款方、備註可隨意添加,時間選擇通過日曆滾動選擇,類別可有多種選擇。點擊保存則保存成功,取消則退回新增界面,點擊已存在條目可進行修改或者刪除。具體的設計流程如下圖4-3所示。
圖4-3我的收入設計
4.4 數據統計功能設計
用户可以在任意的時間段內,進行該時間段下的收支情況統計,小乖記賬APP提供了餅狀圖以及折線圖的統計類型,點擊分類支出統計或者分類收入統計,出現餅狀統計圖,圖中各類別已百分比顯示,清楚明瞭。收支統計是折線圖統計,可彙總每天的收入或者支出總計,方便用户直觀明瞭的分析自己在該時間段內的收支情況,數據統計圖均可以選擇時間,具體的流程設計如下如圖4-4所示。
圖4-4數據統計設計
4.5系統設置功能設計
在系統設置功能中,主要是為用户設計了清空收入、支出和便籤的功能,方便用户對自己不再使用的數據進行刪除,選擇清空收入或者支出或者便籤數據,點擊確認即可清除。隨着時間的推移,用户的收入支出類型是會有變化,所以在類型上設計了增刪改功能,點擊收入或支出類型管理可選擇添加或者是刪除按鈕,選擇添加會出現添加類型,輸入添加類型點擊確認。選擇已存在類型點擊刪除即可刪除。具體的設計流程如下圖4-5所示。
圖4-5賬户管理設計
4.6數據庫設計
4.6.1 APP用户表
APP用户表用於存放登錄和註冊時所需要的賬户信息,包括username(用户名)和password(密碼)兩個屬性,其中的username是該表的主鍵,每個用户名在該表中唯一對應個密碼,用户名不允許重複,驗證登陸時用户名和密碼必須相匹配。
手機用户表如下表4.1所示:
表4-6 用户表
列名 | 數據類型 | 可否為空 | 是否為主鍵 | 屬性含義 |
username | Varchar(20) | NOT NULL | 是 | 用户賬號 |
password | Varchar(20) | NOT NULL | 否 | 用户密碼 |
4.6.2收入支出數據表
收入支出用户表用於存放用户收入支出信息,用於新增信息、修改信息,包括username(用户名)、password(密碼)、income(收入)和pay(支出)四個屬性,其中的username是該表的主鍵,每個用户名在該表中唯一對應個密碼,用户名不允許重複,驗證綁定信息時用username和password必須相匹配。
收入支出數據表如下表4-7所示:
表4-7 收入數據信息表
列名 | 數據類型 | 可否為空 | 是否為主鍵 | 屬性含義 |
username | Varchar(20) | NOT NULL | 是 | 用户賬號 |
password | Varchar(20) | NOT NULL | 否 | 用户密碼 |
income | double(20) | NULL | 否 | 收入 |
pay | double(20) | NULL | 否 | 支出 |
4.6.3數據統計表
數據統計表用於存放收入支出數據信息,用於顯示用户收入支出統計百分比,包括username(用户名)、income(收入)、pay(支出)、time(日期)和mony(金額)五個屬性。其中username是主屬性即為用户數據表統計的主鍵,它也是該表的外鍵,來自用户數據統計表即表4.2的username屬性。
數據統計表如下表4-8所示:
表4-8數據統計表表
列名 | 數據類型 | 可否為空 | 是否為主鍵 | 屬性含義 |
username | Varchar(20) | NOT NULL | 是 | 用户賬號 |
password | Varchar(20) | NOT NULL | 否 | 用户密碼 |
income | double(20) | NULL | 否 | 收入 |
pay | double(20) | NULL | 否 | 支出 |
第5章 個人記賬管理APP實現
5.1 主界面的實現
小乖記賬APP的主界面是七個圖標,通過點擊圖標就可實現功能跳轉,當用户點擊相應的圖標時即可進入該功能,在用户點擊圖標時,應用就會調用函數,實現了界面的跳轉,效果圖如圖5-1所示,具體的函數代碼如下:
public About() { protected void onCreate(Bundle savedInstanceState) { eate(savedInstanceState); setContentView(t); nstance()ctivity(this); usernow=(TextView)findViewById(acc); countpay=(TextView)findViewById(tpay); countuser=(TextView)findViewById(tuser); countincome=(TextView)findViewById(tincome); countnote=(TextView)findViewById(tnote); author=(TableRow)findViewById(or); description=(TableRow)findViewById(ription); }
|
圖5-1 主界面
5.2 收支添加功能實現
如下圖所示是收支增加界面,可以清晰的看到新增界面由金額、時間、地點、類別、地點、備註組成。點擊時間選擇框可以跳出時間並自由選擇相對應的時間,點擊類別選擇會跳出金額類別選擇,可以清楚明白選擇要選擇的種類。金額和地點隨情況需要添加。備註區是一個小型的備忘錄,可以很好的記錄有關於收支的情況。我的收入功能已在第四章進行了詳細的設計分析,在點擊我的收入按鈕時,應用會調用函數,實現我的支出功能,效果如圖5-2所示,具體代碼如下;
protected void onStart() { art(); Intent intentr=getIntent(); userid=ntExtra("",100000001); ShowInfo(utinfo); nItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View view, int position, long id) { String strInfo = eOf(((TextView) view)ext()); String strno = tring(0, xOf('|'))(); Intent intent = new Intent(, s); xtra("", userid); xtra("age", new String[] { strno, strType }); startActivity(intent); } }); nClickListener(new OnClickListener(){ public void onClick(View arg0){ Intent intent = new Intent(, s); xtra("", userid); startActivity(intent); } }); } private void ShowInfo(intintType) { String[] strInfos = null; ArrayAdapter strType = "btnoutinfo"; PayDAOpaydao = new PayDAO(); List (int) ount(userid)); strInfos = new String[()]; int m = 0; for (Tb_paytb_pay : listinfos) { strInfos[m] =tb_o()+ " | " +neName(userid, tb_ype()) + " " + eOf(tb_oney()) + "元 " + tb_ime(); m++; } arrayAdapter = new ArrayAdapter le_list_item_1, strInfos); dapter(arrayAdapter); } publicbooleanonKeyDown(intkeyCode, KeyEvent event) { if(keyCode == ODE_BACK) { Intent intent=new Intent(,s); xtra("",userid); startActivity(intent); return true; } yDown(keyCode, event); } }
|
圖5-2 新增支出界面
5.3 數據統計功能實現
如下圖所示的是數據統計模塊是很重要的一個模塊。能然用户清晰明白可見的是一定時間內的收入支出統計表。分類收入統計表和分類支出統計表為餅狀圖,用户能直觀看出每類支出和收入在總支出和總收入中所佔百分比,幫助用户明白每類型的收支情況。收支總統計表採用了折線統計圖,用户能直觀的看出收支金額隨着日期的變化,能夠為自己的收支計劃做個完美的基礎。
在實現數據統計的功能時,需要調用函數,通過該函數可以完成數據的分類統計以及統計圖表的生成,實現的效果如圖5-3所示,具體代碼如下:
public class Data extends Activity { Button paydata,incomedata,pidata; intuserid; protected void onCreate(Bundle savedInstanceState) { eate(savedInstanceState); setContentView(); nstance()ctivity(this); paydata=(Button)findViewById(ata); incomedata=(Button)findViewById(medata); pidata=(Button)findViewById(ta); } public void onStart(){ art(); Intent intentr=getIntent(); userid=ntExtra("",100000001); nClickListener(new OnClickListener() { public void onClick(View v) { Intent intent = new Intent(, s); xtra("", userid); startActivity(intent); } }); nClickListener(new OnClickListener() {
public void onClick(View v) { Intent intent = new Intent(, s); xtra("", userid); startActivity(intent); } }); nClickListener(new OnClickListener() { public void onClick(View v) { Intent intent = new Intent(, s); xtra("", userid); startActivity(intent); } }); } publicbooleanonKeyDown(intkeyCode, KeyEvent event) { if(keyCode == ODE_BACK) { Intent intent=new Intent(,s); xtra("",userid); startActivity(intent); return true; } yDown(keyCode, event); } }
|
圖5-3 數據統計
5.4 賬户管理功能的實現
如下圖所示是賬户管理模塊。該模塊分為五個大項分別是用户註冊、切換用户、修改用户密碼、刪除當前用户及所有數據、使用默認用户登入。通過用户註冊註冊用户信息,可以註冊多個用户信息,必要時通過切換用户進行用户切換。當想換密碼時可以點擊修改用户密碼進行修改。想清空所用用户數據可選擇刪除當前永和及所有數據。使用默認用户登入可保持一個賬號的登入。
賬户管理功能是對小乖記賬APP在功能上的完善,可以提高的應用的安全性,更好的構成整個應用,效果圖如5-4所示,實現的代碼如下:
public class Author extends Activity { Intent intentr; intuserid; protected void onCreate(Bundle savedInstanceState) { eate(savedInstanceState); setContentView(or); nstance()ctivity(this); } public class PIData extends Activity{ int userid; Intent intentr; PayDAO payDAO; IncomeDAO incomeDAO; Time time ; int defaultMonth; int defaultYear; LinearLayout chart; Button beforet,aftert,anytime; Spinner year,month,day,yeare,monthe,daye;//界面上的任意時間 List private GraphicalView lChart; Adapter adapter; XYSeriesRenderer xyRenderer; XYSeries seriesp,seriesi; List String date1,date2;//獲取用户選擇的任意兩個時間 //1 構造顯示渲染圖 XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); //2,進行顯示 XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); //2.1構建數據 Random r = new Random(); public PIData() { // TODO Auto-generated constructor stub } |
效果圖如5-4所示:
圖5-4 賬户管理頁面
5.5系統設置功能的實現
如下圖所示是系統設置功能模塊,分為七個大項非別是清空收入數據、清空支出數據、清空便籤數據、收入類型管理、支出類型管理、還原默認設置、關於系統。清空數據是清空用户所有有關數據點擊確定即可清空。類型管理是收支類型的添加與刪除,點擊即可選擇添加或者是刪除。還原系統設置即為重置所有類型數據,關於系統是系統的相關情況。效果圖如5-5所示,實現的代碼如下:
import vityManager; import vity; import nt; import le; import vent; import yAdapter; import View;
public class Author extends Activity { Intent intentr; int userid; public Author() { // TODO Auto-generated constructor stub } @Override protected void onCreate(Bundle savedInstanceState) { eate(savedInstanceState); setContentView(or); nstance()ctivity(this); } @Override protected void onStart() { // TODO Auto-generated method stub art();// 實現基類中的方法// 調用自定義方法顯示收入信息 Intent intentr=getIntent(); userid=ntExtra("",100000001);}
public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == ODE_BACK) { //監控/攔截/屏蔽返回鍵 Intent intent=new Intent(,s); xtra("",userid); startActivity(intent); return true; } return yDown(keyCode, event); } } |
圖5-5系統設置頁面
第6章 測試
6.1 基本概念
在代碼編寫完成之後,應用已經可以運行,但是在應用軟件使用之前,要對應用進行系統測試。對應用進行的測試,是對整個應用軟件的測試,這在系統週期中的地位已經越來越高,其位置越來越重要,其目的就是為了驗證應用能否對應已經制定好的需求標準,找出其中尚存的錯誤,在應用使用之前將其消滅[14]。
6.2 測試步驟
軟件測試,一般可以劃分為以下四個部分:
(1)單元測試:檢查和驗證應用中的最小測試單元。對於各種情況來説,單元就是能夠進行測試的最小的被檢測功能模塊,這種單元是認為進行規定的。它也可以被稱為模塊測試,目的在於發現錯誤,一般用白盒測試。
(2)集成測試:集成測試是對上一步驟所進行的邏輯擴展。把已經進行過單元測試的模塊,按照一定的策略將它們進行組裝,然後對其中的接口和功能進行測試,這是集成測試最簡單的形式。它又稱為組裝測試或者聯合測試,一般用黑盒測試[15]。
(3)確認測試:確認測試又可以稱為有效性測試。它採用黑盒測試,驗證應用軟件的可用性,也就是檢測被測軟件的功能、性能等是否滿足需求。
(4)系統測試:對整個應用進行測試,驗證應用是否滿總所有的需求,找出不合格不正確的位置,並將其改正加以完善。它採用黑盒測試,包括應用所有的部件,並且是基於應用需求的。
6.3 系統測試
本文主要從菜單頁、我的收入功能、我的支出功能、我的便籤功能和數據統計功能等五個方面進行測試。具體如下:
(1)菜單頁測試:進入菜單界面,依次點擊我的支出、我的收入、我的便籤、數據統計、賬户管理、系統設置和退出這七個按鈕,驗證對應的功能是否成功實現。分別點擊這七個按鈕,均可實現相應功能下的跳轉[16]。
(2)我的收入功能測試:點擊該按鈕後可進入具體功能頁面,實現收入記錄的查看與新增。
(3)我的支出功能測試:點擊該按鈕後可進入具體功能頁面,實現支出記錄的查看與新增。
(4)我的便籤功能測試:點擊該按鈕後可進入具體功能頁面,實現便籤功能的查看與新增。
(5)數據統計功能測試:在該頁面下選擇相應的時間段,可以完成統計圖表的形成,實現統計功能[17]。
6.4 功能測試
小乖記賬APP功能測試,主要包括賬號管理、收支添加和系統設置方面的測試。
6.4.1賬號管理測試
針對賬號管理功能方面,本文主要圍繞用户註冊、用户登錄、賬户信息和修改密碼等四個子功能進行測試。最終通過比較預期結果和實際結果,來實現賬號管理的測試,具體如表6-1所示。
表6-1 賬號管理測試
編號 | 功能 | 測試步驟 | 預期結果 | 實際結果 |
1 | 用户註冊 | 輸入所需註冊的用户名 | 1. 提交檢測是否符合要求,符合則提示註冊成功 2. 反之提示錯誤 | 1. 用户名和密碼符合要求,註冊成功 2. 用户名和密碼不符合要求,提示用户名和密碼錯誤 |
2 | 用户登錄 | 1. 輸入錯誤的用户名或者密碼 2. 輸入正確的用户名和密碼 | 1. 提示用户名或者密碼錯誤 2. 登陸成功 | 1. 提示用户名和密碼錯誤 2. 成功登錄APP |
3 | 賬户信息 | 進入主界面後點擊用户信息管理 | 提示用户輸入個人信息 | 輸入相關信息,提示保存成功 |
4 | 修改密碼 | 進入用户信息管理,點擊修改密碼 | 將新密碼輸入,提示修改成功 | 輸入新密碼,完成修改 |
由表6-1所示,用户註冊、用户登錄、賬户信息和修改密碼等四個子功能的預期結果和實際結果一致,表明本文設計的小乖記賬APP能實現賬號管理功能。
6.4.2收支添加測試
針對收支添加功能方面,本文主要圍繞記賬、刪除記賬記錄、更改記賬記錄等三個子功能進行測試,並比較預期結果和實際結果。具體如表6-2所示。
表6-2 收支添加功能測試
編號 | 功能 | 測試步驟 | 預期結果 | 實際結果 |
1 | 記賬 | 在主界面選擇我的支出和我的收入,點擊新增 | 1. 將相應信息分別填入然後點擊保存 2. 若輸入格式不符合要求,提示輸入有誤,重新填寫 | 1. 正確填寫相應信息然後保存 2. 錯誤填寫如金額為負數,提示信息有誤則重新填寫 |
2 | 刪除記賬記錄 | 選擇對應的收支信息,然後長按刪除鍵 | 選擇相應的記賬記錄點擊刪除,記錄被刪除 | 選擇相應的記賬記錄點擊刪除,記錄被刪除,提示刪除成功 |
3 | 更改記賬記錄 | 選擇對應的收支記賬記錄,選擇修改鍵,可以重新鍵入相關信息 | 選擇相應的記賬記錄。對金額、時間、類別進行修改,修改完成後點擊修改界面 | 1. 正確填寫修改後的信息,提示修改成功 2. 反之提示錯誤 |
由表6-1所示,記賬、刪除記賬記錄、更改記賬記錄等三個子功能的預期結果和實際結果一致,表明本文設計的小乖記賬APP能實現賬號管理功能。
6.4.3系統設置測試
針對系統設置功能方面,本文主要圍繞資金類型添加、清空數據等兩個個子功能進行測試,並比較預期結果和實際結果。具體如表6-3所示。
表6-3 系統設置測試內容表
編號 | 功能 | 測試步驟 | 預期結果 | 實際結果 |
1 | 資金類型添加 | 主界面點擊系統設置,選擇資金類型管理 | 輸入添加的類別名稱,點擊添加,提示添加成功 | 輸入類別名稱,點擊添加,提示成功 |
2 | 清空數據 | 主界面點擊系統設置點擊清空數據 | 點擊清空收入或支出數據,跳出警示框詢問是否刪除所有數據 | 點擊確定刪除所有數據,數據刪除 |
由表6-1所示,資金類型添加、清空數據等兩個子功能的預期結果和實際結果一致,表明本文設計的小乖記賬APP能實現賬號管理功能。
結 論
本文設計的APP是基於Android平台的小乖記賬,它的重點在於Android環境的構建、安卓相關知識的運用以及電腦AI的算法實現這個APP將人們在日常消費中會涉及到的諸多方面都進行了功能上的設計,是一款非常適合當下的記賬類型APP,小乖記賬運用移動客户端Android平台的特徵和人們日常消費中需要的內容進行了結合,進而將小乖記賬APP的解決方案進行了規劃,在目前行業中有着很強的代表意義[3]。作為一款單機的記賬系統,主要是目前廣大不會自己理財的用户,即使在沒有網絡的情況下也可進行記賬功能的實現。經系統測試,本文設計的個人記賬管理APP具有簡單鮮明、針對性功能設計和方便快速使用等特徵。隨着技術的發展,這款APP也將會不斷更新功能並且擴大適用範圍以滿足更多用户需求。如今社會乃是智能社會,人類利用智能技術優化了生活方式也提供了便利,小乖記賬完全適應社會需求,所以説它的市場前景勢必極為可觀。
參考文獻
[1] 韓超,樑泉.Android系統原理及開發要點詳解[M].電子工業出版社,2013.56-60.
[2] 王勇.安卓手機應用助手,幫你管理手機資源[J].電腦知識報,2013,34(2):1-7.
[3] Hsu Y C, Rice K, Dawley L. Empowering educators with Google's Android App Inventor:An online workshop in mobile app design[J]. British Journal of Educational Technology,2012,43(1):E1–E5.
[4] Kim B M, Li Q,Park C S, et al. A new approach for combining content-based and collaborative filters[J]. Journal of Intelligent Information Systems,2016, 27(1):9-91.
[5] 王勤oid技術內幕:系統卷.System[M].機械工業出版社,2017.70-88.
[6] 王秋麗. 我國財務軟件的現狀及發展趨勢[J].山西經濟管理幹部學院學報,2012,10(1):43-45.
[7] Bruce Eckel,Java編程思想[M].機械工業出版社,2017-6-1.99-122.
[8] 馬克·艾倫·維斯.數據結構與算法分析:Java語言描述[M].機械工業出版社,2016-3-1.69-73.
[9] 郭霖.第一行代碼[M].人民郵電出版社,2014-7-1.83-94.
[10] 明日科技.Android從入門到精通[M].清華大學出版社,2012-9-1.138-155.
[11] 李剛.Java瘋狂講義[M].電子工業出版社,2016.10.67-85.
[12] 周志明.深入理解Java虛擬機:JVM高級特性與最佳實踐[M].機械工業出版社, 2013-5-1.25-37.
[13] 李剛.瘋狂Android講義[M]. 電子工業出版社.2015-6-1.56-61.
[14] 孫衞琴.Java面向對象編程[M].電子工業出版社.2016-7-1.98-114.
[15] 楊豐盛.Android技術內幕[M].北京:機械工業出版社,2011.134-165.
[16] 孟曉龍.Win7系統下Android開發平台的搭建[J].科協論壇,2011,1(08):72-73.
[17] 吳想想.基於Android平台軟件開發方法的研究與應用[D].北京郵電大學,2011.
致謝
首先,感謝學院的各位老師,各位老師辛苦了,在本科生的四年中,把我帶到了計算機這一領域,讓我感受到了新奇和愉悦,並得到了許多專業知識。
其次,感謝我的指導老師楊海東教授,感謝老師對我的悉心指導。從畢業設計的選題、撰寫開題報告、設計所有環節直至完成現在的論文,導師耐心細緻地進行指導,使我受益匪淺。同時,老師和藹親切的形象也樹立在我心中,再次感謝老師孜孜不倦的諄諄教誨。
然後,感謝家人,是他們無私的不求回報的支持我,照顧自己的衣食住行,在自己消極難過的時候給我温暖,無論自己犯了什麼樣的錯都會無條件的原諒我,讓我真真切切的感受到家這個詞的含義,真實存在的一個能夠包容你、安慰你、温暖你的港灣。無論自己情況怎樣,只有家人不會拋棄你,不會嫌棄你,血濃於水的親情,無以為報。
最後,感謝四年中在我身邊出現的朋友們,感謝你們不嫌棄我一直把我當好朋友,開心時能夠與你們愉快玩耍,難過時能夠同你們開懷暢飲,感謝你們的陪伴,陪伴我走過這麼多的歲月,感謝你們在我不成熟的年紀出現到目前為止也沒有離去。