基于Android的家庭理财通系统开发制作成员:陈恒志、闫金科、黄立洋、张梦飞班级:14级物联网工程时间:2016年6月20日~26日指导老师:陶少华1目录1系统分析与设计.........................................31.1可行性分析.........................................31.2用户功能需求分析...................................41.3系统性能要求.......................................51.4数据库设计.........................................62编码与实现.............................................82.1主要代码...........................................82.2主要界面设计.......................................83测试................................................193.1测试原则..........................................203.2测试目标..........................................203.3测试用例..........................................203.4测试结果..........................................214结论................................................21参考文献................................................22附录(程序源代码)....................................242成员:陈恒志、闫金科、黄立洋、张梦飞成员1:陈恒志,实验报告书写,登录界面、主界面设计成员2:闫金科,新增支出、新增收入、数据库功能设计成员3:黄立洋,我的支出、我的收入、退出功能设计成员4:张梦飞,数据管理、密码设置、收支便签功能设计各功能模块部分代码见附录3家庭理财系统开发1.系统分析与设计1.1可行性分析可行性分析主要包括经济可行性、技术可行性、社会可行性。经济可行性首先,本次设计是基于安卓系统的应用开发,安卓应用开发只需要一台性能不错的电脑,这对于大部分大学生来说都是拥有的,特别是计算机专业,只要有了电脑,硬件条件就满足了。其次,只要在网上或是相关书籍上查找安卓平台开发环境搭建的相关资料,然后在电脑上搭建好开发环境,就具备了本次设计的基本条件,最后就是能有一个网络环境,虽然不是必须的,但是在有网络环境情况下,如果遇到困难就可以很方便的查阅资料来寻求解决的办法,而这个条件也是很容易满足的,不管在寝室还是在图书馆。由此可见,在经济上本次设计是可行的。技术可行性本次设计主要是在安卓平台上开发一个理财应用,将会涉及人机交互,数据库操作你,客户端开发,这些利用安卓平台以及安卓平台内嵌的SQLite数据库,运用Eclipse软件Java技术进行代码编写。从自身技术而言,安卓开发需要有一定的Java技术基础、数据库技术基础、对安卓平台的了解、熟悉XML.作为计算机专业的学生,在大学四年里学习过很多类似的基础知识:Java编程、SQLServer数据库原理、XML基础知识等相关基础知识,只要有一定的自学能力,通过阅读安卓开发书籍和网上查询相关的开发资料,是有能力开发出基于安卓系统的理财软件的。由以上两点可以看出,基于安卓系统的理财软件在技术上也是可行的。社会可行性理财是现代社会每个人都必须掌握的基本生存能力之一。随着信息化时代的到来和现代生活节奏的加快,通过纸笔记账的传统理财方式早已远去,通过PC4软件实施的信息化理财也曾兴起,但是通过PC软件进行理财,很难做到信息的实时记录。随着Android和iphone等智能手机的普及,手机的功能早已不再局限于打电话发信息,由于具备天然的便携性,手机的功能和作用正在社交、游戏以及大量实用软件领域大量的替代PC[13]。将理财软件安装在手机中,用户就可以随时随地的进行记录,并可以进行统计和查看,这样就可以帮助用户真正实时的了解自己的财务状况。因此,开发基于Android系统的手机理财软件具有很大的实际价值和意义。所以,基于Android系统的理财软件也具有社会可行性。综上所述,本系统的开发目标明确,开发时机成熟,所以完全是可行的。1.2用户功能需求分析家庭理软件是针对用户要求用手机对自己的财务的收入、支出以及相关的各种信息,进行记录、修改、添加、删除而设计的一种现代化管理软件,所以本软件需要具有以下功能:(1)由于一项新的软件在被使用之前,对于使用者来说是陌生和崭新的,所以要求系统具有良好的人机界面。(2)能够实现家庭理财软件的各项功能,能成功的对用户各种信息进行管理。(3)查询、修改、删除、添加数据方便,数据的稳定性和可靠性好。具体说来,要求本系统具有以下几个功能模块:新增支出、我的支出、新增收入、我的收入、便签、数据管理以及系统设置。家庭理财通的功能结构如下图1.1所示:5图1.1功能结构图1.3系统性能要求为了保证系统在长期使用过程中能保持高效、可靠、安全等。系统应该达到以下性能要求:即时性要求即时性是系统中十分重要的性能之一。在用户使用过程中,及时的处理数据及信息反馈对于用户体验至关重要。在系统开发设计时,要充分考虑数据和数据交换,使系统的数据处理能力和响应速度能够满足用户需求[14]。从系统本身来讲,即时准确的处理用户操作是系统成功的标志之一。易用性要求系统的使用者并非专业人员,这就要求系统设计简单,操作直接。所以良好的界面十分重要。界面作为人机交互的窗口,能让用户对软件产生最直观的认识。界面甚至决定了用户对软件的选择。这就要求系统从整体到细节尽量使用用户熟悉的语言和命名信息。要提供足够的帮助解释信息,缩短用户的熟悉过程,并对可能出现的问题给予解决。响应速度要求系统中冗余数据和重复性处理是影响响应速度的最大因素。优秀的数据库设计,各个表结构的最大优化,可以大大提高系统响应速度。系统要做到及时处理,保证用户的使用效率。61.4数据库设计在涉及数据库的软件开发时,对数据库的详细设计是软件开发过程中重中之重,完善的数据库设计是后期开发的必要基础。本项目需要从数据库中查询信息,许多模块功能的实现都需要和数据库进行交互]。用户权限的实现以及页面上各个功能图标的显示是查询数据库动态生成的,并且鉴于系统数据交互的复杂性,一个良好的数据库设计就成为我们必须关注的问题。本系统是一个关于家庭理财信息的管理系统,主要包括收入、支出的管理。所以,所设计数据库表的时候设计了密码表、收入表、支出表、便签信息表用来存储对应的信息。下面将对各个表进行介绍。密码信息表(表1-1):用于用户登入时进行密码核对。表1-1密码信息表字段名数据类型是否主键描述PasswordVarchar(20)否用户密码支出信息表(表1-2):用于记录支出信息,主要属性包括id(编号)、money(支出金额)、time(支出时间)、type(支出类别)、address(支出地点)、mark(备注)。表1-2支出信息表字段名数据类型是否主键描述idinteger是编号moneydecimal否支出金额timeVarchar(10)否支出时间typeVarchar(10)否支出类别addressVarchar(100)否支出地点markVarchar(200)否备注收入信息表(表1-3):用于记录收入信息,主要属性包括id(编号)、money(收入金额)、time(收入时间)、type(收入类别)、handler(付款方)、mark(备注)。7表3-3收入信息表字段名数据类型是否主键描述idinteger是编号moneydecimal否收入金额timeVarchar(10)否收入时间typeVarchar(10)否收入类别handlerVarchar(100)否付款方markVarchar(200)否备注便签信息表(表1-4):用于记录所有提醒便签信息,主要属性有id(编号)、Flag(便签内容)。表1-4便签信息表字段名数据类型是否主键描述idinteger是编号Flagvarchar(20)否便签内容82编码与实现2.1主要代码系统程序架构如图2.1所示。图2.1程序架构2.2主要界面设计用户登录,如图2.2所示,验证用户信息是否合法,以及验证用户是否为系统设计的合法用户。首次登录不需要密码,进去后可在系统设置里设置密码。由于本软件属于个人客户端,通常情况下只有本人使用,所以没有用户名,直接进入密码输入环节,便于保护用户隐私。9图2.2登入界面用户登入后进入软件的主界面,如图2.3所示。主界面包括软件的所有功能图标,用户可根据需要使用。10图2.3主功能界面新增收入,如下图2.4所示,此模块的功能是添加用户新增的收入。在平时理财的过程中,添加收入记录是很频繁操作,所以此模块为用户提供了一个非常实用而且便捷的操作过程。在这个模块中,用户可以添加收入信息记录的内容包括:金额、时间、类别、付款方以及备注。为了用户能够方便的查看收入记录,故将收入类别进行了分类,具体分为十三类,分别为工资、股票、兼职、基金、分红、利息、奖金、补贴、礼金、租金、应收款、销售款、报销款以及其他。11图2.4新增收入界面我的收入,如下图2.5所示,当在新增收入模块进行了添加操作后,添加的收入记录就会显示在我的收入模块中。在这个界面中可以清楚的看到所有的收入信息。同时在这个模块中可以进行查询、修改、删除操作,而查询的是按照类别来进行查询。12图2.5我的收入界面我的支出界面,如图2.6所示,此模块的功能是添加用户的新增支出。同样新增支出可以选择金额、时间、类别、地点和备注。类别可以选择早餐、午餐、晚餐、夜宵、买菜、随礼、应酬、打的以及其他。13图2.6新增支出界面我的支出模块,如下图2.7。当在新增支出模块进行了数据添加操作后,添加的支出记录就会显示在我的支出模块中。在这个界面中可以清楚的看到所有的支出信息。在这个模块中可以进行查询、修改、删除操作,而查询也是按照类别来进行查询。14图2.7我的支出界面便签模块,如图2.8所示,它主要实现的是添加便签记录。便签模块可以记录将要进行的收入或支出信息,也就是相当于备忘录的功能。15图2.8便签界面系统设置,此模块如图2.9所示,它是让用户来设置密码。密码设置成功后,用户再次登录时就需要所设置的密码。16图2.9系统设置数据管理界面,如图2.10所示,对于家庭理财系统来说,数据管理功能是非常重要的一个功能,它主要是管理支出、收入以及便签的记录信息。当点击支出、收入或便签按钮时,下方就会出现所有的支出、收入或便签信息。同时会总计出支出或收入的总金额。另外还有一个统计的功能,可以进行类别的统计。如果支出、收入或便签出现记录错误,点击改条记录,就会进入对应的管理界面。然后就可以对该条记录进行修改或删除,如下图2.11是对支出信息进行修改或删除的管理界面,图2.12是收入的管理界面。17图2.10数据管理界面18图2.11支出管理界面19图2.12收入管理界面退出,用户点击退出图标后回到登录界面。3测试在系统开发周期中系统测试是一个十分重要的环节。它是保证系统质量与可靠性的最后关口,是对整个系统开发过程包括系统分析、系统设计、系统实现的最终审查。系统测试的对象不仅仅是源程序,而应是整个系统,它把需求分析、20概要设计、详细设计以及程序设计各阶段的开发文档,包括需求规格说明、概要设计说明、详细设计说明以及源程序都作为测试的对象[15]。测试的目的就是发现系统的错误。3.1测试原则(1