《基于Android的记账本App的设计与实现》8900字(论文)_第1页
《基于Android的记账本App的设计与实现》8900字(论文)_第2页
《基于Android的记账本App的设计与实现》8900字(论文)_第3页
《基于Android的记账本App的设计与实现》8900字(论文)_第4页
《基于Android的记账本App的设计与实现》8900字(论文)_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Android的记账本App的设计与实现目录TOC\o"1-2"\h\u18825基于Android的记账本App的设计与实现 1155411绪论 266341.1选题背景和意义 249111.2研究的内容和方法 358621.3相关技术介绍 457872记账App需求分析 5109122.1必要性分析 5230602.2可行性分析 6231382.3软件功能需求分析 6312153记账本APP应用整体功能和数据表设计 752673.1记账本中的引导界面设计 822283.2用户登陆注册功能设计 841813.3收入支出类别显示功能设计 9319573.4收入记账功能设计 9242903.5支出记账功能设计 9279043.6数据统计查询功能设计 9258603.7辅助功能设计 962223.8记账本APP的数据库设计 10258854记账本APP功能实现 11247304.1记账本中的引导界面 11180704.2用户登陆注册功能 11206664.3收入支出类别显示功能 14280854.4收入记账功能 15218874.5支出记账功能 16202594.6数据统计查询功能 17183324.7辅助功能 1912005记账本APP系统测试 2156095.1测试环境 2153915.2登陆测试 2168145.3注册测试 21283215.4收支管理测试 22152205.5统计查询测试 22219106总结与展望 23132696.1总结 23183926.2未来展望 23摘要:为了满足用户对生活中各项收入支出进行记录和汇总的基本需求,本文采用基本界面组件、SharedPreference、SQLite数据库技术设计并实现了一款基于Android系统的记账管理APP。该应用具有基本的登录和注册、收支数据管理、数据统计和基本系统设置等功能,能够让用户实时、便捷、个性化地管理自己的生活收支。文中对该应用的需求、设计和各项功能实现过程进行了详细的介绍和分析。经过初步在样机上运行测试,该应用能够在测试机上正常安装和运行,各项功能的运行效果达到了预期效果,能够较好满足用户的各项需求。关键词:记账AndroidSQLite数据库1绪论1.1选题背景和意义1.1.1选题背景自古以来,货币始终都作为众多发展体系的核心运营介质存在,对其收入和支出的管理也已经成为必然的需求REF_Ref25492\r\h[1]。特别是在这个互联网和物联网快速发展的时代,生活在成熟经济体系中的人们需要对自己的资产进行管理。随着互联网进一步的普及,新颖的互联网便携式终端也随着互联网时代的不断更新,进一步更加贴近人类的生活当中REF_Ref25580\r\h[2]。人们的收入方式随着各种新的收入和消费模式的不断涌现,也从以前的单一模式改变为当前的多元模式,这也使得人们对日常收入和消费的核算也开始变得复杂。高水平的合理支出需要健全的财务管理,而多种多样的支付方式使得消费更容易,资产管理更困难。人们的财务意识比以前更强,为了更容易随时掌握各种收入和支出信息以及自己的资金情况,有必要开发一个能够帮助用户进行收支管理的记账本APP。由于手机的便利性,研究一款基于安卓的记账本APP对于用户管理日常收支来说是非常便利的,它可以帮助人们合理地计划他们的钱并改善他们的生活质量。1.1.2选题意义如今,经济活动时时刻刻在发生,无论是在商场购买物品,还是买票,买房,买车,人们的日常生活都伴随着金钱的流动。随着这种流动,人们对记账的需求也在增加,人们需要一种更方便、更有效的记账方式REF_Ref26247\r\h[3]。在互联网普及之前,许多人使用传统的记账方法,他们随身携带账本和笔,这种记账方法在很长一段时间内为人们提供了便利。然而,当账本达到一定厚度,分录数量逐渐增加时,账目的统计分析变得非常费时费力,而且更容易发生错误REF_Ref26325\r\h[4]。随着科学技术的不断发展,计算机应用在人们生活的各个方面,许多人选择放弃传统的记账方法,用计算机来记账,通常使用Excel电子表格和专门用来记账的软件,这样可以解决传统记账模式在统计方面的缺陷,大大提高了对账目的统计分析能力。但是利用计算机记账也存其自身的缺陷,因为记账通常只记录在固定的计算机中,记账行为不是即时的,而且只靠记忆记账很容易出现记忆错误和遗漏。目前,移动互联网发展迅速,移动设备的门槛越来越低,几乎每个人都有手机,从年轻人到老年人,他们都无法离开手机,这样便体现出了手机记账的优势,可以让人们的记账效率有一个极大的提高。所以,开设计和开发一款基于Android的记账本APP是十分有意义的,它可以让用户在使用手机的前提下,在任何时间和地点记录经济活动的发生并快速统计其收入和支出,从而使用户的记账工作更加方便快捷。。1.2研究的内容和方法1.2.1研究内容本文的研究内容主要分为以下四部分:(1)介绍了选题的背景、意义、研究内容及使用的的研究方法,系统开发的关键技术等。(2)基于Android的个人记账本APP的需求分析,其中包括必要性分析、可行性分析和功能需求分析。(3)基于Android的个人记账本APP的设计,主要包括APP整体设计、数据库数据表设计、各个模块的功能的设计。(4)基于Android的个人记账本APP的实现,通过对用户登陆、用户注册、统计管理、收支管理、和类别管理等各个功能模块的实现对记账APP的开发。最后对系统进行测试。1.2.2研究方法为了让该研究的理论和实际联系更加密切,更好的设计出一款实用便捷的记账本APP,在研究的第一阶段,我阅读了一些相关的参考资料,下载了多个现有的记账软件,在了解当今学术研究现状的基础之上,根据一些手机APP的使用情况,扬长避短,设计出能让用户使用更加便捷高效的记账本APP。在前期的资料收集阶段,我主要采用了文献检索的方法,用“记账”、“账本”、“APP”、“应用开发”等关键词在互联网进行搜索,选择与本项目相关的学术文献。为了更好地学习相关知识,我对这些文献进行了阅读和分类,以获得有关记账软件设计的信息,同时阅读了相关的博客以及其他学术性网站以获取相关知识从而对本文要研究的问题有了深入了解。在设计阶段,根据对多个记账或收支管理软件的实际使用体验,了解用户的记账需求,将理论与实践结合,确定实际设计中的关注点,使理论的研究能够应用于实践。1.3相关技术介绍随着Android移动应用的快速发展,人们的日常生活已经与移动应用密不可分REF_Ref25669\r\h[4]。本APP是一个基于Android的个人记账APP,该APP让用户可以实时记录他们的个人的收入和支出,实时管理他们的个人账单,并对用户的收支数据进行统计管理,以便用户可以实时了解自己的收支情况,避免生活中的盲目消费。该系统主要采用了以下关键技术:1.3.1开发语言JAVAAndroid平台所使用的开发语言是Java,大多数的网络应用程序需要使用到Java,同时Java已经成为开发嵌入式和移动应用程序、基于Web的内容和企业软件的全球标准REF_Ref25757\r\h[5]。Java的工作方式是将代码转换为二进制字节,并通过JVM执行,这使得语言的跨平台开发成为可能REF_Ref25881\r\h[6]。通过隐藏平台之间的底层硬件差异,而不强迫开发者编写不同的代码来适应底层硬件,这使得安卓可以在任何其他类型的硬件上运行,正因如此,Java才被不同操作系统的移动应用开发者广泛使用。1.3.2AndroidStudioAndroidStudio和Eclipse同属于Android开发软件,但AndroidStudio相对Eclipse而言具有创建程序界面更加方便、有更详细的打印信息、有更详细的历史编辑记录、资源文件可以在代码中预览等特点。并且在进行开发时,资源文件中的内容可以在代码中实时显示除布局文件、图像文件外的colors.xml文件中定义的颜色。本项目就是基于AndroidstudioIDE开发的。1.3.3SQLite数据库SQLite由SQL编译器、内核、后端以及附件组成,是一个开源的嵌入式数据库引擎,由D.RichardHipp用C语言编写。SQLite数据库具有可移植性好、轻量级等特点,当人们对各种数据进行增删改等操作的时候,SQLite可以对数据自动进行数据属性匹配并进行相应的判断以及实现对判断结果的操作REF_Ref25972\r\h[7]。正是因为它具有如此多优点,所以本次记账本APP的设计就选择用SQlite来进行数据管理。2记账App需求分析2.1必要性分析记账的形式有很多种,有的人现在还是会随身带着笔记本和笔以便于随时随地记账,虽然说这种利用纸笔记账的方法能够第一时间记录消费发生的情况,但是想要完善还需要在后期做大量的人工工作来统计数据,更不用说将数据报表输出了;而有的人选择的记账方式是通过电脑软件来记账,带有强大的数据分析和报表输出功能是这种方法最大的优点,但是麻烦是使用者需要随身携带电脑,就算是笔记本电脑一直随身携带也是很不方便的,而且这种方法几乎不可能在第一时间对消费进行记录。种种方式,要么没有分析功能,要么记账方式在时间和空间上受到限制,这往往阻碍了持续记账习惯的养成,更不用说进行个人财务规划。因此,综上所述十分有必要设计并开发一个具有数据统计和报表分析功能的同时又便捷小巧的移动记账软件。2.2可行性分析2.2.1经济可行性传统的手工记账当然有其优势,但其劣势也很明显。虽然账本和笔不是很贵,但它们的丢失或意外毁坏可能是不可逆转的,而且建立统计和转移账目可能很耗时。而手机记账更便宜,更可靠,更容易在用户的指尖上进行。与Excel表格记账或计算机上的记账软件相比,后者存在不即时等各种限制。而手机记账可以在任何时间和地点进行,当消费发生或收入入账时,可以通过手机及时记录,不需要花费太多的时间和金钱就可以轻松方便地使用。本系统的设计与实现是基于Android平台的,首先Android平台是一个完全开放源码的平台,在将开发环境搭建好后,可以使用Android提供的免费开发环境和SQLite数据库进行开发,不必考虑上述技术的额外经济成本。其次,开发时对所需硬件的要求不高,可以在一台普通配置的电脑开发Android系统,Android自带的模拟器就可以对手机应用进行调试,因此开发硬件成本极低。所以,系统在经济上是可行的。2.2.2技术可行性该系统使用Android平台开发实现,使用MVC架构,系统的整个业务应用分为数据访问层、业务逻辑层和表示层,共同实现了收支管理、数据统计查询等逻辑。对于系统的设计和实施,将需要解决的问题分为不同的功能模块,以方便编码和实施,并提高系统的可扩展性和资源分配的合理性。本系统是一个基于Android操作系统的手机应用软件,我在Java编程方面有一定的基础和经验,对Android的基础知识也有一定的了解,所以可以通过边学习边逐步完善本系统,综上所述,本系统是可以实现的。2.3软件功能需求分析通过对传统的手工记账和计算机在电子表格及记账软件中的使用的分析,分析了上述两种记账软件中收支录入的方法,发现传统记账方式具有统计分析过程复杂耗费人力、安全性低的缺点,而计算机记账操作繁琐、不及时,这款手机记账本APP的目的就是为了解决以上两种记账方式中存在的问题。在分析了现有的移动会计软件的现状后,提炼出了手机记账软件的基本功能,最终确定了这个记账本APP的功能需求。确定的功能需求如下:2.3.1系统设置用户的注册、登录收入类别管理支出类别管理2.3.2收入管理功能收入明细收入录入2.3.3支出管理功能支出明细支出录入2.3.4统计报表功能收入分类统计支出分类统计2.3.5辅助功能帮助分享、导出3记账本APP应用整体功能和数据表设计通过前一章的需求分析,将系统划分成收入管理模块、支出管理模块、统计报表模块、系统设置模块、辅助功能模块这五个模块。软件整体架构如图所示:记账本主要功能记账本主要功能收入管理统计报表系统设置辅助功能支出管理收入明细收入录入支出明细支出录入收入分类统计支出分类统计收入类别管理支出类别管理注册登陆帮助分享导出图4.1基于Android的记账APP的总体功能图3.1记账本中的引导界面设计用户第一次安装使用该应用时,会出现引导页。关闭后台、清除用户数据或者卸载重新安装应用后,再次打开也会出现引导页。点击引导页下方的“进入应用”按钮就可以进入应用,出现用户登陆注册页面。3.2用户登陆注册功能设计用户登录:进入应用后,显示的是登陆页面,已经注册过账号的用户输入用户昵称和密码,用户昵称和密码验证通过后,即进入记账本主页面。如果用户忘记密码,可点击“忘记密码”按钮,页面中就会弹出注册用户时设置的密码提示。用户注册:进入应用后要求输入用户昵称密码登录,如果是第一次使用记账本的用户,需要点击页面中“注册用户”按钮进行用户注册。点击“注册用户”后进入注册页面,输入昵称、密码、确认密码和密码提示,然后点击“注册”即完成注册。3.3收入支出类别显示功能设计用户在进行记账时,可选择收入和支出的分类,比如收入分类可选择“工资”选项、支出分类可选择“食物”选项。这些收入和支出的分类,可以在导航栏中的设置中去添加。3.4收入记账功能设计(1)添加一笔收入:在记账界面,用户选择收入记账.然后选择收入的具体类别,例如,收入类别可以是工资或者兼职。然后用户需要填写如金额和备注信息等具体信息,添加成功后,将数据发送到数据库。(2)删除收入记录:用户选择需要删除的收入记录长按,跳出询问:“您确认要删除选中项?”,选择“确认”,即可删除该收入记录。3.5支出记账功能设计(1)添加一笔支出:在记账界面,用户选择支出记账.然后选择支出的具体类别,例如,支出类别可以是图书、食物或者房租。然后用户需要填写如金额和备注信息等具体信息,添加成功后,将数据发送到数据库。(2)删除支出记录:用户选择需要删除的支出记录长按,跳出询问:“您确认要删除选中项?”,选择“确认”,即可删除该支出记录。3.6数据统计查询功能设计数据统计:数据统计模块主要是根据历史支出账目数据,按照不同分类生成饼状图,使用户对自己的支出数据一目了然。数据查询:数据查询模块主要功能是:用户可以查询想要查询的时间段内的收支明细。该功能设置在导航栏中的“报告”选项中,点击报告输入起始日期,选择收入或支出选项,点击查询按钮即可获得收支明细。3.7辅助功能设计(1)分享:点击导航栏中的“分享”按钮即可将收支数据分享,例如选择“复制到粘贴板”即可导出“您的收入汇总为:5000.000000;您的支出汇总为:2110.00000。”的信息。(2)帮助:点击导航栏中的“帮助”按钮,就会出现帮助页面,可以选择快速入门或使用指南选项,便于刚开始使用该记账本App的用户尽快熟悉使用功能。3.8记账本APP的数据库设计通过数据库可以使用户更加方便管理自己的信息,所以数据库是每个系统不可缺少的部分。本APP数据库中包含账户表、收入信息表和支出信息表。用户的基本信息储存在账户表中,包括昵称和密码。用户的收入信息存储在收入信息表中,收入表包括了收入类别、收入金额、收入日期和备注。用户的支出信息储存在支出信息表中,支出表包括了支出类别、支出金额、支出日期和备注。应用中的数据表详细设计如下:表3-1账户表字段名称数据类型主键外键描述idintegerYN用户idnamevarchar(20)NN昵称passwordvarchar(20)NN密码表3-2收入信息表字段名称数据类型主键外键描述idintegerNY用户idcategorytextNN收入类别moneydoubleNN收入金额remarktextNN备注datetextNN日期时间表3-3支出信息表字段名称数据类型主键外键描述idintegerNY用户idcategorytextNN支出类别moneydoubleNN支出金额remarktextNN备注datetextNN日期时间4记账本APP功能实现4.1记账本中的引导界面图4.1APP引导页面图如图4.1所示,打开软件首先会出现引导页,点击“进入应用”按钮即可进入应用。4.2用户登陆注册功能4.2.1登陆功能的实现进入应用首先显示的是登陆页面,输入用户昵称和密码即可登录,如果输入错误或不输入密码就会提示“密码错误”,若点击“忘记密码”,即出现密码提示,该提示是用户注册时设置的。具体实现:使用属性onClick在布局文件中指定一个处理方法,其次使用OnClickListener监听器来实现。具体实现效果如图4.2、图4.3和图4.4所示。图4.2用户登录页面图图4.3密码错误提示图图4.4忘记密码提示图4.2.2注册功能的实现首次使用记账本APP的用户,进入登陆页面后,可以点击“注册用户”进入注册,然后输入昵称、密码、确认密码和密码提示后,即可注册成功。若昵称和密码处没有填写,点击注册后会提示“昵称不能为空”和“密码不能为空”,如果确认密码处填入信息与密码处不一致则会提示“两次密码不相同”。主要代码如下:

