版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 河北農(nóng)業(yè)大學(xué)信息學(xué)院</p><p><b> 本科畢業(yè)論文</b></p><p> 題 目:基于Android系統(tǒng)的家庭理財(cái)通軟件的</p><p> 設(shè)計(jì)——收入管理模塊 </p><p> 學(xué) 院: 信息科學(xué)與技術(shù)學(xué)院 </p><
2、;p> 專業(yè)班級: 計(jì)算機(jī)科學(xué)與技術(shù)0902班 </p><p> 學(xué) 號: 2009234010224 </p><p> 學(xué)生姓名: 白珍珍 </p><p> 指導(dǎo)教師姓名: 趙洋 </p><p> 指導(dǎo)教師職稱:
3、 教授 </p><p> 二O一三 年 五 月 二十八 日</p><p><b> 摘 要</b></p><p> 基于安卓系統(tǒng)的家庭理財(cái)通軟件——收入模塊是在為改變筆記本,電腦記錄個(gè)人收入情況的局限性,為了適應(yīng)不斷發(fā)展的手機(jī)技術(shù)時(shí)代。主要是面向使用安卓智能手機(jī)一族,它能夠更加迅速、直接、及時(shí)的處理
4、個(gè)人收入情況。該軟件收入部分主要內(nèi)容包括填寫新增收入、瀏覽收入信息、修改收入信息、刪除收入信息。反映出個(gè)人收入情況,且系統(tǒng)功能操作方便、易懂,頁面設(shè)計(jì)美觀大方,操作簡便,容易上手。</p><p> 在通過對人們記錄收入習(xí)慣的調(diào)查與分析后,嘗試采用面向 對象系統(tǒng)分析與設(shè)計(jì)方法,設(shè)計(jì)實(shí)現(xiàn)此系統(tǒng)模塊,進(jìn)行收入的增、刪、查、改操作,以及對SQLite進(jìn)行管理。</p><p> 關(guān)鍵字 .安
5、卓理財(cái)系統(tǒng) SQLite Java</p><p><b> Abstract</b></p><p> Based on android system of family financial management software module is to change the laptop, computer records of personal inc
6、ome limitations, in order to adapt to the continuous development of mobile technology。Mainly is to use android smartphone gens, it can more quickly and timely directly dealing with personal income.Income part of the soft
7、ware mainly includes to fill in additional income to browse information modify information delete revenue income.Reflect personal income, and the system</p><p> In through to the people, after investigation
8、 and analysis of the income used to record attempt USES the object-oriented system analysis and design method, design and realization of the system module, change operation during a revenue increase, delete, and manage t
9、he SQLite.</p><p> Keywords: Android wealth management system, SQLite, Java.</p><p><b> 目 錄</b></p><p><b> 1.緒論1</b></p><p><b> 1.
10、1 前言1</b></p><p> 1.2 課題研究的背景及意義1</p><p> 1.3國內(nèi)外研究的現(xiàn)狀1</p><p> 1.4設(shè)計(jì)的主要工作2</p><p><b> 1.5 論文組織</b></p><p> 2.開發(fā)環(huán)境和開發(fā)技術(shù)3</p&g
11、t;<p> 2.1 系統(tǒng)介紹3</p><p> 2.1.1 安卓系統(tǒng)簡介3</p><p> 2.1.2 理財(cái)軟件簡介3</p><p> 2.2工具環(huán)境介紹4</p><p> 2.2.1 開發(fā)環(huán)境的選擇4</p><p> 2.2.2 JAVA語言簡介4</p>
12、<p> 2.2.3 SQLite簡介5</p><p> 2.2.4 開發(fā)工具Eclipse簡介</p><p><b> 3.需求分析7</b></p><p> 3.1 設(shè)計(jì)思想7</p><p> 3.2 可行性分析7</p><p> 3.2.1 操作可
13、行性7</p><p> 3.2.2 技術(shù)可行性7</p><p> 3.2.3 經(jīng)濟(jì)可行性7</p><p> 3.3 功能需求7</p><p> 3.3.1 基本功能需求7</p><p> 3.3.2 用戶界面需求8</p><p><b> 4.系統(tǒng)設(shè)
14、計(jì)9</b></p><p> 4.1 總體結(jié)構(gòu)設(shè)計(jì)9</p><p> 4.1.1 系統(tǒng)設(shè)計(jì)基礎(chǔ)9</p><p> 4.1.2 模塊設(shè)計(jì)9</p><p> 4.1.3 系統(tǒng)流程10</p><p> 4.2 數(shù)據(jù)庫設(shè)計(jì)11</p><p> 4.2.1
15、數(shù)據(jù)庫簡介12</p><p> 4.2.2 數(shù)據(jù)庫設(shè)計(jì)原則12</p><p><b> 5.系統(tǒng)實(shí)現(xiàn)12</b></p><p> 5.1用戶主要功能程序代碼12</p><p> 5.2主要應(yīng)用界面16</p><p> 5.2.1用戶登陸界面17</p>
16、<p> 5.2.2用戶查詢頁面17</p><p> 5.2.3用戶收入選擇模式18</p><p><b> 6.結(jié)束語19</b></p><p><b> 6.1 總結(jié)19</b></p><p> 6.2 心得體會19</p><p>
17、;<b> 致謝20</b></p><p><b> 參考文獻(xiàn)21</b></p><p><b> 1.緒論</b></p><p><b> 前言</b></p><p> 隨著金融市場的迅速發(fā)展,個(gè)人理財(cái)正在悄然進(jìn)入人們的生活。人們在
18、積累財(cái)富的同時(shí),開始意識到要通過專業(yè)化的理財(cái)服務(wù)、功能強(qiáng)大的理財(cái)軟件,利用有效的金融市場和多元化的金融工具,確保財(cái)富的保值增值和必要的風(fēng)險(xiǎn)管理。</p><p> 此次課題針對Android 平臺下的軟件開發(fā)的架構(gòu)、設(shè)計(jì)和實(shí)現(xiàn)進(jìn)行探討,通過Android平臺實(shí)現(xiàn)一個(gè)功能齊全的個(gè)人理財(cái)軟件。相較于電腦上的理財(cái)軟件,由于載體——手機(jī)的便攜性和高使用率,它更大限度地滿足了消費(fèi)者的需求,有著更廣泛的受眾,如年輕的白領(lǐng)們
19、。他們有著較強(qiáng)的理財(cái)意識,又屬于高收入群體,對日新月異的技術(shù)發(fā)展有著很強(qiáng)的接受度和可塑性。從這方面說,手機(jī)理財(cái)產(chǎn)品的潛在市場相當(dāng)可觀。</p><p> 1.2 課題研究的背景及意義</p><p> 多年來人們都使用傳統(tǒng)的人工方式記錄和管理家庭或自己財(cái)務(wù)情況。這種管理和記錄方式存在著不可避免的缺點(diǎn),如效率太差,保密性不高等;隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日益成熟,人們通過程序軟件
20、方便生活的想法也愈加強(qiáng)烈。 手機(jī),作為現(xiàn)代生活中必不可少的工具,儼然已發(fā)展成一部多媒體終端,其重要性不言而喻;現(xiàn)代的時(shí)代進(jìn)入高速的信息時(shí)代,人們越來越看重信息的收集與傳播。手機(jī)、軟件的功能要越來越強(qiáng)大才能滿足人們的需求,功能強(qiáng)大也就成為廣大時(shí)尚用戶的個(gè)性化需求之一。 手機(jī)理財(cái)軟件恰恰能滿足用戶的這種需求。</p><p> 與此同時(shí),隨著塞班系統(tǒng)的逐漸沒落,Android引領(lǐng)的智能
21、手機(jī)迅速火熱,除卻iphone自己的蘋果系統(tǒng),安卓系統(tǒng)作為最新的開源手機(jī)操作系統(tǒng),現(xiàn)已被大量手機(jī)廠家所采用,在不久的將來必將占據(jù)大量的市場份額。隨著年輕群體對手機(jī)的依賴,傳統(tǒng)的理財(cái)記錄方式已經(jīng)不能適應(yīng)迅速發(fā)展的手機(jī)時(shí)代。為此,一款基于Android 手機(jī)平臺的個(gè)人理財(cái)軟件應(yīng)運(yùn)而生。</p><p><b> 國內(nèi)外研究的現(xiàn)狀</b></p><p> 家庭理財(cái)系統(tǒng)
22、在國外很多地方使用已經(jīng)相當(dāng)?shù)钠毡椋覈獾幕诎沧肯到y(tǒng)的家庭理財(cái)系統(tǒng)功能相當(dāng)強(qiáng)大,比如系統(tǒng)里包含有股票的預(yù)測、基金的分析等等。而隨著國內(nèi)物價(jià)飛漲形勢的影響,人們越來越意識到個(gè)人理財(cái)?shù)谋匾?。同時(shí)簡單原始的使用紙筆進(jìn)行記錄甚至計(jì)算機(jī)進(jìn)行記錄的方式已經(jīng)不能滿足人們的需求,因此,基于手機(jī)的個(gè)人理財(cái)系統(tǒng)成為當(dāng)下最受關(guān)注的軟件系統(tǒng)。國內(nèi)如此巨大的市場需求也促使了很多公司對理財(cái)系統(tǒng)的研究。</p><p> 1.4 設(shè)計(jì)
23、的主要工作</p><p> 本系統(tǒng)包括登陸窗體的設(shè)計(jì)以及理財(cái)系統(tǒng)的收入部分的設(shè)計(jì)。收入部分的各個(gè)模塊分別為新增收入模塊、瀏覽收入信息模塊、修改收入信息模塊、刪除收入信息模塊。</p><p> 新增收入模塊主要實(shí)現(xiàn)的功能是新增收入的基本信息,包括收入的金額以及收入的來源;</p><p> 瀏覽收入信息模塊主要實(shí)現(xiàn)的功能是瀏覽近期個(gè)人收入,方便及時(shí)理財(cái);&l
24、t;/p><p> 修改收入信息模塊主要實(shí)現(xiàn)的功能是對近期個(gè)人收入的金額以及來源進(jìn)行修改;</p><p> 刪除收入信息模塊主要實(shí)現(xiàn)的功能是對近期個(gè)人收入的金額以及來源進(jìn)行刪除;</p><p><b> 1.5 論文組織</b></p><p> 論文全文共分為六章:</p><p>
25、緒論。這一章主要介紹了論文選題的引言、對課題研究的背景及意義進(jìn)行了分析。</p><p> 第二章 開發(fā)環(huán)境和開發(fā)技術(shù)。這一章介紹了系統(tǒng)、系統(tǒng)的開發(fā)模式、開發(fā)環(huán)境等基礎(chǔ)知識。</p><p> 第三章 需求分析。這一章主要介紹了系統(tǒng)設(shè)計(jì)思想、可行性分析、功能和性能需求。</p><p> 第四章 系統(tǒng)設(shè)計(jì)。這一章主要介紹了系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)和系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì),
26、其中數(shù)據(jù)庫的設(shè)計(jì)包括了概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。</p><p> 第五章 系統(tǒng)實(shí)現(xiàn)。這一章介紹了系統(tǒng)的所有模塊和它的功能。選取具有代表性的數(shù)據(jù)進(jìn)行測試,保證系統(tǒng)正常運(yùn)行。</p><p> 第六章 結(jié)束語。對系統(tǒng)實(shí)現(xiàn)過程進(jìn)行了總結(jié)。</p><p> 2.開發(fā)環(huán)境和開發(fā)技術(shù)</p><p><b> 2.1 系統(tǒng)介紹&
27、lt;/b></p><p> 系統(tǒng)是在一定環(huán)境中相互聯(lián)系和相互作用的若干部分組成的具有某種功能的集合,一個(gè)系統(tǒng)內(nèi)可能包含許多功能各異的子系統(tǒng),這意味著系統(tǒng)可以具有多層結(jié)構(gòu),一個(gè)系統(tǒng)的整體功能往往大于單個(gè)子系統(tǒng)的功能之和。</p><p> 本系統(tǒng)可以及時(shí)、準(zhǔn)確、快捷的掌握每次收入的明細(xì),能夠快速的對收入情況進(jìn)行增、刪、查、改等操作,充分滿足現(xiàn)代生活對手機(jī)記錄收入部分的需求。&l
28、t;/p><p> 2.1.1 安卓系統(tǒng)簡介 </p><p> Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。</p><p> Android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。Android分為四個(gè)層,從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層
29、、系統(tǒng)運(yùn)行庫層和Linux內(nèi)核層。</p><p><b> 應(yīng)用程序</b></p><p> Android會同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語言編寫的。</p><p><b> 應(yīng)用程序框架</b>&
30、lt;/p><p> 開發(fā)人員也可以完全訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡化了組件的重用;任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性)。同樣,該應(yīng)用程序重用機(jī)制也使用戶可以方便的替換程序組件。</p><p><b> 系統(tǒng)運(yùn)行庫</b></p><p>
31、 Android 包含一些C/C++庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過 Android 應(yīng)用程序框架為開發(fā)者提供服務(wù)。</p><p> 2.1.2 理財(cái)軟件簡介</p><p> 理財(cái)軟件,是指以財(cái)務(wù)賬戶為核心,以增值獲利為目的, 以資金流動為手段,以統(tǒng)計(jì)分析為決策的管理軟件。</p><p> 理財(cái)軟件頗受白領(lǐng)青睞,不少以前家庭收
32、支一筆糊涂賬的白領(lǐng),操縱理財(cái)軟件實(shí)現(xiàn)了家庭資產(chǎn)設(shè)置裝備擺設(shè)更合理,財(cái)政風(fēng)險(xiǎn)最小化。今朝已有多家軟件公司和銀行先后推出理財(cái)軟件供客戶下載利用,有的是互聯(lián)網(wǎng)公司開發(fā)的中國式理財(cái)軟件,家庭收支記賬理財(cái)軟件等,具有多賬戶登錄等功能,有的是銀行自己開辟的軟件,如招行的財(cái)富賬戶專業(yè)版,里面囊括了賬戶總覽、現(xiàn)金治理、投資治理三大板塊;有的是第三方機(jī)構(gòu)供給的軟件,如工行、農(nóng)行、民生銀行等推出的第三方機(jī)構(gòu)供給的理財(cái)軟件,客戶直接從網(wǎng)上銀行下載,功能更壯大
33、,不僅包含投資理財(cái)?shù)墓δ埽€包含記賬、財(cái)政分析、聯(lián)系關(guān)系賬戶等細(xì)枝小節(jié)的功能。</p><p> 理財(cái)軟件當(dāng)然是實(shí)現(xiàn)資產(chǎn)收益最大化的好輔佐,帶給用戶良多實(shí)惠,但好的理財(cái)習(xí)慣才更主要。理財(cái)專家建議,理財(cái)軟件用戶最好在年頭就擬定出昔時(shí)的收支預(yù)算表,便于每月監(jiān)控自己的收進(jìn)和支出比例。此外,理財(cái)記賬貴在堅(jiān)持,理財(cái)軟件只是工具,養(yǎng)成理財(cái)記賬的習(xí)慣最主。</p><p><b> 2.2
34、工具環(huán)境介紹</b></p><p> 2.2.1 開發(fā)環(huán)境的選擇</p><p> 開發(fā)與運(yùn)行的環(huán)境的選擇會影響到數(shù)據(jù)庫設(shè)計(jì),本系統(tǒng)開發(fā)與運(yùn)行環(huán)境如下:</p><p> ?開發(fā)環(huán)境:Windows XP professional</p><p> ?開發(fā)工具:Eclipse</p><p>
35、 ?數(shù)據(jù)庫管理系統(tǒng):SQLLite</p><p> 本系統(tǒng)主要采用Java與SQLLite相結(jié)合的技術(shù)。利用Eclipse軟件來設(shè)計(jì)系統(tǒng)界面,使整個(gè)系統(tǒng)更具有吸引力和良好的價(jià)值</p><p> 2.2.2 Java語言簡介</p><p> Java編程語言的風(fēng)格十分接近C、C++語言。Java是一個(gè)純粹的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,它繼承了 C++語言面
36、向?qū)ο蠹夹g(shù)的核心。Java舍棄了C語言中容易引起錯(cuò)誤的指針(以引用取代)、運(yùn)算符重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔(dān)憂。在 Java 1.5 版本中,Java 又引入了泛型編程(Generic Programming)、類型安全的枚舉、不定長參數(shù)和自動裝/拆箱等語言特性。</p><
37、p> Java不同于一般的編譯執(zhí)行計(jì)算機(jī)語言和解釋執(zhí)行計(jì)算機(jī)語言。它首先將源代碼編譯成二進(jìn)制字節(jié)碼(bytecode),然后依賴各種不同平臺上的虛擬機(jī)來解釋執(zhí)行字節(jié)碼。從而實(shí)現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺特性。不過,每次的執(zhí)行編譯后的字節(jié)碼需要消耗一定的時(shí)間,這同時(shí)也在一定程度上降低了 Java 程序的運(yùn)行效率。</p><p> 編輯Java源代碼可以使用任何無格式的文本編輯器,在Windows操
38、作系統(tǒng)上可以使用記事本(Notepad)、EditPlus等程序,在Linux平臺上可使用VI工具等。[</p><p> 2.2.3 SQLLite數(shù)據(jù)庫簡介</p><p> SQLite是一款輕型的數(shù)據(jù)庫,SQLite的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux
39、/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語言相結(jié)合,比如Tcl、PHP、Java 等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。</p><p> SQLite數(shù)據(jù)庫是D.Richard Hipp用C語言編寫的開源嵌入式數(shù)據(jù)庫,支持的數(shù)據(jù)庫大小為2TB。它具有如下特征:</p><p><b&g
40、t; 1、輕量級</b></p><p> SQLite和C\S模式的數(shù)據(jù)庫軟件不同,它是進(jìn)程內(nèi)的數(shù)據(jù)庫引擎,因此不存在數(shù)據(jù)庫的客戶端和服務(wù)器。使用SQLite一般只需要帶上它的一個(gè)動態(tài)庫,就可以享受它的全部功能。而且那個(gè)動態(tài)庫的尺寸也相當(dāng)小。</p><p><b> 2、獨(dú)立性</b></p><p> SQLite數(shù)據(jù)
41、庫的核心引擎本身不依賴第三方軟件,使用它也不需要“安裝”,所以在使用的時(shí)候能夠省去不少麻煩。</p><p><b> 3、隔離性</b></p><p> SQLite數(shù)據(jù)庫中的所有信息(比如表、視圖、觸發(fā)器)都包含在一個(gè)文件內(nèi),方便管理和維護(hù)。</p><p><b> 4、跨平臺</b></p>
42、<p> SQLite數(shù)據(jù)庫支持大部分操作系統(tǒng),除了我們在電腦上使用的操作系統(tǒng)之外,很多手機(jī)操作系統(tǒng)同樣可以運(yùn)行,比如Android、Windows Mobile、Symbian、Palm等。</p><p><b> 5、多語言接口</b></p><p> SQLite數(shù)據(jù)庫支持很多語言編程接口,比如C\C++、Java、Python、dotNet
43、、Ruby、Perl等,得到更多開發(fā)者的喜愛。</p><p><b> 6、安全性</b></p><p> SQLite數(shù)據(jù)庫通過數(shù)據(jù)庫級上的獨(dú)占性和共享鎖來實(shí)現(xiàn)獨(dú)立事務(wù)處理。這意味著多個(gè)進(jìn)程可以在同一時(shí)間從同一數(shù)據(jù)庫讀取數(shù)據(jù),但只有一個(gè)可以寫入數(shù)據(jù)。在某個(gè)進(jìn)程或線程向數(shù)據(jù)庫執(zhí)行寫操作之前,必須獲得獨(dú)占鎖定。在發(fā)出獨(dú)占鎖定后,其他的讀或?qū)懖僮鲗⒉粫侔l(fā)生。&l
44、t;/p><p> 2.2.4 開發(fā)工具Eclipse簡介</p><p> Eclipse 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺。作為一種開源軟件,其發(fā)展得到了全世界軟件開發(fā)廠商和技術(shù)愛好者的支持,其版本一直都在不斷的升級之中,各種開發(fā)功能也在被不斷的整合到Eclipse之上。而且,許多軟件開發(fā)商都是在以Eclipse為框架開發(fā)自己的IDE,如比較流行的IDE Apatn
45、a。但Eclipse 不限于當(dāng)作 Java IDE 來使用。由于 Eclipse 中的每樣?xùn)|西都是插件,對于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。Eclipse的本身只是一個(gè)框架平臺,但是眾多插件的支持使得Eclipse擁有其他功能相對固定的I
46、DE軟件很難具有的靈活性。</p><p> 作為一種流行的開源軟件,其設(shè)計(jì)的初衷便是高效的開發(fā)出Java程序。在其實(shí)現(xiàn)中同樣高效的支持Java Web項(xiàng)目的開發(fā),能夠完成Web項(xiàng)目工程的自動構(gòu)建,部署和開發(fā)。其強(qiáng)大的語言提示功能和代碼分類顯示功能,極大的提高了軟件開發(fā)人員的程序開發(fā)效率。</p><p><b> 3.需求分析</b></p>&l
47、t;p><b> 3.1 設(shè)計(jì)思想</b></p><p> 第一步就是需要利用SQLite建立所需要的數(shù)據(jù)庫,第二步就使用Java語言該系統(tǒng)客戶端應(yīng)用程序的開發(fā)。</p><p><b> 3.2 可行性分析</b></p><p> 可行性分析是系統(tǒng)分析階段的第二項(xiàng)活動,它的主要目是進(jìn)一步明確系統(tǒng)的目標(biāo)、
48、規(guī)模與功能,對系統(tǒng)開發(fā)背景、必要性和意義進(jìn)行了調(diào)查分析并根據(jù)需要和可能提出開發(fā)系統(tǒng)的初步方案與計(jì)劃??尚行苑治鍪菍ο到y(tǒng)進(jìn)行全面、概要的分析。通過調(diào)查分析,本系統(tǒng)設(shè)計(jì)主要有以下三個(gè)可行性:</p><p> 3.2.1 操作可行性</p><p> 本系統(tǒng)操作簡單,易于理解,只需通過簡單指導(dǎo),上手較快,運(yùn)行環(huán)境要求低。</p><p> 3.2.2 技術(shù)可行性&
49、lt;/p><p> 本課題采用Java語言進(jìn)行開發(fā),提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實(shí)現(xiàn)機(jī)制。同時(shí)Java語言支持全動態(tài)綁定,它的強(qiáng)類型機(jī)制、異常處理、垃圾的自動收集以及安全檢查機(jī)制使其程序具有健壯性。</p><p> 3.2.3 經(jīng)濟(jì)可行性</p><p> 本課題所使用的軟件都為免費(fèi)
50、公開發(fā)行版,不需要購買。現(xiàn)在,計(jì)算機(jī)的價(jià)格已經(jīng)十分低廉,性能卻有了長足的進(jìn)步。為本次開發(fā)提供了設(shè)備支持,同時(shí)幾乎所有的安卓手機(jī)都可以高效的運(yùn)行使用該理財(cái)系統(tǒng) 。</p><p><b> 3.3 功能需求</b></p><p> 按照系統(tǒng)開發(fā)的要求分析,并且通過對應(yīng)用者的需求進(jìn)行調(diào)研,要求包括軟件操作簡單,界面簡潔大方。</p><p>
51、 3.3.1 基本功能需求</p><p> 通過系統(tǒng)的分析,可得出該系統(tǒng)的基本功能需求如下:</p><p> 能夠?qū)€(gè)人收入的金額以及來源進(jìn)行新增、瀏覽、查看以及刪除操作。</p><p> 3.3.2 用戶界面需求</p><p> 系統(tǒng)界面要符合大多數(shù)人的使用習(xí)慣,界面美觀、按鈕得體,使用起來要方便。</p>
52、<p><b> 4.系統(tǒng)設(shè)計(jì)</b></p><p> 4.1 總體結(jié)構(gòu)設(shè)計(jì)</p><p> 4.1.1 系統(tǒng)設(shè)計(jì)基礎(chǔ)</p><p> 系統(tǒng)總體設(shè)計(jì)原則是需要充分考慮系統(tǒng)框架的合理構(gòu)建理。其組織結(jié)構(gòu)圖如4-1所示。</p><p> 圖4-1系統(tǒng)組織結(jié)構(gòu)圖</p><p>
53、; 4.1.2 模塊設(shè)計(jì)</p><p> 本系統(tǒng)是一個(gè)典型的收入管理系統(tǒng),主要目標(biāo)是讓使用它的用戶能很好地管理收入,如新增收入功能、瀏覽收入信息功能、修改收入信息功能、刪除收入信息功能。</p><p> 系統(tǒng)從總體上分為新增收入功能模塊、瀏覽收入信息功能模塊、修改收入信息模塊、刪除收入信息模塊。每個(gè)模塊有自己的作用。下面的各模塊功能流圖就是由各功能之間的關(guān)系而得出的。</p
54、><p> 如下圖4-5所示,用戶添加收入的基本流程,用戶輸入要添加的收入信息,然后系統(tǒng)更新數(shù)據(jù)庫,顯示到信息表上:</p><p> 圖4-5 用戶添加收入流程</p><p> 如下圖4-6所示,查詢基本流程,用戶輸入要查詢信息,然后查詢并顯示結(jié)果。</p><p> 圖4-6 查詢表報(bào)流程</p><p>
55、 4.1.3 系統(tǒng)流程</p><p> 系統(tǒng)在執(zhí)行過程中,按照一定的流程進(jìn)行。如圖4-7所示</p><p> 圖4-7 添加新信息流程圖</p><p> 查看收入流程圖,如圖4-8所示</p><p> 圖4-8 查詢收入流程圖</p><p><b> 4.2 數(shù)據(jù)庫設(shè)計(jì)</b>
56、</p><p> 4.2.1 數(shù)據(jù)庫簡介</p><p> 在系統(tǒng)設(shè)計(jì)過程中,數(shù)據(jù)庫的設(shè)計(jì)是系統(tǒng)的核心和基礎(chǔ),把系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來,提供存儲、維護(hù)、檢索數(shù)據(jù)的功能,使信息系統(tǒng)可以方便、及時(shí)、準(zhǔn)確地從數(shù)據(jù)庫中獲得所需的信息。</p><p> 數(shù)據(jù)庫是長期儲存在計(jì)算機(jī)內(nèi)大量的有組織的,可以共享的數(shù)據(jù)的集合,這種數(shù)據(jù)集合具有如下特點(diǎn):盡可能不重
57、復(fù),以最優(yōu)方式為某個(gè)特定組織的多種應(yīng)用服務(wù),其數(shù)據(jù)結(jié)構(gòu)獨(dú)立于使用它的應(yīng)用程序,對數(shù)據(jù)的增、刪、改和檢索由統(tǒng)一軟件進(jìn)行管理和控制。從發(fā)展的歷史看,數(shù)據(jù)庫是數(shù)據(jù)管理的高級階段,它是由文件管理系統(tǒng)發(fā)展起來的。</p><p> 4.2.2 數(shù)據(jù)庫設(shè)計(jì)原則</p><p> 在具體數(shù)據(jù)庫設(shè)計(jì)過程中,要遵循以下原則:</p><p> (1)為了增強(qiáng)數(shù)據(jù)庫程序的可讀性和
58、可維護(hù)性,按照相應(yīng)的命名原則規(guī)范對數(shù)據(jù)表、</p><p> 變量、存儲過程、視圖等進(jìn)行規(guī)范化,并對具體的SQL代碼編寫規(guī)范化。</p><p> (2)在數(shù)據(jù)表的設(shè)計(jì)中,滿足每個(gè)字段必須盡量小,只能包含一個(gè)數(shù)據(jù)項(xiàng)目、必須完</p><p> 全支持主鍵,而且只支持主鍵,每條記錄必須唯一等。</p><p> (3)多使用存儲過程實(shí)現(xiàn)
59、對數(shù)據(jù)庫的操作,增加訪問效率及軟件程序修改。</p><p> (4)數(shù)據(jù)的安全性方面主要是確定用戶標(biāo)識及口令,對關(guān)系或數(shù)據(jù)庫設(shè)置封鎖,對用戶授權(quán)或設(shè)置用戶訪問控制表。</p><p><b> 5 系統(tǒng)實(shí)現(xiàn)</b></p><p> 5.1 用戶主要功能程序代碼</p><p> Login.java的部分代碼
60、:</p><p> Button login, cancel;</p><p> private DataBaseHelper dh;</p><p> String name, password;</p><p> EditText Name, Password;</p><p> int flag =
61、1;</p><p> int mflag = 1;</p><p> int mflag2 = 1;</p><p> 大類中首先就是生命組件跟變量,android是一個(gè)組件式開發(fā)環(huán)境,以組件修改套接開發(fā)為主;</p><p> public static String MD5(String str) {</p>&l
62、t;p> MessageDigest md5 = null;</p><p><b> try {</b></p><p> md5 = MessageDigest.getInstance("MD5");</p><p> } catch (Exception e) {</p><p>
63、 e.printStackTrace();</p><p> return "";</p><p><b> }</b></p><p> char[] charArray = str.toCharArray();</p><p> byte[] byteArray = new byte[c
64、harArray.length];</p><p> for (int i = 0; i < charArray.length; i++) {</p><p> byteArray[i] = (byte) charArray[i];</p><p><b> }</b></p><p> byte[] md
65、5Bytes = md5.digest(byteArray);</p><p> StringBuffer hexValue = new StringBuffer();</p><p> for (int i = 0; i < md5Bytes.length; i++) {</p><p> int val = ((int) md5Bytes[i]) &
66、amp; 0xff;</p><p> if (val < 16) {</p><p> hexValue.append("0");</p><p><b> }</b></p><p> hexValue.append(Integer.toHexString(val));</p&
67、gt;<p><b> }</b></p><p> return hexValue.toString();</p><p><b> }</b></p><p> MD5算法加密,用于對用戶名密碼加密保存。這么做主要是因?yàn)閟qlite數(shù)據(jù)庫本身安全性不高,訪問權(quán)限基本等于沒限制。</p>
68、<p> 手寫一個(gè)繼承SQLiteOpenHelper的數(shù)據(jù)庫助手類DataBaseHelper,通過該類進(jìn)行數(shù)據(jù)庫連接初始化工作,通過new出來的DataBaseHelper對象進(jìn)行數(shù)據(jù)庫操作</p><p> 數(shù)據(jù)庫操作主要代碼:</p><p> SQLiteDatabase db = dh.getReadableDatabase();</p>&l
69、t;p> String[] columns = { </p><p> DataBaseHelper.ID, DataBaseHelper.NAME,</p><p> DataBaseHelper.PASSWORD };</p><p> Cursor c = db.query(DataBaseHelper.TABLE_USER, columns,
70、null,null, null, null, null);</p><p> while (c.moveToNext()) {</p><p><b> }</b></p><p><b> }</b></p><p> c.close();</p><p> db
71、.close();</p><p> 功能選擇界面的部分代碼:</p><p> Button btn_new,btn_about,btn_up,btn_help;</p><p> setContentView(R.layin.main);</p><p> GridView gridview = (GridView) findVi
72、ewById(R.id.gridview);</p><p> gridview.setAdapter(new ImageAdapter(this));</p><p> gridview.setOnItemClickListener(new OnItemClickListener() {}</p><p> 從代碼可見,該界面主要實(shí)現(xiàn)的就是按鈕功能,用來作為
73、軟件各功能實(shí)現(xiàn)的紐帶;GridView采用一個(gè)自定義的布局填充;</p><p> (3)記錄中的部分代碼</p><p> Criteria criteria = new Criteria();// 對gps獲取信息方式進(jìn)行設(shè)置</p><p> criteria.setAccuracy(Criteria.ACCURACY_FINE);// 精度</p
74、><p> criteria.setAltitudeRequired(false);// 是否要高度信息</p><p> criteria.setBearingRequired(false);// 是否要方位信息</p><p> criteria.setgetAllowed(true);// 是否需要產(chǎn)生費(fèi)用</p><p> cri
75、teria.setPowerRequirement(Criteria.POWER_LOW);// 耗電量設(shè)置了首先對gps模塊進(jìn)行設(shè)置,因?yàn)樵摴δ艿膶?shí)現(xiàn)要啟用gps模塊,獲取定位信息</p><p> protected void camera() {</p><p> Intent intent = new Intent();</p><p> intent
76、.setAction(MediaStore.ACTION_IMAGE_CAPTURE);</p><p> picpath = System.currentTimeMillis() + ".jpg";</p><p> Uri uri = Uri.fromFile(new File("/sdcard/" + picpath));</p>
77、;<p> intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);</p><p> startActivityForResult(intent, REQUESTCODE);</p><p><b> }</b></p><p> 調(diào)用系統(tǒng)的照相接口,實(shí)現(xiàn)照片采集功能,并自動保存到內(nèi)存
78、卡上邊。</p><p> Toast.makeText(getApplicationContext(), "已保存完成",</p><p> Toast.LENGTH_LONG).show();</p><p> 用Toast提示照片保存完成</p><p> 查詢中的部分代碼。 </p><
79、;p> private List<Manager> find(){</p><p> dh = new DataBaseHelper(this);</p><p> SQLiteDatabase db = dh.getReadableDatabase();</p><p> String[] columns = { DataBaseHelp
80、er.IN, DataBaseHelper.TIME,</p><p> DataBaseHelper.PIC,DataBaseHelper.X,DataBaseHelper.Y };</p><p> Cursor c = db.query(DataBaseHelper.TABLE_USER_IN, columns, null, null,null, null, nu
81、ll);</p><p> List<Manager> users = new ArrayList<Manager>();</p><p> Manager e = null;</p><p> while (c.moveToNext()) {</p><p> e = new Manager();</p
82、><p> e.setIn(c.getDouble(0));</p><p> e.setTime(c.getString(1));</p><p> e.setPic(c.getString(2));</p><p> e.setX(c.getDouble(3));</p><p> e.setY(c.getD
83、ouble(4));</p><p> users.add(e);</p><p><b> }</b></p><p> c.close();</p><p> db.close();</p><p> return users;</p><p><b&g
84、t; }</b></p><p> 查詢方法,查詢返回一個(gè)list集合,包含數(shù)據(jù)庫表內(nèi)的全部數(shù)據(jù)信息</p><p><b> 新用戶的部分代碼:</b></p><p> if (userpassword.equals(testpassword)) {</p><p> SQLiteDatabas
85、e db = dh.getWritableDatabase();</p><p> User user = new User(MD5(userName.getText().toString()),</p><p> MD5(userpassword));</p><p> ContentValues values = new ContentValues();&
86、lt;/p><p> values.put(DataBaseHelper.NAME, user.getName());</p><p> values.put(DataBaseHelper.PASSWORD, user.getPassWord());</p><p> db.insert(DataBaseHelper.TABLE_USER, null, value
87、s);</p><p> db.close();</p><p> Toast.makeText(NewUser.this, "數(shù)據(jù)插入成功",</p><p> Toast.LENGTH_LONG).show();</p><p><b> } else {</b></p>&
88、lt;p> Toast.makeText(NewUser.this, "數(shù)據(jù)未插入成功",</p><p> Toast.LENGTH_LONG).show();</p><p><b> }</b></p><p><b> } else {</b></p><p&g
89、t; Toast.makeText(NewUser.this, "兩次輸入的密碼不一致,請重新輸入",</p><p> Toast.LENGTH_LONG).show();</p><p><b> }</b></p><p> 首先驗(yàn)證兩次輸入的密碼是否一致,然后將用戶信息插入user表,并用toast對操作結(jié)果
90、進(jìn)行提示</p><p> 用戶修改的主要代碼:</p><p> SQLiteDatabase db1 = dh.getWritableDatabase();</p><p> User user = new User(name, MD5(userPassword</p><p> .getText().toString()));&
91、lt;/p><p> ContentValues values = new ContentValues();</p><p> values.put(DataBaseHelper.NAME, user.getName());</p><p> values.put(DataBaseHelper.PASSWORD,</p><p> use
92、r.getPassWord());</p><p> String whereClause = DataBaseHelper.ID + "=?";</p><p> String[] whereArgs = { String.valueOf(c.getInt(0)) };</p><p> db1.update(DataBaseHelper
93、.TABLE_USER, values,</p><p> whereClause, whereArgs);</p><p> Toast.makeText(UserUp.this, "數(shù)據(jù)修改成功",</p><p> Toast.LENGTH_LONG).show();</p><p> c.close();&
94、lt;/p><p> db.close();</p><p> db1.close();</p><p> 主要實(shí)現(xiàn)的是數(shù)據(jù)庫的更新,對user表的用戶密碼進(jìn)行修改</p><p> AndroidManifest.xml主要代碼:</p><p> <uses-permission android
95、:name="android.permission.ACCESS_FINE_LOCATION"/></p><p> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/></p><p> <uses-permission a
96、ndroid:name="android.permission.ACCESS_NETWORK_STATE"/></p><p> <uses-permission android:name="android.permission.INTERNET"/></p><p> <uses-permission android:n
97、ame="android.permission.WRITE_EXTERNAL_STORAGE"/></p><p> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/></p><p> <uses-permission androi
98、d:name="android.permission.BLUETOOTH"/></p><p> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/></p><p> <uses-permission android:name="
99、;android.permission.CHANGE_WIFI_STATE"/></p><p> <uses-permission android:name="android.permission.READ_PHONE_STATE"/></p><p> <uses-permission android:name="an
100、droid.permission.ACCESS_MOCK_LOCATION"/></p><p> <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"/></p><p> <uses-permission android:name="
101、;android.permission.CAMERA"/></p><p> 對應(yīng)用所需要的系統(tǒng)權(quán)限進(jìn)行設(shè)置,給予應(yīng)用網(wǎng)絡(luò)、定位、硬件操控等權(quán)限</p><p> <activity android:name="AndroidXunJianActivity" android:theme="@android:style/Theme.No
102、TitleBar.Fullscreen">></activity></p><p> <activity android:name="About" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">></activity></p>
103、<p> <activity android:name="UserUp" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">></activity></p><p> <activity android:name="Help" and
104、roid:theme="@android:style/Theme.NoTitleBar.Fullscreen">></activity></p><p> <activity android:name="GeoCoder" android:theme="@android:style/Theme.NoTitleBar.Fullscre
105、en">></activity></p><p> <activity android:name="Find" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">></activity></p><p> <a
106、ctivity android:name="ImageShow" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">></activity></p><p> <activity android:name="ObjSelect" android:theme
107、="@android:style/Theme.NoTitleBar.Fullscreen">></activity></p><p> <activity android:name="UpIn" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">&g
108、t;</activity></p><p> 對項(xiàng)目中應(yīng)用到的所有activity進(jìn)行注冊,只有在這里注冊過的activity才能在項(xiàng)目中進(jìn)行使用</p><p> 5.2 主要應(yīng)用界面</p><p> 程序應(yīng)用界面應(yīng)盡量符合題目要求,簡潔大方,操作簡便,簡單易懂</p><p> 5.2.1用戶登陸界面</p&g
109、t;<p> 5.2.2 用戶查詢頁面</p><p> 5.2.3 用戶收入選擇模式</p><p><b> 6.結(jié)束語</b></p><p><b> 6.1 總結(jié)</b></p><p> 畢業(yè)設(shè)計(jì)心得體會 隨著畢業(yè)日子的到來,畢業(yè)設(shè)計(jì)也接近了尾聲。經(jīng)過
110、幾周的奮戰(zhàn)我的畢業(yè)設(shè)計(jì)終于完成了。在沒有做畢業(yè)設(shè)計(jì)以前覺得畢業(yè)設(shè)計(jì)只是對這幾年來所學(xué)知識的單純總結(jié),但是通過這次做畢業(yè)設(shè)計(jì)發(fā)現(xiàn)自己的看法有點(diǎn)太片面。畢業(yè)設(shè)計(jì)不僅是對前面所學(xué)知識的一種檢驗(yàn),而且也是對自己能力的一種提高。通過這次畢業(yè)設(shè)計(jì)使我明白了自己原來知識還比較欠缺。自己要學(xué)習(xí)的東西還太多,以前老是覺得自己什么東西都會,什么東西都懂,有點(diǎn)眼高手低。通過這次畢業(yè)設(shè)計(jì),我才明白學(xué)習(xí)是一個(gè)長期積累的過程,在以后的工作、生活中都應(yīng)該不斷的學(xué)習(xí),
111、努力提高自己知識和綜合素質(zhì)。</p><p><b> 6.2 心得體會</b></p><p> 本系統(tǒng)所需知識是為接觸過的,本一無所知到系統(tǒng)運(yùn)行。不僅使我知道得到補(bǔ)充和增加,也鍛煉了我自我約束力和自學(xué)能力。</p><p><b> 致謝</b></p><p> 在此要感謝趙老師對我悉
112、心的指導(dǎo),感謝老師給我的幫助和很多建議。在設(shè)計(jì)過程中,我通過查閱大量有關(guān)資料,與同學(xué)交流經(jīng)驗(yàn)和自學(xué),并向老師請教等方式,使自己學(xué)到了不少知識,也經(jīng)歷了不少艱辛,但收獲同樣巨大。在整個(gè)設(shè)計(jì)中我懂得了許多東西,也培養(yǎng)了我獨(dú)立工作的能力,樹立了對自己工作能力的信心,相信會對今后的學(xué)習(xí)工作生活有非常重要的影響。而且大大提高了動手的能力,使我充分體會到了在創(chuàng)造過程中探索的艱難和成功時(shí)的喜悅。雖然這個(gè)設(shè)計(jì)做的也不太好,但是在設(shè)計(jì)過程中所學(xué)到的東西是
113、這次畢業(yè)設(shè)計(jì)的最大收獲和財(cái)富,使我終身受益。</p><p><b> 參考文獻(xiàn)</b></p><p> ?。?]李苑.基于Android移動平臺的警務(wù)查詢系統(tǒng)[D].碩士學(xué)位論文. 南昌大學(xué),2009</p><p> [2]陳益強(qiáng).簡析Android系統(tǒng)安全性,2011.9.20</p><p> ?。?]張鵬
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于android的家庭理財(cái)通軟件的設(shè)計(jì)—收入管理模塊
- 基于android系統(tǒng)的家庭理財(cái)通軟件—便簽管理模塊設(shè)計(jì)
- 基于android的家庭理財(cái)通軟件的設(shè)計(jì)——支出管理模塊
- 軟件工程畢業(yè)論文-基于android系統(tǒng)的家庭理財(cái)通軟件的設(shè)計(jì)——收入管理模塊
- 基于android系統(tǒng)的家庭理財(cái)通軟件
- 軟件工程畢業(yè)論文-基于android的家庭理財(cái)通軟件的設(shè)計(jì)——收入管理模塊
- 軟件工程畢業(yè)論文-基于android系統(tǒng)的家庭理財(cái)通軟件——便簽管理模塊設(shè)計(jì)
- 基于android平臺家庭理財(cái)通管理系統(tǒng)
- 軟件工程畢業(yè)論文-基于android的家庭理財(cái)通軟件的設(shè)計(jì)——支出管理模塊
- 軟件工程畢業(yè)論文-基于android系統(tǒng)的家庭理財(cái)通軟件-----支出模塊的設(shè)計(jì)
- 家庭理財(cái)通管理系統(tǒng).doc
- 基于web的家庭理財(cái)管理系統(tǒng)
- 家庭理財(cái)管理系統(tǒng)
- 基于iPad的家庭理財(cái)軟件的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 淺析家庭理財(cái)管理系統(tǒng)
- 家庭理財(cái)管理系統(tǒng).doc
- 【課程設(shè)計(jì)】家庭理財(cái)管理系統(tǒng)
- 課程設(shè)計(jì)——家庭理財(cái)管理系統(tǒng)
- 家庭理財(cái)管理系統(tǒng)設(shè)計(jì)與開發(fā)
- 家庭理財(cái)管理系統(tǒng)畢業(yè)設(shè)計(jì)
評論
0/150
提交評論