版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 本科畢業(yè)論文(設(shè)計(jì))基于Android平臺的個(gè)人理財(cái)軟件的設(shè)計(jì)與實(shí)現(xiàn)二級學(xué)院醫(yī)藥信息工程學(xué)院專 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班 級醫(yī)學(xué)智能2021級(1)班學(xué)生姓名林彬健學(xué) 號1107505151指導(dǎo)教師王鶴嫻2021 年 3 月誠 信 聲 明我聲明,所呈交的畢業(yè)論文設(shè)計(jì)是本人在老師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。據(jù)我查證,除了文中特別加以標(biāo)注和致謝的地方外,論文設(shè)計(jì)中不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得其他教育機(jī)構(gòu)的學(xué)位或證書而使用過的材料。我承諾,論文設(shè)計(jì)中的所有內(nèi)容均真實(shí)、可信。畢業(yè)論文設(shè)計(jì)作者簽名: 年 月 日基于Android平臺的個(gè)人理財(cái)軟件的設(shè)計(jì)與實(shí)現(xiàn)【摘要】:個(gè)
2、人理財(cái)管理系統(tǒng)是基于Android系統(tǒng)開發(fā)的一款 應(yīng)用程序。它主要是為了滿足人們在快節(jié)奏的生活中可以隨時(shí)記下自己的收支情況的需求。個(gè)人理財(cái)管理系統(tǒng)與傳統(tǒng)的記賬方式相比,表達(dá)了它的便捷性、平安性及可擴(kuò)展性。系統(tǒng)采用Eclipse+ Android Developer Tools作為開發(fā)工具,以SQLite為數(shù)據(jù)庫。系統(tǒng)功能包括:用戶賬戶的注冊、用戶切換、用戶名密碼修改、賬戶刪除,語音識別記賬,收入信息的增刪改,支出信息的增刪改,收入類型的增刪,支出類型的增刪,收入信息分類統(tǒng)計(jì),支出信息分類統(tǒng)計(jì),收入支出總額統(tǒng)計(jì),數(shù)據(jù)復(fù)原、清空等等。系統(tǒng)具有界面簡潔鮮明、功能便捷易用、操作人性化等特征?!娟P(guān)鍵字】
3、:收支管理;Android;SQLite;Personal Financial Management System Design and ImplementationAbstract:Personal financial management system is based on the Android system developed a mobile application.It is mainly to meet those people who want to write down their income and expenditure more quickly and conven
4、iently in the fast-paced life. Compared with the traditional method, Personal financial management system reflects more convenience,security and scalability. Especially in this day and age, people are on the side of the phone. System uses Eclipse and Android Developer Tools as a development tool and
5、 SQLite as the database. Android technology is now very mature, we can easily develop.Personal Financial Management System of the main functional modules,including: user account registration, user switching, username password changes, account deletion, Income information management,Expenditure infor
6、mation management,voice recognition accounting,Type of income management, Expenditure Type Manager, Income information classification statistics, expenditure information classification statistics, total income and expenditure statistics,Data reduction, data emptied and so on. The system has a simple
7、 and clear interface, easy-to-use features, user-friendly operation and other featuresKeywords: Revenue and expenditure management;Android;SQLite;目 錄1 緒論11.1 選題背景11.2 課題研究的目的和意義11.3 國內(nèi)外現(xiàn)狀和開展趨勢12設(shè)計(jì)開發(fā)所用到的工具和技術(shù)32.1系統(tǒng)開發(fā)工具32.2 Android的介紹32.3 Eclipse的介紹42.4 SQLite的介紹53系統(tǒng)需求分析63.1需求分析63.2 可行性分析63.2.1 系統(tǒng)可行性6
8、3.2.2 技術(shù)可行性63.2.3 經(jīng)濟(jì)可行性73.3系統(tǒng)功能模塊74系統(tǒng)總體設(shè)計(jì)94.1系統(tǒng)總體設(shè)計(jì)分析94.2系統(tǒng)流程圖94.3 系統(tǒng)特點(diǎn)94.4 數(shù)據(jù)庫設(shè)計(jì)104.4.1 tb_account賬戶表1104.4.2 tb_income收入信息表1104.4.3 tb_pay支出信息表11 tb_ptype支出類型表124.4.5 tb_itype收入類型表125系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)135.1 主界面設(shè)計(jì)135.2 收入/支出插入數(shù)據(jù)界面165.3 語音記賬界面215.4 類別維護(hù)界面315.5 收入/支出統(tǒng)計(jì)界面316.論文總結(jié)38參考文獻(xiàn)39致 謝40緒論1.1 選題背景出門口訣“伸手要
9、賞錢分別代表著身份證、 、鑰匙、傘、錢。在后PC時(shí)代的今天, 成為最重要的移動終端,是我們出門出行的必?cái)y物。以前,或許我們的 只能為我們提供根本通信功能,而隨著Android系統(tǒng)的誕生,我們的生活迎來了一場不亞于“工業(yè)革命帶給我們的巨大變化。基于Android系統(tǒng)的 處理各類信息的能力得到了質(zhì)的提升。而Android這個(gè)開源的操作系統(tǒng),將享受這項(xiàng)優(yōu)質(zhì)效勞的權(quán)利給了所有愿意使用它的人。Android從08年9月的1.1版到去年的L版,一路走來,從根本走向優(yōu)化,全方面地為我們提供了出色的網(wǎng)絡(luò)、多媒體、通訊、娛樂等功能。這匹黑馬,從誕生伊始到去年7月的“全球市場占有率達(dá)81.9%,告訴我們它的出現(xiàn)是
10、多么受人們歡送。它備受追捧的原因不外乎它完全的對第三方軟件開發(fā)商和我們這些開發(fā)者的開發(fā)。我們可以在它上面實(shí)現(xiàn)無限自主的“自定義。它宛如一張白紙,我們可以在上面隨意畫出自己想要的東西。它,貴在給予了我們自由。1.2 課題研究的目的和意義隨著高速經(jīng)濟(jì)化,我們的生活節(jié)奏越來越快。我們忙東忙西,總會容易忽略忘記了一些生活細(xì)節(jié),比方收支管理。為了更好的釋放一些時(shí)間來享受我們的生活,我們期待有這么一款軟件來幫助管理這些小數(shù)據(jù)。建立在Android操作系統(tǒng)上的個(gè)人理財(cái)系統(tǒng),方便我們隨時(shí)隨地地記錄著這些零散的數(shù)據(jù),從此我們不必再為收支費(fèi)心,清心地查看數(shù)據(jù)統(tǒng)計(jì)結(jié)果是我們唯一要做的事。1.3 國內(nèi)外現(xiàn)狀和開展趨勢
11、安卓在 上的應(yīng)用使得 的功能有了很大改善,這使得越來越多的入主要依靠 查詢大量信息,而用戶們不斷提高的需求也決定了越來越多的基于安卓平臺的應(yīng)用軟件及系統(tǒng)的產(chǎn)生。假設(shè)是基于安卓平臺的個(gè)人理財(cái)系統(tǒng)得到廣泛推廣,人們能從該應(yīng)用顯而易見的了解到個(gè)人的財(cái)務(wù)狀況,明確的使用自身錢財(cái),了解到日常中支出比例,調(diào)整支出,正確理財(cái)。(1) 開放性 平臺:android是Google開發(fā)的基于Linux平臺的開源 操作系統(tǒng)。Google通過與運(yùn)營商、設(shè)備制造商、 公司和其他有關(guān)各方結(jié)成深層次的合作伙伴關(guān)系,希望借助建立標(biāo)準(zhǔn)化、開放式的智能 操作系統(tǒng),在移動產(chǎn)業(yè)內(nèi)形成一個(gè)開放式的生態(tài)系統(tǒng)。(2) 網(wǎng)絡(luò)集成性很高:涵蓋
12、了生活中各個(gè)方面的網(wǎng)絡(luò)應(yīng)用,對長期使用網(wǎng)絡(luò)、信息依賴度比擬高的人群很適宜。(3) Android具備創(chuàng)新性自從:Google開發(fā)出Android后,許多人認(rèn)為其技術(shù)可信度要比其它操作系統(tǒng)略勝一籌,但這并不是用戶購置Android智能 的唯一原因。人們認(rèn)為Android是一種相對較新的、又較為成熟的技術(shù),在到達(dá)巔峰之前還有很大開展空間。(4) Android平臺在數(shù)量上逐漸主宰市場:市場分析機(jī)構(gòu)NPD發(fā)布的數(shù)據(jù)顯示,2021年4-6月份出售的智能 中,33%為Android ,而RIM 出售比例為28%,iPhone為22%.(5) Android在其它領(lǐng)域的拓展:android不僅促進(jìn)了 產(chǎn)業(yè)
13、的開展,它的全面計(jì)算效勞和豐富的功能支持,已將應(yīng)用拓展到 以外的其他領(lǐng)域。Android平臺的通用性可以適用于不同的屏幕、有線和無線設(shè)備。Android的系統(tǒng)和應(yīng)用程序開發(fā)人員將更多的涉足多媒體、移動互聯(lián)網(wǎng)設(shè)備、數(shù)字視頻和家庭娛樂設(shè)備、汽車、醫(yī)藥、網(wǎng)絡(luò)、監(jiān)測儀器和工業(yè)管理、機(jī)頂盒等新領(lǐng)域。2設(shè)計(jì)開發(fā)所用到的工具和技術(shù)2.1系統(tǒng)開發(fā)工具個(gè)人財(cái)務(wù)管理系統(tǒng)的開發(fā)及運(yùn)行環(huán)境如下所述:操作系統(tǒng):Windows7JDK環(huán)境:開發(fā)工具:Android Software Development Kit 開發(fā)語言:Java、XML數(shù)據(jù)庫軟件:SQLite 運(yùn)行平臺:Windows虛擬機(jī):720P(1080x72
14、0)2.2 Android的介紹Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能 和平板電腦,由Google公司和開放 聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓或“安致。Android操作系統(tǒng)最初由Andy Rubin開發(fā),主要支持 。2005年8月由Google收購注資。2007年11月,Google與84家硬件制造商、軟件開發(fā)商及電信營運(yùn)商組建開放 聯(lián)盟共同研發(fā)改進(jìn)Android系統(tǒng)。該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。它采用軟件堆層Software Stack,又名軟件疊層的架構(gòu),主要分為三局部。底層以Lin
15、ux內(nèi)核工作為根底,由C語言開發(fā),只提供根本功能;中間層包括函數(shù)庫Library和虛擬機(jī)Virtual Machine,由C+開發(fā)。最上層是各種應(yīng)用軟件,包括通話程序,短信程序等,應(yīng)用軟件那么由各公司自行開發(fā),以Java作為編寫程序的一局部。不存在任何以往阻礙移動產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙,號稱是首個(gè)為移動終端打造的真正開放和完整的移動軟件。android分為四個(gè)層,從高層到低層分別是應(yīng)用程序?qū)印?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和linux核心層。藍(lán)色的代表java程序,黃色的代碼為運(yùn)行JAVA程序而實(shí)現(xiàn)的虛擬機(jī),綠色局部為C/C+語言編寫的程序庫,紅色的代碼內(nèi)核(linux內(nèi)核+driver)。在Ap
16、plication Framework之下,由C/C+的程序庫組成,通過JNI完成從JAVA到C的調(diào)用。圖2-1 Android架構(gòu)2.3 Eclipse的介紹eclipse-galileoEclipse 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺。就其本身而言,它只是一個(gè)框架和一組效勞,用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具Java Development Tools,JDT。 Eclipse最初是由IBM公司開發(fā)的替代商業(yè)軟件Visual Age for Java的下一代IDE開發(fā)環(huán)境,2001年11月奉獻(xiàn)給開源社
17、區(qū),現(xiàn)在它由非營利軟件供給商聯(lián)盟Eclipse基金會Eclipse Foundation管理。 2003年,Eclipse 3.0選擇OSGi效勞平臺標(biāo)準(zhǔn)為運(yùn)行時(shí)架構(gòu)。 2007年6月,穩(wěn)定版3.3發(fā)布。2021年6月發(fā)布代號為Ganymede的3.4版。2021年7月發(fā)布代號為GALILEO的3.5版。Eclipse是著名的跨平臺的自由集成開發(fā)環(huán)境IDE。最初主要用來Java語言開發(fā),但是目前亦有人通過插件使其作為其他計(jì)算機(jī)語言比方C+和Python的開發(fā)工具。Eclipse的本身只是一個(gè)框架平臺,但是眾多插件的支持使得Eclipse擁有其他功能相對固定的IDE軟件很難具有的靈活性。許多軟件
18、開發(fā)商以Eclipse為框架開發(fā)自己的IDE。Eclipse 最初由OTI和IBM兩家公司的IDE產(chǎn)品開發(fā)組創(chuàng)立,起始于1999年4月。IBM提供了最初的Eclipse代碼根底,包括Platform、JDT 和PDE。目前由IBM牽頭,圍繞著Eclipse工程已經(jīng)開展成為了一個(gè)龐大的Eclipse聯(lián)盟,有150多家軟件公司參與到Eclipse工程中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一個(gè)開發(fā)源碼工程,它其實(shí)是 Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由
19、于其開放源碼,任何人都可以免費(fèi)得到,并可以在此根底上開發(fā)各自的插件,因此越來越受人們關(guān)注。近期還有包括Oracle在內(nèi)的許多大公司也紛紛參加了該工程,并宣稱Eclipse將來能成為可進(jìn)行任何語言開發(fā)的IDE集大成者,使用者只需下載各種語言的插件即可。2.4 SQLite的介紹SQLite,是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個(gè)相對小的C庫中。它是D.RichardHipp建立的公有領(lǐng)域工程。它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Uni
20、x等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語言相結(jié)合,比方 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源的世界著名數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite第一個(gè)Alpha版本誕生于2000年5月。 至2021年已經(jīng)有15個(gè)年頭,SQLite也迎來了一個(gè)版本 SQLite 3已經(jīng)發(fā)布。3系統(tǒng)需求分析3.1需求分析生活中記錄日常花銷、收入總是瑣碎累心的。特別是紙質(zhì)記錄,除了攜帶不方便外,還很容易喪失損毀。這個(gè)時(shí)候,假設(shè)是我們身邊常帶的 上有這么一款可以隨時(shí)記錄收入和支出的軟件,因?yàn)樵谟涗浭罩У耐瑫r(shí),會有一些考前須知需要標(biāo)注,比
21、方欠錢還錢考前須知。在對各項(xiàng)數(shù)據(jù)進(jìn)行記錄后,用戶會希望看到對各類數(shù)據(jù)的統(tǒng)計(jì),所以需要滿足根本需求的統(tǒng)計(jì)模塊。為了保證數(shù)據(jù)平安,增設(shè)賬戶模塊。為了區(qū)分各用戶的操作習(xí)慣,所以增設(shè)收入支出類型管理模塊和系統(tǒng)設(shè)置模塊。3.2 可行性分析3.2.1 系統(tǒng)可行性可行性分析實(shí)在目前市場己有的類似系統(tǒng)調(diào)查的根底上,辯證新系統(tǒng)的研發(fā)是否具備開發(fā)必要性和可能性,對新系統(tǒng)的研發(fā)從技術(shù)、經(jīng)濟(jì)、社會因素等多個(gè)方面進(jìn)行相關(guān)的分析和研究,以防止造成不必要的投資失誤,保證和提高新系統(tǒng)開發(fā)成功的把握??尚行匝芯康哪康木褪且宰钚〉臅r(shí)間、金錢代價(jià)確定疑難問題是否能夠妥善解決。3.2.2 技術(shù)可行性此系統(tǒng)需要在Android 操作系
22、統(tǒng)上運(yùn)行,用Eclipse進(jìn)行開發(fā),數(shù)據(jù)庫我選用輕量級的SqLite。開發(fā)所需的軟件技術(shù)成熟穩(wěn)定,且支持Android系統(tǒng)的 也分布廣泛,可以完全滿足所以的開發(fā)需求。至于自己在Android方面雖然沒有根底,鑒于之前有Java編程經(jīng)驗(yàn)且時(shí)間充裕,有足夠時(shí)間來學(xué)習(xí)空白的知識。 3.2.3 經(jīng)濟(jì)可行性從市場經(jīng)濟(jì)來看,近年來,國人生活品質(zhì)提升,逐漸重視生活品質(zhì), 應(yīng)用便成了人們生活的一局部。當(dāng)今社會己步入了一個(gè)全新的信息時(shí)代,人類的每個(gè)活動都和“信息緊密的聯(lián)系在一起,小至個(gè)人的衣食住行,大及國家大事新聞發(fā)布,都依與信息的傳播與發(fā)布,而社會中最活潑的,在市場經(jīng)濟(jì)高速開展的現(xiàn)在, 應(yīng)用普遍化,生活化,低
23、端化成了不可阻擋的趨勢。從技術(shù)經(jīng)濟(jì)來看,由于SQLite數(shù)據(jù)庫和Android SDK都是開源的免費(fèi)的開發(fā)學(xué)習(xí)工具,而且本系統(tǒng)使用靈活方便,技術(shù)也不是很復(fù)雜,開發(fā)周期較短,因此開發(fā)本錢較低。市場前景非??春茫哉f技術(shù)經(jīng)濟(jì)方面來看,本工程也是可行的。由此可以看出本系統(tǒng)開發(fā)所產(chǎn)生的效益將大于投入,所以開發(fā)本工程是可行的、必要的。 綜上所述,個(gè)人理財(cái)系統(tǒng)充分利用了軟硬件資源,技術(shù)成熟,本錢低廉,操作簡單,管理方便,使理財(cái)記賬擺脫空間的限制,實(shí)現(xiàn)自動化處理和信息化管理,因此,本系統(tǒng)的實(shí)施是可行的。3.3系統(tǒng)功能模塊(1) 用戶管理:可以設(shè)置當(dāng)前用戶(2) 類別維護(hù):用戶可以添加日常收入、日常支出的類
24、別,并且可以刪除相應(yīng)的類別,填寫類別詳細(xì)。(3) 日常收入:用戶可以按照日常收入日期、金額、類別、備注進(jìn)行數(shù)據(jù)的增添(4) 日常支出:用戶可以按照日常支出日期、金額、類別、備注進(jìn)行數(shù)據(jù)的增添(5) 收入支出統(tǒng)計(jì):按照一定的數(shù)據(jù)查詢條件,用戶可以對數(shù)據(jù)進(jìn)行統(tǒng)計(jì)。個(gè)人理財(cái)類別維護(hù)用戶信息收入支出查詢收入支出統(tǒng)計(jì)收入支出插入收入類別維護(hù)支出類別維護(hù)手動輸入語音輸入收入插入數(shù)據(jù)支出插入數(shù)據(jù)收入統(tǒng)計(jì)支出統(tǒng)計(jì)收入數(shù)據(jù)查詢支出數(shù)據(jù)查詢用戶信息維護(hù)圖3-1 個(gè)人理財(cái)管理系統(tǒng)功能結(jié)構(gòu)圖4系統(tǒng)總體設(shè)計(jì)4.1系統(tǒng)總體設(shè)計(jì)分析系統(tǒng)設(shè)計(jì)是系統(tǒng)開發(fā)過程中的核心,從需求出發(fā),總體上描述系統(tǒng)架構(gòu)應(yīng)該包含的組成要素。系統(tǒng)總體設(shè)
25、計(jì)盡可能模塊化,描述了各個(gè)模塊之間的關(guān)聯(lián)。模塊化是一種很重要的設(shè)計(jì)思想,把一個(gè)復(fù)雜的系統(tǒng)分解為一些規(guī)模較小、功能簡單的、更易于建立和修改的局部。一方面,各個(gè)模塊具有相對獨(dú)立性,可以分別加以設(shè)計(jì)實(shí)現(xiàn);另一方面,模塊之間的相互關(guān)系那么通過一定的方式予以說明。各模塊在這些關(guān)系的約束下共同構(gòu)成一個(gè)統(tǒng)一的整體,完成系統(tǒng)的功能。總體設(shè)計(jì)的核心內(nèi)容就是依據(jù)需求分析定義的功能,合理、有效地實(shí)現(xiàn)系統(tǒng)中定義的各種需求,包括模塊設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)等。4.2系統(tǒng)流程圖根據(jù)系統(tǒng)分析以及功能需求,系統(tǒng)的根本流程可以描述為:主界面選擇各子功能模塊,如下列圖所示:個(gè)人理財(cái)系統(tǒng)密碼管理模塊用戶登錄模塊收/支數(shù)據(jù)查詢類別管理模塊收
26、/支記錄模塊圖4-1 系統(tǒng)流程圖4.3 系統(tǒng)特點(diǎn)1目的明確:理財(cái)就是以管錢為中心,通過抓好賺錢、生錢、護(hù)錢,三個(gè)環(huán)節(jié),管好自己手中的現(xiàn)金流動,讓資產(chǎn)在保值的根底上,實(shí)現(xiàn)穩(wěn)定持續(xù)的增長。2功能齊全:系統(tǒng)覆蓋了理財(cái)所需要的功能,收支,統(tǒng)計(jì)。3適應(yīng)性強(qiáng):系統(tǒng)采用基于模型的設(shè)計(jì)思,用戶的特點(diǎn)抽象出管理模型,根據(jù)模型進(jìn)行系統(tǒng)設(shè)計(jì),使系統(tǒng)具有很好的開放性的拓展性,能夠高效率地適應(yīng)各用戶群體的需求。4.4 數(shù)據(jù)庫設(shè)計(jì)4.4.1 tb_account(賬戶表)tb_account用于管理系統(tǒng)各個(gè)用戶信息。_id為用戶的唯一標(biāo)識,為表的主鍵,也為其他表的_id相對應(yīng)。Username和pwd分別代表著用戶名和密
27、碼。這兩個(gè)是用戶后期可以修改的。賬戶表中存在著一個(gè)特殊的用戶:默認(rèn)用戶。它的用戶名密碼用戶不可見。用戶在沒有登陸的情況下,數(shù)據(jù)保存在這個(gè)用戶下方。表4-1 用戶賬戶表字段名數(shù)據(jù)類型是否主鍵描述_idIntegerY用戶idUSERNAMEVARCHAR(20)N用戶名PWDVARCHAR(50)N密碼4.4.2 tb_income收入信息表TYPE_ID與tb_itype表的type_id對應(yīng)。No為收入信息的編號,不同用戶的收入信息存入數(shù)據(jù)庫的時(shí)候,都是以no=1為起始的,進(jìn)而往后遞增。表4-2 收入信息表字段名數(shù)據(jù)類型是否主鍵描述_idINTEGERN用戶idNOINTEGERY編號MON
28、EYDECIMALN收入金額TIMEDATEN收入時(shí)間TYPE_IDINTEGERN收入類別HANDLERVARCHAR(100)N放款方MARKVARCHAR(200)N備注PHOTOVARCHAR(200)N照片KINDVARCHAR(10)N類別4.4.3 tb_pay支出信息表TYPE_ID與tb_ptype表的type_id對應(yīng)。No為收入信息的編號,不同用戶的支出信息存入數(shù)據(jù)庫的時(shí)候,都是以no=1為起始的,進(jìn)而往后遞增。表4-3 支出信息表字段名數(shù)據(jù)類型是否主鍵描述_idINTEGERN用戶idNOINTEGERY自增MONEYDECIMALN支出金額TIMEDATEN支出時(shí)間T
29、YPE_IDINTEGERN支出類別ADDRESSVARCHAR(100)N消費(fèi)地點(diǎn)MARKVARCHAR(200)N備注PHOTOVARCHAR(200)N照片KINDVARCHAR(10)N類別 tb_ptype支出類型表tb_ ptype為支出類型表。由于每個(gè)用戶都有對應(yīng)的用戶習(xí)慣,在添加支出信息時(shí),收入類型的種類、使用頻率都會有所不同。在此設(shè)計(jì)支出類型表,可以為用戶提供修改支出類型的效勞,根據(jù)自己的使用頻率修改支出類型。表4-4 支出類型表字段名數(shù)據(jù)類型是否主鍵可否為空描述_idINTEGERNN用戶idnoINTEGERYN類型編號type_idINTEGERNN類型id4.4.5
30、tb_itype收入類型表tb_itype為收入類型表。由于每個(gè)用戶都有對應(yīng)的用戶習(xí)慣,在添加收入信息時(shí),收入類型的種類、使用頻率都會有所不同。在此設(shè)計(jì)收入類型表,可以為用戶提供修改收入類型的效勞,根據(jù)自己的使用頻率修改收入類型。表4-5 收入類型表字段名數(shù)據(jù)類型是否主鍵可否為空描述_idINTEGERNN用戶idnoINTEGERYN類型編號type_idINTEGERNN類型id5系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)5.1 主界面設(shè)計(jì)快速記個(gè)人記賬軟件主界面,有4個(gè)Fragment頁面。圖5-1 為快速記主界面主界面使用4個(gè)Fragment和PopupWindow生成,局部代碼:/* * 顯示PopupWi
31、ndow彈出菜單 */private void showPopupWindow(View parent) DisplayMetrics dm = parent.getResources().getDisplayMetrics();int w_screen = dm.widthPixels;int h_screen = dm.heightPixels;/ System.out.println(你的設(shè)備w_screen: + w_screen + h_screen: +/ h_screen);if (popWindow = null) LayoutInflater layoutInflater =
32、 (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);View view = layoutInflater.inflate(R.layout.popwindow_layout, null);popWinLayout = (LinearLayout) view.findViewById(R.id.popwindow);/ 創(chuàng)立一個(gè)PopuWidow對象float radiowith = w_screen / 480.0f;float radioheight = h_screen / 800.0f;popWindow
33、 = new PopupWindow(view,(int) (popWinLayout.getLayoutParams().width), h_screen / 4);/ 使其聚集 ,要想監(jiān)聽菜單里控件的事件就必須要調(diào)用此方法popWindow.setFocusable(true);pop_voiceView = (LinearLayout) popWinLayout.findViewById(R.id.pop_voice);pop_quickView = (LinearLayout) popWinLayout.findViewById(R.id.pop_quick);pop_voiceVie
34、w.setOnClickListener(this);pop_quickView.setOnClickListener(this);/ 設(shè)置允許在外點(diǎn)擊消失popWindow.setOutsideTouchable(true);/ 設(shè)置背景,這個(gè)是為了點(diǎn)擊“返回Back也能使其消失,并且并不會影響你的背景popWindow.setBackgroundDrawable(new BitmapDrawable();/ 設(shè)置菜單顯示的位置int xPos = (w_screen - popWinLayout.getLayoutParams().width) / 2;popWindow.showAsDr
35、opDown(parent, xPos, 12);/ popWindow.showAsDropDown(parent, Gravity.CENTER, 0);/ 監(jiān)聽菜單的關(guān)閉事件popWindow.setOnDismissListener(new OnDismissListener() Overridepublic void onDismiss() / 改變顯示的按鈕圖片為正常狀態(tài)changeButtonImage(););/ 監(jiān)聽觸屏事件popWindow.setTouchInterceptor(new OnTouchListener() public boolean onTouch(Vi
36、ew view, MotionEvent event) if (event.getAction() = MotionEvent.ACTION_OUTSIDE) / 改變顯示的按鈕圖片為正常狀態(tài)changeButtonImage();return false;);/* * 點(diǎn)擊了“明細(xì)按鈕 */private void clickFriendfeedBtn() / 實(shí)例化Fragment頁面fragmentPage1 = new FragmentPage1();/ 得到Fragment事務(wù)管理器FragmentTransaction fragmentTransaction = this.getS
37、upportFragmentManager().beginTransaction();/ 替換當(dāng)前的頁面fragmentTransaction.replace(R.id.frame_content, fragmentPage1);/ 事務(wù)管理提交fragmentTransaction mit();friendfeedFl.setSelected(true);friendfeedIv.setSelected(true);myfeedFl.setSelected(false);myfeedIv.setSelected(false);homeFl.setSelected(false);homeIv.
38、setSelected(false);moreFl.setSelected(false);moreIv.setSelected(false);此處省略類似的函數(shù).private void clickPop_voiceBtn() Intent intent = new Intent(MainActivity.this, AddPay.class);/ 創(chuàng)立Intent對象intent.putExtra(cwp.id, userid);intent.putExtra(cwp.voice, );/ 設(shè)置傳遞數(shù)據(jù)startActivity(intent);private void clickPop_q
39、uickBtn() Intent intent = new Intent(MainActivity.this, AddPay.class);/ 創(chuàng)立Intent對象intent.putExtra(cwp.id, userid);startActivity(intent);/* * 點(diǎn)擊了中間按鈕 */private void clickToggleBtn() showPopupWindow(plusImageView);/ 改變按鈕顯示的圖片為按下時(shí)的狀態(tài)plusImageView.setImageResource(R.drawable.toolbar_plusback);toggleImag
40、eView.setImageResource(R.drawable.toolbar_btn_pressed);/* * 改變顯示的按鈕圖片為正常狀態(tài) */private void changeButtonImage() plusImageView.setImageResource(R.drawable.toolbar_plus);toggleImageView.setImageResource(R.drawable.toolbar_btn_normal);5.2 收入/支出插入數(shù)據(jù)界面添加軟鍵盤,來添加收入/支出消費(fèi)記錄圖5-2 收入/支出插入數(shù)據(jù)界面添加收/支局部代碼,需要判斷是添加模式還是
41、修改模式,是添加收入還是添加支出:btnSaveButton.setOnClickListener(new OnClickListener() / 為保存按鈕設(shè)置監(jiān)聽事件SuppressLint(NewApi)Overridepublic void onClick(View arg0) if (typemode = add) / 添加模式String strMoney = txtMoney.getText().toString();/ 獲取金額文本框的值if (type = pay) / 支出if (!strMoney.isEmpty() / 判斷金額不為空/ 創(chuàng)立InaccountDAO對象
42、PayDAO payDAO = new PayDAO(AddPay.this);/ 創(chuàng)立Tb_inaccount對象Tb_pay tb_pay = new Tb_pay(userid,payDAO.getMaxNo(userid) + 1,get2Double(strMoney),setTimeFormat(null),(spType.getSelectedItemPosition() + 1),txtAddress.getText().toString(),txtMark.getText().toString();payDAO.add(tb_pay);/ 添加收入信息Toast.makeTe
43、xt(AddPay.this,新增收入數(shù)據(jù)添加成功!, Toast.LENGTH_SHORT).show();gotoback(); else Toast.makeText(AddPay.this, 請輸入收入金額!,Toast.LENGTH_SHORT).show(); else / 收入if (!strMoney.isEmpty() / 判斷金額不為空/ 創(chuàng)立InaccountDAO對象IncomeDAO incomeDAO = new IncomeDAO(AddPay.this);/ 創(chuàng)立Tb_inaccount對象Tb_income tb_income = new Tb_income(
44、userid,incomeDAO.getMaxNo(userid) + 1,get2Double(strMoney),setTimeFormat(null),(spType.getSelectedItemPosition() + 1),txtInhandler.getText().toString(),txtMark.getText().toString();System.out.println(money+ get2Double(strMoney);incomeDAO.add(tb_income);/ 添加收入信息/ 彈出信息提示Toast.makeText(AddPay.this,新增收入
45、數(shù)據(jù)添加成功!, Toast.LENGTH_SHORT).show();gotoback(); else Toast.makeText(AddPay.this, 請輸入收入金額!,Toast.LENGTH_SHORT).show(); else / 修改模式if (type = pay) / 支出if (!txtMoney.getText().toString().isEmpty() / 判斷金額不為空Tb_pay tb_pay = new Tb_pay(); / 創(chuàng)立Tb_pay對象tb_pay.set_id(userid); / 設(shè)置useridtb_pay.setNo(Integer.p
46、arseInt(strno); / 設(shè)置編號tb_pay.setMoney(get2Double(txtMoney.getText().toString();/ 設(shè)置金額tb_pay.setTime(setTimeFormat(txtTime.getText().toString();/ 設(shè)置時(shí)間tb_pay.setType(spType.getSelectedItemPosition() + 1);/ 設(shè)置類別tb_pay.setAddress(txtAddress.getText().toString();/ 設(shè)置地點(diǎn)tb_pay.setMark(txtMark.getText().toS
47、tring();/ 設(shè)置備注payDAO.update(tb_pay);/ 更新支出信息Toast.makeText(AddPay.this, 數(shù)據(jù)修改成功!,Toast.LENGTH_SHORT).show();gotoback(); else Toast.makeText(AddPay.this, 請輸入收入金額!,Toast.LENGTH_SHORT).show(); else / 收入if (!txtMoney.getText().toString().isEmpty() / 判斷金額不為空Tb_income tb_income = new Tb_income();/ 創(chuàng)立Tb_inc
48、ome對象tb_income.set_id(userid);/ 設(shè)置編號tb_income.setNo(Integer.parseInt(strno);/ 設(shè)置編號tb_income.setMoney(get2Double(txtMoney.getText().toString();/ 設(shè)置金額tb_income.setTime(setTimeFormat(txtTime.getText().toString();/ 設(shè)置時(shí)間tb_income.setType(spType.getSelectedItemPosition() + 1);/ 設(shè)置類別tb_income.setHandler(tx
49、tInhandler.getText().toString();/ 設(shè)置付款方tb_income.setMark(txtMark.getText().toString();/ 設(shè)置備注incomeDAO.update(tb_income);/ 更新收入信息Toast.makeText(AddPay.this, 數(shù)據(jù)修改成功!,Toast.LENGTH_SHORT).show();gotoback(); else Toast.makeText(AddPay.this, 請輸入收入金額!,Toast.LENGTH_SHORT).show(););軟鍵盤局部代碼:public void onKey(int primaryCode, int keyCodes) Editable editable = ed.getText();if (typemode.equals(ModifyInP) /
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度網(wǎng)絡(luò)安全服務(wù)協(xié)議書
- 2024年度版權(quán)使用與授權(quán)合同
- 2024供水、供電合同范文
- 2024年建筑工程股權(quán)轉(zhuǎn)讓合同樣本
- 2024城市軌道交通安檢設(shè)備采購合同
- 文書模板-產(chǎn)品委外開發(fā)合作協(xié)議書
- 產(chǎn)業(yè)新城課件教學(xué)課件
- 2024年度企業(yè)品牌形象設(shè)計(jì)及VI手冊整編合同
- 2024年度版權(quán)購買與授權(quán)合同具體內(nèi)容
- 2024年廢物回收居間買賣合同
- GB/T 12976.2-2008額定電壓35 kV(Um=40.5 kV)及以下紙絕緣電力電纜及其附件第2部分:額定電壓35 kV電纜一般規(guī)定和結(jié)構(gòu)要求
- 你來比劃我來猜大全非常大配圖版
- 定崗定編基本原理與操作方法課件
- 斜坡地貌課件
- 端正學(xué)習(xí)態(tài)度 課件 心理健康-通用版
- 無形資產(chǎn)評估概述與評估方法概述課件
- 幼兒園《3-6歲兒童學(xué)習(xí)與發(fā)展指南》培訓(xùn)課件
- 英語板書設(shè)計(jì)(課件)
- 五年級家長會班主任ppt
- 【教學(xué)課件】正確行使訴訟權(quán)利-示范課件
- 幼兒園中班語言:《誰的尾巴》 課件
評論
0/150
提交評論