SharedPreferencessp=this.getSharedPreferences("tinyaccount",MODE_PRI);

SharedPreferences.Editoreditor=sp.edit();

editor.putString("name",name);

editor.putString("password",pwd);

editor.putString("prompt",prompt);

editor.apply();

具体实现效果如图4.5、图4.6图4.7所示。图4.5用户注册页面图图4.6注册密码为空时提示图图4.7注册确认密码与密码不一致时提示图4.3收入支出类别显示功能在导航栏的设置中显示的是记账本的收入类别和支出类别,方便再记账式进行类别的选择,更加清楚明了地进行记账。用Gridview组件和SimpleAdapter来实现该功能。主要代码如下:

List<AccountCategory>outlayCategoryList=dbManager.getOutlayType();

List<Map<String,Object>>outlayList=newArrayList<>();

for(AccountCategoryc:outlayCategoryList){

Map<String,Object>Mymap=newHashMap<String,Object>();

Mymap.put("icon",c.getIcon());

Mymap.put("title",c.getCategory());

outlayList.add(Mymap);

}

adapter2=newSimpleAdapter(this,视图资源ID,mFrom,mTo);

gridView2.setAdapter(adapter2);

具体实现效果如图4.8所示。同时收入类别和支出类别也可以进行添加。具体实现:实现首先在AccountDao中添加一个增加收入类别的addIncomeCategory方法,在SettingActivity的refreshData方法中,通过AccountApplication获得AccountDao,在initView()方法中获取增加收入类别按钮控件,调用自定义添加收入类别的buttonAddIncomeCategoryOnClick方法,最后对对话框内容和类别进行设置。具体实现效果如图4.9所示。图4.8记账类别分类页面图图4.9添加记账类别页面图4.4收入记账功能点击“收入”进入收入记账页面,用户可以在该页面点击右上角“加号”添加收入,长按删除收入,该页面是应用ListView实现的。实现效果如图4.10所示。图4.10收入记账页面图图4.11增加收入页面图点击“加号”即出现如图4.11所示页面,这一功能时使用Intent对象实现的页面传值跳转。选择好收入类别填入金额,点击“确定”即可添加收入。具体实现:首先布局显示界面,然后通过获取数据、创建适配器、GridView绑定适配器来实现GridView的数据显示。使用position参数获得点击位置的内容,给GridView注册单机监听器,重写监听器的onItemClick方法。实现了在gridView中点击数据,将数据添加到文本视图的功能。对于用户想要删除的数据,长按想要删除的收入明细,即出现如图4.12所示页面,点击“确认”后,通过对数据库的访问,即可删除该条数据。图4.12确认删除收入页面图4.5支出记账功能点击“支出”进入支出记账页面,用户可以在该页面点击右上角“加号”添加收入,长按删除支出,该页面与收入页面一样是应用ListView实现的。实现效果如图4.13所示。图4.13支出记账页面图图4.14增加支出页面图在该页面点击“加号”即可添加支出,长按即可删除。实现方法同收入记账功能实现方法相同,实现效果如图4.14和图4.15所示。 图4.15确认删除支出页面图4.6数据统计查询功能在概要页面中显示的是当月各种消费分类的汇总数据,由饼图的形式展示出来,不同的支出类型以不同的颜色进行标识。具体实现:使用MPAndroidChart第三方库实现记账本中指出的饼图显示效果,将MPAndroidChart-v2.2.2jar包放入libs目录下。第一步进行布局,在代码中通过添加的id获取饼图控件。第二部设置三个方面的数据:饼图上数据的分类即xValues、每种分类所对应的数值即yValues和每种分类的颜色显示即colors。第三步设置饼图的一些基本属性。最后再为图标添加图例和各种动画效果。主要代码如下:

