1、记账本的设计课题名称基于Android记账本的设计院 系计算机与软件学院专 业移动互联网技术(Android技术)班 级学 号学生姓名指导教师: 2016 年 05 月 日计算机与软件学院毕业设计(论文)诚信承诺 我谨在此承诺:本人所写的毕业论文基于Android的Time记账本的设计,系本人独立完成,没有抄袭行为,凡涉与其他作者的观点和材料,均作了注释与说明,若有不实,后果由本人承担。承诺人(签名): 2016年 05 月 18 日摘 要在后PC时代的今天,手机已经普与到人手一台以上,智能手机成为最重要的移动终端,其两大主流是Google Android系统与其IOS系统。特别是Androi
2、d平台,其具有开放的、配置优、性价比高等特点,显然越来越多的软件使用Android技术开发。然而在基于Android技术开发的软件中,却没有一款能够满足用户对收支图形化显示的记账软件。为了解决用户需求的问题,本毕业设计基于Android技术设计并实现了Time记账本管理软件的开发。该记账软件以Android Studio作为开发平台,使用AChartEngine制作图表,调用本地SQLite数据库保存本地信息,同时利用LeanCloud云端数据来管理用户账户,实现了对账本(Bill)数据的增删改查和用户资产的增删改查。 本记账软件包括以下几个模块:用户密码登陆,收支数据的录入、个人明细与汇总统
3、计,数据云端备份。本设计着重实现记账功能和资产管理功能。关键词:记账软件;Android Studio;数据库;AbstractIn the PC era today, mobile phones have spread to more than a hand, smart phones become the most important mobile terminal, its two big mainstream is Google Android and IOS system. The Android platform, in particular, it has open, confi
4、guration and high cost performance characteristics, more and more obviously using Android software technology development. In the development of software based on Android technology, however, have no a graphical display can satisfy the users payments billing software. In order to solve the problem o
5、f user demand, this graduation design is based on the Android technology is designed and implemented the Time for the development of the management software of charge to an account.The accounting software for Android Studio as a development platform, using AChartEngine charts, call a local SQLite da
6、tabase to store the local information, at the same time using LeanCloud cloud data to manage user accounts, realized with books to add and delete (Bill) data and user assets to add and delete.The accounting software includes the following several modules: user password login, balance of payments dat
7、a entry, personal details and summary statistics, data cloud backup. This design focuses on accounting and asset management functions.Key words:accounting software;Android Studio;Database; 目 录1 绪论 11.1 选题背景 11.2 记账本的发展趋势 12 软件需求分析 22.1 需求分析 22.2 可行性分析 32.2.1 可行性研究前提 32.2.2 技术可行性研究 32.2.3 社会可行性研究 32.
8、2.4 时间可行性研究 32.2.5 结论 33 软件详细设计 43.1 软件功能结构图 43.2 软件业务流程 43.2.1 登录注册模块 43.2.2 资产模块 53.2.3 支出、收入相关业务流程 63.2.4 用户数据的显示图表模块 73.2.5 服务模块 73.3 软件命名规范 83.3.1 数据库命名规范 83.3.2 程序代码命名规范 93.4 数据库与数据库表设计 103.4.1 软件数据库设计 103.4.2 LeanCloud云端 账户表 103.4.3 LncomeAndExpenditure(收入/支出表) 103.4.4 Assets(资产管理表) 113.4.5 C
9、ategory(支出/收入表) 114 软件的实现与结果 124.1 项目结构MVC设计模式 124.2 软件公共类设计 134.2.1 界面设计语言Material Design 134.3 数据库设计 144.3.1 数据库的创建 144.3.2 数据库的增删改查 144.3.3 本地数据库的初始化 154.4 主窗体设计实现 164.5 收入支出版块设计实现 174.6 支出收入数据显示版块设计实现 174.7 资产管理模块的设计 184.8 数据统计版块设计实现 194.8.1 分类收入、支出统计 194.9 软件设置版块设置 204.9.1 软件设置主界面 204.9.2 服务软件子
10、模块 204.10 账户管理版块设计实现 214.10.1 用户登录/注册 214.10.2 修改用户信息 225 软件测试过程与结果 235.1 测试目的 235.2 测试平台简介 235.3 测试方法 236 开发中遇到问题与解决方法 256.1 Fragment之间的通信 256.2 fragnment 与activity通信探究 25总 结 27谢 辞 28参考文献 291 绪论1.1 选题背景一个有经济头脑的人,在日常生活和投资中,都会对自己的收入和开销做到心里有数,以便于制定出自己的一套理财计划,达到合理的经济统筹,有记账习惯的人可以从以往的统计中看到自己主要消费方向,看出自己的消
11、费是否合理。之所谓巧妇难为无米之炊,如果自己想要理财,先决条件得要有“财”才行。如何才能有财呢?开源节流呀!有计划的用钱,再将节流下来的钱去用于理财,这样不就行了吗?那又怎么样来“开源”呢?记账是个好办法,它有针对性地罗列、统计计算资源信息。从查阅资料来看,一些比较发达国家的人生活中对理财有着很严格的计划,因此国外的理财系统总体来说比较普遍,做的也比较完善。国内的理财系统主要偏重于办公财务软件,而个人理财和家庭理财方面的比较少,因此需要开发相关的系统软件,从而达到引导理性消费,合理安排收支。1.2 记账本的发展趋势记账从过去的纸质记账到网络记账,再到现在流行的手机记账,让记账成为了很好的传统习
12、惯,也变成了现代生活的一种时尚。随着年龄的增长,消费项目逐渐多起来,有时一天下来收入、支出的小项目达到几十项,攒到晚上一块儿记很容易就会落下。而且晚上经常加班到很晚,回到家打开电脑再完成记账这项任务也有些力不从心。记账从过去的纸质记账到网络记账,再到现在流行的手机记账,让记账成为了很好的传统习惯,也变成了现代生活的一种时尚。如果进行账目的整理,每天手动统计的话,用于统计的账本和记录会越来越多,不利于保管,容易造成丢失;其次,随着纪录的增多,如果要查找以前的记录,会变得越来越困难。电脑记账的话,不方便携带,要先在纸上记录然后再录入到电脑上,麻烦且浪费时间,记账又是一种需要持之以恒的耐力才能实现的
13、良好习惯,但是工作以后时间就没那么固定。因此,需要一个功能比较完善的手机记账系统来代替传统的手工和电脑统计。在手机上装上记账软件以后,等公交车或坐车的时候、甚至吃午饭、晚饭等待的时间都可以成为记账的时间。本软件详细记录用户的每次收入、支出行为,并且可以做出统计,用户可以对自己的收支情况做各种综合的查询,可以管理账目,方便对数据的管理。2 软件需求分析2.1 需求分析记账管理是一个家庭和个人不可缺少的部分,但现在人使用的小型财务系统却还是凤毛麟角。记账是很小的一个部分,但大到企业,小到家庭以与个人都有十分重要的意义。本记账系统的系统设计是基于Android语言,使用Android Studio作
14、为开发平台,实现记账系统的系统构建。而后台的数据库则使用了Sqlite+LeanCloud云端数据库管理整个记账系统的后台数据。包括以下几个模块:用户密码登陆,收支数据的录入、个人明细与汇总统计,数据云端备份等,从而对家庭、个人收入与支出进行有效、系统的管理,并使之更全面和灵活。随着支付手段与购物场景的日趋多样化,人们对于自己的开支消费未能有着很好的整体把握,而单纯的采用记事本记账,条目繁多而杂乱。用户对于收支记账有着较大的需求。而专业的记账软件,通过良好的归类和便捷的记账功能,让用户方便的记下自己的每一笔开支,并且通过图表形式,清晰的了解自己的收支情况和变化趋势。随着人们生活水平的不断提高,
15、越来越多的人开始注意到理财的重要性,在计算机网络技术高速发展的今天,原始的记账方式已经不能满足人们的需要,手机记账不仅方便快捷,而且可以实现数据的长期保存,同时还可以实现账本信息共享,并与更多的朋友分享自己的理财心得。论文首先对家庭与个人记账本系统的研究背景进行了介绍,对系统需要解决的问题进行了详细概述,讨论了课题的重要性和研究意义,并且阐述了系统的开发流程和开发过程中使用的相关技术;论文提出了系统的项目要求和项目目标,并对系统进行详细的需求调研和需求分析,主要包括系统的业务需求分析、功能需求分析、数据需求分析和非功能性需求分析,并且给出了系统主要功能的业务流程图、数据流图和功能分析图,并对数
16、据库进行描述。其次在系统设计过程中,主要对系统进行总体设计和模块设计,总体设计主要包括对系统的架构设计和功能结构设计,同时给出了系统的架构模型和总体功能结构图,主要包括会员管理、账本管理、收支分类管理、日常收支记录管理、查询和统计分析等六大功能模块,并且分别描述每个模块设计的功能结构图和处理流程图,详细阐述了系统的设计内容。论文最后对研究的课题进行了总结,阐述了本人的主要工作,指出了论文存在的不足,并对进一步的工作进行了展望。2.2 可行性分析 2.2.1 可行性研究前提1) 要求主要功能满足用户实际需求可便利地进行收入支出的增删改操作对用户数据进行正确的统计 系统操作人性化、简单易用 保证软
17、件的安全性2) 目标方便地进行收入、支出等数据进行管理整合能够多个用户一起使用,确保数据的安全性2.2.2 技术可行性研究记账本软件在目前主流的智能Android手机上运行,在Android Studio IDE开发,使用LeanCloud云端数据库+调用本地Sqlite的方式进行数据存储。2.2.3 社会可行性研究随着支付手段与购物场景的日趋多样化,人们对于自己的开支消费未能有着很好的整体把握,而单纯的采用记事本记账,条目繁多而杂乱。用户对于收支记账有着较大的需求。而专业的记账软件,通过良好的归类和便捷的记账功能,让用户方便的记下自己的每一笔开支,并且通过图表形式,清晰的了解自己的收支情况和
18、变化趋势。2.2.4 时间可行性研究现在的时间流逝的飞快,人们肯定不会为了那些让人头疼的小账目而浪费时间清理。手机记账软件是非常契合现在人的便捷记账需要。在手机上装上记账软件以后,等公交车或坐车的时候,等电梯的工夫,甚至吃午饭、晚饭等时间都成为记账的时间。让你对花销有一个完整的概念。2.2.5 结论根据以上分析,软件开发在技术上,时间成本上都在可以接受的范围,该系统具有很高的开发可行性,可以进行对该项目的开发。3 软件详细设计3.1 软件功能结构图软件主要实现记账功能和资产管理功能,辅助添加大小写计算,汇率换算,快递,彩票等功能,使用图表展示数据。为了数据保存,软件实现了云端数据库备份功能,使
19、用户在更换Android手机时保障数据的不丢失。当用在同一部手机登录不同的账号时,记账本软件会将上一次用户的数据完全清楚,以保障用户信息的安全,当用户在登录账户时会从LeanCloud云端数据库下载数据并完成初始化。具体软件功能结构图如下图3.1所示:图3.1 记账本软件功能结构图3.2 软件业务流程3.2.1 登录注册模块记账本软件在云端保存用户的信息,用户在同一部手机首次登陆记账本软件时是需要登陆,用户输入登陆信息,记账本软件将数据发送到LeanCloud云端数据库,LeanCloud云端数据库返回验证结果;当用户首次注册时,记账本软件会将注册数据发送到LeanCloud云端数据库,Lea
20、nCloud云端数据库在接受到数据后将数据保存,并返回注册结果信息,记账本软件在接收到数据后,会将数据以缓存的形式保存在本地,使用户在下一次登录时不需要再次输入登录信息。具体的用户登录流程如下图3.2所示:图3.2 登陆模块业务流程3.2.2 资产模块资产(银行卡,支付宝)管理是记账本软件首要功能之一,用户在首次安装记账本软件的时候,记账本软件,即在后台新建“支付宝”“现金”两个默认的资产账户。当用户输入资产信息(银行卡账户)是记账本软件 讲数据上传至网络并验证用户资产信息的合法性,当用户输入的资产合法是将返回资产信息(所属银行),若用户的输入不和法是则返回错误信息,1、资产(银行卡号格式错误
21、)2、不存在的银行卡账户等。资产支持注销功能,但是用户使用资产时所产生的账单信息则不会同时被删除。用户删除资产后,资产内用户数据会被清空。操作具体流程如图3.3所示:图3.3资产管理流程图3.2.3 支出、收入相关业务流程 支出,收入是记账本软件 的核心功能之一,主要用于记录用户的资产增加,减少项目的记录。用户在新增支出、收入时,会同时关联一个资产账户,会将资产账户中的资产数数值进行增加和减少。用户在新增支出,收入的时候要设置支出,收入类别,支出收入类别可以在界面菜单中增加删除。操作具体流程如图3.4所示:图3.4 收入、支出业务流程图3.2.4 用户数据的显示图表模块本系统中对输入数据的统计
22、是特色模块。数据统计模块的主要功能就是把输入的收入、支出信息经过相关计算使其以饼图的形式展现给用户,让用户能够一目了然的知道各个支出或收入的百分比具体的数据统计。操作流程如图3.5所示:图3.5 用户数据统计业务流程图3.2.5 服务模块服务模块主要有房贷计算,大小写转换,彩票,快递,汇率换算等,服务模块各个子模块数据并没有保存在数据库,也不会上传只是实现一些功能。服务模块各个子模块主要是调用相关API实现。例如大小写转换,用户输入阿拉伯数字,单击转换按钮,记账本软件即将数据加上API拼接成字符串发送至网络,再从网络接受数据处理。服务模块典型实现方案如图3.6所示: 如图3.6 服务模块典型实
23、现方案图3.3 软件命名规范3.3.1 数据库命名规范数据库以相关的英文单词缩写命名,如表3.1所示。表3.1 数据库命名数据库名称描述Jizhangben.db记账本软件数据库表命名以相应意思的英语单词,如表3.2所示。表3.2 数据库表命名数据库表名称描述tb_account账户表字段命名除用户id以_id下划线开头,其他均为相应英语单词,如表3.3所示。表3.3 数据库字段命名字段名称描述_id用户idtime时间3.3.2 程序代码命名规范数据类型命名规则。在系统中定义变量、常量时,以数据类型简写开头加上对应的英语简写,如表3.4所示。表3.4 数据类型命名规则数据类型简写整型int字
24、符串str布尔型bl单精度浮点型flt双精度浮点型dbl组件命名规则。在为组件申明id时以组件类型缩写加对应的作用英语,如表3.5所示。表3.5 组件命名规则组件简写EditTexttxtBottonbtnTextViewtvSpinnerspListViewlv3.4 数据库与数据库表设计3.4.1 软件数据库设计数据库的设计思路:1)确保数据库中的每个数据表都有明确的数据关系。2)统一数据库中的命名规则,使得有良好的交互性,使程序能够良好的运行。3)减少程序中的重复,尽可能多的通过表与表之间的关系进行联查。3.4.2 LeanCloud云端 账户表LeanCloud云端 账户表(_User
25、)用来保存用户信息。objectld为用户的唯一标识,为表的主键,也为其他表的objectld相对应。email和password分别代表着用户名和密码,是用户后期可以修改的,如表3.6所示。表3.6 用户账户表字段名数据类型是否主键(Y/N)是否外键(Y/N)描述objectldStringYN用户idemailsStringNN用户名/邮箱passwordStringNN密码3.4.3 LncomeAndExpenditure(收入/支出表)LncomeAndExpenditure收入/支出表。iae为收入/支出代码1:收入,2支出, assets为资产id,如表3.7所示。表3.7 收入
26、/支出信息表字段名数据类型是否主键(Y/N)是否外键(Y/N)描述_idIntegerNY用户idiaeIntegerYN支出/支出代码amountOfMoneyStringNN金额remarksStringNN备注categoryStringNN类别assetsStringNN资产idtimetimeNN时间3.4.4 Assets(资产管理表) 资产管理表保存资产信息,如表3.8所示。表3.8 支出信息表字段名数据类型是否主键(Y/N)是否外键(Y/N)描述_idIntegerYN用户idassetsNameStringNN资产名assetsDetailedStringNN资产详细asse
27、tsAmountOfMoneyStringNN金额3.4.5 Category(支出/收入表)Category为支出类型表。本系统在数据库中已写入部分类型,由于每个用户都有不同的支出原因,在添加支出信息时,选择支出类型也大有不同。在此设计支出类型表,可以为用户提供修改支出类型的服务,根据自己的需要修改支出类型。这里的_id和账户表的_id是对应着的,如表3.9所示。表3.9 支出类型表字段名数据类型是否主键(Y/N)可否为空(Y/N)描述_idIntegerNN用户idcategoryStringNN类型名称laeStringNN收入/支出4 软件的实现与结果4.1 项目结构MVC设计模式在编
28、写系统之前,定制好系统的系统文件夹组织结构有利于规范系统整体结构,如图4.1所示。图4.1 文件夹组织结构MVC全名是Model View Controller,是模型(model)视图(view)控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面与用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web
29、应用程序的模式:1 Model(模型)表示应用程序核心(比如数据库记录列表)。View(视图)显示数据(数据库记录)。Controller(控制器)处理输入(写入数据库记录)。MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。 通常模型对象负责在数据库中存取数据。View(视图)是应用程序中处理数据显示的部分。 通常视图是依据模型数据创建的。Controller(控制器)是应用程序中处理用户交互的部分。 通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。4.2 软件公共类设计软件公共类的设
30、计是为了使程序更加的结构化,使代码的重复降低。本软件中设计了数据模型公共类和对数据库进行增删改查的API接口和继承制API接口的lmpi公共类。每一个数据模型类都封装成一个接口供API接口和继承制API接口的lmpi公共类中的数据存放和取出数据来实现API接口和继承制API接口的lmpi公共类中对数据库信息的操作。其中包括资产管理、收入/支出管理等,以下是以资产管理为例的类图如图4.2所示。4.2资产管理的类图4.2.1 界面设计语言Material Design设计风格采用谷歌全新推出的设计语言Material Design,Material Design 和苹果以前的拟物设计并不尽相同。拟物设计是尽力利用美工和交互在设计上模拟实物。而 Material Design 则更为抽象,它不关心实物是什么,只关心它的质感,层次,深度,和其他物体的叠放逻辑。从某种程度上来说,Material Design 更像是把交互界面变成了一张张的纸。因此,Material Design 更像是拟物设计和扁平设计的结
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1