周少波
摘要:本系統(tǒng)使用Java語言在Android SDK開發(fā)環(huán)境下開發(fā),后臺(tái)數(shù)據(jù)庫使用SQLite 數(shù)據(jù)庫進(jìn)行數(shù)據(jù)存儲(chǔ)。實(shí)現(xiàn)了日常支出登記、每日支出查詢、歷史支出查詢、支出歷史分類匯總查詢等強(qiáng)大功能。因此使得本系統(tǒng)最終能夠幫助用戶登記月支出情況,實(shí)現(xiàn)對(duì)月支出的管理。
關(guān)鍵詞:理財(cái);月支出;日常支出;分類匯總
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)36-0119-02
1 概述
隨著眾多的九零后走向社會(huì),從小生活條件較好的他們大多數(shù)都沒有形成理性消費(fèi)的觀念,平時(shí)大手大腳花錢,經(jīng)常入不敷出。當(dāng)他們成立家庭,有了孩子,各項(xiàng)支出增加,更是捉襟見肘。而要形成理性消費(fèi)的觀念,則必須對(duì)平時(shí)的消費(fèi)支出情況進(jìn)行統(tǒng)計(jì),減少不必要的支出,改變自己亂花錢的習(xí)慣。在一些比較發(fā)達(dá)的國家中,人們?cè)谄匠6加袊?yán)格的理財(cái)計(jì)劃。因此這些國家的理財(cái)軟件種類比較齊全,功能也比較完善。而國內(nèi)的理財(cái)軟件主要針對(duì)企、事業(yè)單位的辦公財(cái)務(wù)軟件,而針對(duì)個(gè)人理財(cái)或者家庭理財(cái)方面的比較少,而基于手機(jī)端的應(yīng)用軟件就更少了。因此,需要開發(fā)一些相關(guān)的針對(duì)個(gè)人或者家庭的理財(cái)軟件,從而達(dá)到引導(dǎo)年輕人理性消費(fèi),合理安排收支的良好習(xí)慣。如果是手工統(tǒng)計(jì)消費(fèi)記錄,用于統(tǒng)計(jì)的賬本和記錄會(huì)越來越多,即不利于保管,也容易造成丟失;而且隨著記錄的增多,如果要查找以前的消費(fèi)記錄,會(huì)變得越來越困難。而隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展與應(yīng)用,智能手機(jī)的使用在人們的生活中變的普及,當(dāng)前的年輕人基本都有智能手機(jī)。因此,開發(fā)一個(gè)功能比較完善的基于Android平臺(tái)的月支出管理軟件來代替?zhèn)鹘y(tǒng)的手工統(tǒng)計(jì),在人們上下班搭乘公共汽車的時(shí)候就可以方便地記錄個(gè)人或者家庭的每月支出情況。
2 系統(tǒng)分析
2.1 系統(tǒng)功能需求
系統(tǒng)需求分析也就是研究軟件要實(shí)現(xiàn)什么功能,也就是如何更好地滿足用戶的使用需要。本系統(tǒng)運(yùn)行是基于Android平臺(tái)的手機(jī)之上的,我們稱之為手機(jī)端。根據(jù)用戶的需求,現(xiàn)在將系統(tǒng)劃分為多個(gè)模塊。相關(guān)的功能如下:
1) 登記用戶消費(fèi)的內(nèi)容;
2) 可輸入某一月份,完成該 月份的支出管理;
3) 輸入并統(tǒng)計(jì)該月的支出情況;
4) 顯示該月支出信息表,內(nèi)容應(yīng)該包括日期,金額等;
5) 按支出類型進(jìn)行分類統(tǒng)計(jì)和排序;
6) 進(jìn)行月消費(fèi)情況分析,即分析本月每項(xiàng)消費(fèi)支出所占月全部支出的百分比,并將分析結(jié)果以圖形化顯示;
7) 按支出類型進(jìn)行排序,顯示消費(fèi)情況支出信息;
8) 界面友好,輸入信息符合邏輯。如存款金額不為負(fù)數(shù)、不可能有非數(shù)字的字符等。
2.2 其他需求
1) 本月支出管理系統(tǒng)經(jīng)濟(jì)實(shí)用,界面友好,操作起來方便簡(jiǎn)單;
2) 被登記的消費(fèi)記錄能夠自動(dòng)永久保存記錄;
3) 可以根據(jù)用戶的需要,綜合查詢出用戶所消費(fèi)的內(nèi)容。
3 系統(tǒng)設(shè)計(jì)
3.1 功能模塊劃分
根據(jù)需求分析,明白了本系統(tǒng)需要完成月支出的基本功能,支出登記、支出管理、統(tǒng)計(jì)查詢,快速分類、關(guān)于我們等相關(guān)功能。根據(jù)一些相關(guān)的屬性,把這些功能分成五個(gè)功能模塊,這樣就更加方便操作了。本系統(tǒng)劃分的六個(gè)功能模塊具體為:
1) 支出登記模塊:數(shù)據(jù)錄入;
2) 支出管理模塊:數(shù)據(jù)調(diào)整;
3) 統(tǒng)計(jì)查詢模塊:統(tǒng)計(jì)匯總;
4) 快速分類模塊:分類匯總;
5) 幫助模塊:關(guān)于,聯(lián)系作者;
6) 登陸注冊(cè)模塊:用戶信息校驗(yàn)。
3.2 數(shù)據(jù)庫設(shè)計(jì)
本系統(tǒng)所使用的由于是單機(jī)版的,因此數(shù)據(jù)庫無需聯(lián)網(wǎng),所以采用了SQLite數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)。在程序啟動(dòng)的時(shí)候,嘗試開始生成數(shù)據(jù)庫,如果發(fā)現(xiàn)已經(jīng)存在那么直接讀取出數(shù)據(jù)存放到緩存中,如果第一次使用不存在庫表,那么嘗試生成一份新的庫表,如果所有的嘗試都完畢后,如果無法創(chuàng)建或讀取到數(shù)據(jù)庫就會(huì)返回啟動(dòng)失敗信息。系統(tǒng)的基礎(chǔ)是由兩個(gè)表組成的,分別為支出表和用戶表。
4 系統(tǒng)功能實(shí)現(xiàn)
4.1 系統(tǒng)主要模塊設(shè)計(jì)
4.1.1 支出登記模塊實(shí)現(xiàn)
本系統(tǒng)的數(shù)據(jù)采集入口,其顯示模塊的開發(fā)采用JAVA圖形編程方面技術(shù),利用模塊化、通用性強(qiáng)的特點(diǎn),實(shí)現(xiàn)在手機(jī)端的時(shí)間選擇控件以及下拉分類類型的控制的編寫,這樣便能更好地實(shí)現(xiàn)簡(jiǎn)單便捷方面的操作,提高信息的簡(jiǎn)單高效性,避免人工輸入導(dǎo)致系統(tǒng)奔潰。
4.1.2 支出管理模塊實(shí)現(xiàn)
該功能模塊在界面上并沒有直接的入口,僅提供查看,但是如果用戶使用了統(tǒng)計(jì)功能和快速分類后,只要將選中的內(nèi)容勾上,再通過系統(tǒng)默認(rèn)更多的功能,就能調(diào)出“刪除”功能,將錄入錯(cuò)誤的記錄清除掉,這樣使得用戶操作變得比較友好,而且編程起來也編輯快捷,方便以后的擴(kuò)展使用。
4.1.3 統(tǒng)計(jì)查詢模塊
統(tǒng)計(jì)查詢模塊的實(shí)現(xiàn)通常就是通過函數(shù)調(diào)用,調(diào)用各個(gè)命令處理類。在命令處理模塊中,根據(jù)輸入的查詢條件進(jìn)行收集整理、篩選數(shù)據(jù),匯總統(tǒng)計(jì),并將最終的結(jié)果在界面上凸顯出來。首先用戶需要通過界面上輸入要查詢的時(shí)間范圍,并選擇正確后,點(diǎn)擊提交按鈕觸發(fā)后臺(tái)事件出來,調(diào)用自定義函數(shù),從SQLite中將內(nèi)容取出來,統(tǒng)計(jì)匯總后放在前臺(tái)展現(xiàn)出來。包括了今日賬單和歷史賬單查詢。
4.1.4 分類統(tǒng)計(jì)模塊
分類統(tǒng)計(jì)模塊的實(shí)現(xiàn)通常就是通過函數(shù)調(diào)用,調(diào)用各個(gè)命令處理類。在命令處理模塊中,先事先將所有數(shù)據(jù)拆分成9類,并根據(jù)用戶所選擇的內(nèi)容,首先發(fā)送自己的狀態(tài)信息給手機(jī)端;然后建立圖像的傳送;再開啟控制命令套接字;獲取執(zhí)行結(jié)果和錯(cuò)誤流,生成對(duì)應(yīng)的圖像。用戶選擇其他一種類型進(jìn)入后,后臺(tái)會(huì)判斷當(dāng)前選中的類型,再根據(jù)這個(gè)類型去表里面查詢出來數(shù)據(jù)回寫到界面上。這些都是分類統(tǒng)計(jì)模塊的相關(guān)操作功能。包括了分類查詢圖以及分類查詢?cè)敿?xì)圖。
4.2 不同組件功能實(shí)現(xiàn)
4.2.1 時(shí)間控件的設(shè)計(jì)原理與實(shí)現(xiàn)
目前在Android系統(tǒng)上,時(shí)間控件已經(jīng)存在,比如:DatePicker控件和TimePicker控件。 這兩個(gè)控件都繼承自Android.widget.FrameLayout,并且在展示風(fēng)格與操作風(fēng)格方面也類似。但是DatePicker控件是一個(gè)設(shè)置日期的控件,而TimePicker控件是一個(gè)設(shè)置時(shí)間的控件。這樣就可以實(shí)現(xiàn)時(shí)間的選擇,以達(dá)到填寫時(shí)間的目的。
目前,這些控件分隔還是比較單調(diào)的,而且這個(gè)日歷控件也比較強(qiáng)大,但外觀不夠友好,因此需要在此基礎(chǔ)上對(duì)其進(jìn)行樣式的變化和功能的拓展,達(dá)到我們軟件自己本身的風(fēng)格。這就需要我們自定義日歷控件,可以通過選擇日期查詢相關(guān)數(shù)據(jù)等操作。
4.2.2 數(shù)據(jù)的刪除實(shí)現(xiàn)
實(shí)現(xiàn)數(shù)據(jù)的刪除功能,通過“今日賬單”、“歷史賬單查詢”將支出結(jié)果查詢的出來,并在記錄后面添加一下復(fù)選框,提供給刪除的操作,用戶只需要通過手機(jī)本身自帶的更多功能,調(diào)出“刪除”按鈕,通過它將勾選的內(nèi)容從SQLite中刪除掉,此時(shí)通過后臺(tái)回刷更新前臺(tái)界面的內(nèi)容。
5 結(jié)論
本系統(tǒng)實(shí)現(xiàn)了登記用戶消費(fèi)的內(nèi)容;可輸入某一月份,完成該月份的支出管理;輸入并統(tǒng)計(jì)該月的支出情況;顯示該月支出信息表,內(nèi)容應(yīng)該包括日期,金額等;以圖形化形式顯示本月每項(xiàng)消費(fèi)支出占月消費(fèi)總支出的百分比,并能按支出類型對(duì)消費(fèi)情況進(jìn)行統(tǒng)計(jì)與排序等功能。方便用戶記錄個(gè)人或家庭的月支出消費(fèi)情況。
參考文獻(xiàn):
[1] 張建源. Android開發(fā)技術(shù)的學(xué)習(xí)及應(yīng)用[J]. 現(xiàn)代工業(yè)經(jīng)濟(jì)和信息化,2014(4).
[2] 差沙,地獄男爵. 用Android開發(fā)手機(jī)應(yīng)用[J]. 程序員,2008(4).
[3] 尹京花,王華軍. 基于Android開發(fā)的數(shù)據(jù)存儲(chǔ)[J]. 數(shù)字通信,2012(3).
[4] 孟曉龍. Win7系統(tǒng)下Android開發(fā)平臺(tái)的搭建[J]. 科協(xié)論壇:下半月,2011(7).
[5] 吳想想. 基于Android平臺(tái)軟件開發(fā)方法的研究與應(yīng)用[D]. 北京:北京郵電大學(xué),2011.
[6] 胡思捷. 基于Android平臺(tái)的觸摸屏系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)[D].天津: 南開大學(xué),2011.
[7] 岳傳真. Android系統(tǒng)移植和應(yīng)用程序開發(fā)[D]. 上海:復(fù)旦大學(xué),2010.
[8] 丁永明,紀(jì)方明. 基于Android平臺(tái)移動(dòng)學(xué)習(xí)軟件的研究與實(shí)現(xiàn)[J]. 數(shù)字通信世界,2011(1).
[9] 佚名. Android多線程講解 看圖理解[EB/OL].http://wenku.baidu.com/view/c69e13f9f61fb7360b4c6560.html.
[10] 劉昶. Android操作系統(tǒng)的存儲(chǔ)技術(shù)研究[D]. 北京:北京理工大學(xué),2011.
[11] Android.developer. Application Fundamentals. Addison Wesley Longman,2013.
[12] Kashnikov. Evaluating architecture and compiler design through static loop analysis[J].2013.
[13] ?tienne Payet. Static analysis of Android programs[J].Information and Software Technology,2012,54(11).
[14] Security. Understanding Android Security[Z].2010.