AccountDaodbManager=app.getDatabaseManager();

TextViewtextViewSummary;

doublesummary=dbManager.getIncomeSummary(app.currentDateMonth)-

dbManager.getOutlaySummary(app.currentDateMonth);

textViewSummary.setText(String.valueOf(summary));

ChartManagerchartManager=newChartManager(this.getActivity());

PieChartpieChart=(PieChart)rootView.findViewById(R.id.pie_chart);

chartManager.showPieChart_Account(pieChart,app.currentDateMonth);实现效果如图4.16所示。图4.16APP数据统计页面图APP的收入支出页面显示的是当前月份的数据,用户要想查看历史数据就需要通过查询统计功能界面来看,查询统计功能可以提供某一时间段内的收入和支出明细,用户可以查询任意时间段的数据。具体实现:该界面分为上方的图标区、中间输入区和下方的显示数据的listview。页面完成后通过从界面上获取用户输入的日期数据,然后创建数据访问对象来查询数据,最后创建适配器设置到Listview组件上这几个步骤来实现数据的查询。实现效果如图4.17、图4.18所示。图4.17收入明细查询页面图图4.18支出明细查询页面图4.7辅助功能在记账本中,用户可以点击“分享”按钮,可以将当月的收入和支出汇总信息发送给朋友,可以选择短信等应用进行分享。具体实现:首先使用AccountDao中的统计汇总方法生成要分享的文字信息,信息内容设计为“您的收入汇总为xxx,您的支出汇总为xxx”。分享功能通过Intent隐式意图来实现,需要创建一个Intent。ACTION_SEND,通过setType方法指定分享的类型为文本,最后调用startActivity,系统会弹出处理send的应用列表,让用户选择分享的目标应用,选择后即可分享。实现效果如图4.19所示。图4.19记账分享页面图5记账本APP系统测试5.1测试环境本手机APP通过在AndroidStudio模拟器上对各种功能进行测试,所使用的API为28,CPU为x865.2登陆测试该部分主要测试用户名密码是否能配对。在登陆页面,输入用户昵称和密码,验证通过后,进入记账本主页面。用户名和密码有一项为空或输入错误,出现系统提示“用户名或密码错误”。表5-1用户登录模块测试用例编号功能测试用例预期结果测试结果1用户登录用户名:Dear密码:123正确进入系统内部正确2用户登录用户名:Dear密码1003系统提示“用户名或密码错误”正确3用户登录用户名:dear密码:123系统提示“用户名或密码错误”正确4用户登录用户名:“空”密码:123系统提示“用户名或密码错误”正确5用户登录用户名:Dear密码:“空”系统提示“用户名或密码错误”正确5.3注册测试在登陆页面点击“注册用户”进入注册页面,输入昵称、密码、确认密码和密码提示,点击“注册”,注册成功。如果昵称和密码处没有填写,系统提示“昵称不能为空”和“密码不能为空”;如果确认密码处填入信息与密码处不一致,系统提示“两次密码不相同”。表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论