基于Android平台的理财软件批量处理记账类别模块以及部分UI设计毕业设计460Word格式.docx
《基于Android平台的理财软件批量处理记账类别模块以及部分UI设计毕业设计460Word格式.docx》由会员分享,可在线阅读,更多相关《基于Android平台的理财软件批量处理记账类别模块以及部分UI设计毕业设计460Word格式.docx(37页珍藏版)》请在冰豆网上搜索。
![基于Android平台的理财软件批量处理记账类别模块以及部分UI设计毕业设计460Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/9/850f969f-a028-4236-8a20-debf952190dd/850f969f-a028-4236-8a20-debf952190dd1.gif)
3.3功能需求描述11
3.3.1管家理财的功能需求11
3.3.1.1业务流程12
3.3.1.2需求描述12
3.4其他需求说明12
3.4.1软件硬件环境12
3.4.1.1硬件环境12
3.4.1.2软件环境13
3.5本章小结13
4系统详细设计13
4.1简介13
4.1.1目的13
4.1.2范围14
4.1.2.1软件名称14
4.1.2.2软件功能14
4.2总体设计15
4.2.1总体设计思路15
4.2.2记账类别子模块的划分16
4.2.3记账类别模块页面流程16
4.3记账类别各子模块的函数接口19
4.3.1记账类别主菜单函数接口19
4.3.1.1描述19
4.3.1.2模块ClassActivity类结构19
4.3.1.3XML布局文件20
4.3.1.4对外接口21
4.3.2记账类别添加模块上级目录函数接口23
4.3.2.1描述23
4.3.2.2ClassEditiActivity类结构23
4.3.2.3XML布局文件25
4.3.2.4对外接口19
4.4数据库设计27
4.4.1表结构27
4.4.2访问数据库的实现27
4.5本章小结29
5测试29
6总结31
6.1毕业设计完成的任务32
6.2收获和总结32
参考文献33
致谢33
基于Android平台的理财软件
XXXXXXX计算机科学与信息工程学院20XX级软件X班XXX
指导老师:
XXX
【摘要】本文就在分析讨论Android手机软件开发原理的基础上,开发的一款能够提供一些日常的简单理财的软件,它能够记录用户每天的消费与支出,并且可以根据自己的意愿对于自己的消费和支出进行一个分类,之后又运用了Charts图表的形式非常直观的反映出来,这样可以对用户有一个直观的冲击,让用户体验到自己的消费水平与自己的收入之间的一个匹配度,以此来提醒用户如何去规划自己的生活,同时也能够查询过往时间的消费记录,这样让用户在后面能够从哪些地方去加以改善,以此来提高用户的生活质量。
【关键词】AndroidLinux手机理财
[Abstract]Inthispaper,basedonanalyzinganddiscussingtheAndroidmobilephonesoftwaredevelopmentprinciple,thedevelopmentofasimpleroutinecanprovidesomefinancialmanagementsoftware,itcanrecordtheuserconsumptionandspendingeveryday,andcanaccordingtotheirownwishesforaclassificationfortheirownconsumptionandexpenditure,andthenusetheChartschartintheformofveryintuitivelyreflected,thiswillhaveadirectimpactontheuser,allowinguserstoexperiencebetweentheirconsumptionlevelandtheirincomeofamatch,toreminduserstoplantheirownlives,butalsobeabletoquerypasttimerecordsofconsumption,sothattheusercangointhebackimprovedfromwhere,inordertoimprovetheuser'
squalityoflife.
[Keywords]AndroidLinuxmobilephonebanking
一绪论
1、课题背景
随着经济的发展,人们的生活水平日益提高,人们的消费观念的不断转变,消费也从低级开始逐步向较高的层级递进发展,在满足物质消费的同时,人们更重视精神消费。
尤其是现代化的经济生活,科学技术的作用日益显著,对劳动者素质的要求越来越高。
人们不仅把钱用于物质方面,还很重视精神消费。
精神消费用于增进人的精神健康、娱乐身心及发展提高自身的各种消费,而在这个经济发达的社会智能手机应运而生,而其中尤为突出的又属2008年Google推出了一款名为Android的开源智能手机系统,它采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系统的开源性使其具有良好的拓展性。
这款软件包括了操作系统,用户界面和应用程序,即智能手机工作所需要的全部软件。
Android的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。
因此,对于软件从业人员来说,Android平台具有无限的吸引力。
在两者的结合之下,app应用也更是层出不穷,而本文就是在Android系统上设计了一款关于理财的软件。
2、相关技术的基础知识
(1)Android开发的相关技术基础
Activity
应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。
Activity之间通过Intent进行通信。
在Intent的描述结构中,有两个最重要的部分:
动作和动作对应的数据。
Activty的生命周期
onCreate
:
当活动第一次启动的时候,触发该方法,可以在此时完成活动的初始化工作。
onCreate方法有一个参数,可以为空值,就代表要重新创建实例,也可以是之前调用onSaveInstanceState()方法保存的状态信息。
onStart
该方法的触发表示所属活动将被展现给用户。
onResume
当一个活动和用户发生交互的时候,触发该方法。
onPause
当一个正在前台运行的活动因为其他的活动需要前台运行而转入后台运行的时候,触发该方法。
onStop
当一个活动不再需要展示给用户的时候,触发该方法。
onRestart
当处于停止状态的活动需要再次展现给用户的时候,触发该方法。
onDestroy
当活动销毁的时候,触发该方法。
onSaveInstanceState:
系统调用该方法,保存之前的状态。
activity的四种加载模式
standard:
标准模式,一调用startActivity()方法就会产生一个新的实例。
singleTop:
如果已经有一个实例位于Activity栈的顶部时,就不产生新的实例,如果不位于栈顶,会产生一个新的实例。
singleTask:
会在一个新的task中产生这个实例,以后每次调用都会使用这个,不会去产生新的实例了。
singleInstance:
这个跟singleTask基本上是一样,只有一个区别:
在这个模式下的Activity实例所处的task中,只能有这个activity实例,不能有其他的实例。
Service
Service是在一段不定的时间运行在后台,不和用户交互应用组件。
每个Service必须在manifest中通过<
service>
来声明。
可以通过startservice和bindserverice来启动。
Service和其他的应用组件一样,运行在进程的主线程中。
这就是说如果service需要很多耗时或者阻塞的操作,需要在其子线程中实现。
Service生命周期
startService()->
onCreate()->
onStart()->
stopService()|->
onDestroy()
BroadCastReceiver
BroadcastReceiver用于异步接收广播Intent
主要有两大类,用于接收广播的:
正常广播,有序广播
另外BroadcastReceiver并没有提供可视化的界面来显示广播信息。
BroadcastReceiver生命周期
一个BroadcastReceiver对象只有在被调用onReceive(Context,Intent)的才有效的,当从该函数返回后,该对象就无效的了,结束生命周期。
BroadcastReceiver的两种注册方式:
静态方式,在AndroidManifest.xml的application里面定义receiver并设置要接收的action。
动态方式,在activity里面调用函数来注册,和静态的内容差不多。
一个形参是receiver,另一个是IntentFilter,其中里面是要接收的action。
ContentProvider
ContentProvider主要用于对外共享数据,也就是通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对指定应用中的数据进行操作。
Android的五种布局方式
FrameLayout帧布局,放入其中的所有元素都被放置你设定的区域,以后的元素都会在你的区域上重叠
LinearLayout线性布局,是应用程序中最常用的布局方式,主要提供控件水平或者垂直排列的模型,每个子组件都是以垂直或水平的方式来定位.(默认是垂直)
AbsoluteLayout绝对定位布局,采用坐标轴的方式定位组件
RelativeLayout相对布局,根据另外一个组件或是顶层父组件来确定下一个组件的位置。
TableLayout表格布局,以表格的形式布局,使用TableRow,其中TableRow代表一行,TableRow的每一个视图组件代表一个单元格。
android数据存储方式
SharedPreferences存储数据;
它是Android提供的用来存储一些简单配置信息的一种机制,采用了XML格式将数据存储到设备中。
只能在同一个包内使用,不能在不同的包之间使用。
文件存储数据;
是Android中读取/写入文件的方法,与Java中实现I/O的程序是完全一样的,提供了openFileInput()和openFileOutput()方法来读取设备上的文件。
SQLite数据库存储数据;
SQLite是Android所带的一个标准的数据库,它支持SQL语句,它是一个轻量级的嵌入式数据库。
ContentProvider存储数据;
主要用于应用程序之间进行数据交换,从而能够让其他的应用保存或读取此ContentProvider的各种数据类型。
网络存储数据;
通过网络上的方式进行上传和下载。
还有很多其他的一些知识,在这里就不做一一介绍了。
3、本文主要研究工作和章节安排
第一章主要讲述了项目的来源、项目的目的和研究意义,并对本系统开发的一些基本知识进行了介绍
第二章对android开发环境的搭配进行详细的说明
第三章是关于需求分析和系统的总体设计
第四章说明了关于系统的详细设计
第五章对本次毕设进行了总结和展望
二Android的架构概述及开发环境搭建
1、Android的架构描述
Android系统架构图及各层介绍
应用层:
应用是用java语言编写的运行在虚拟机上的程序。
应用框架层:
这一层是编写Google发布的核心应用时所使用的API框架,开发人员同样可以使用这些框架来开发自己的应用,这样便简化了程序开发的结构设计,但是必须要遵守其框架的开发原则。
系统运行库(C/C++库以及Android运行库)层:
当使用Android应用框架时,Android系统会通过一些C/C++库来支持我们使用的各个组件,使其更好的为我们服务。
Linux内核层:
Android的核心系统服务给予Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核,比如BinderIPC驱动,android的一个特殊驱动程序,具有单独的设备节点,提供进程间通信的功能。
2、Android的开发环境搭建
(1)环境的安装与搭建
1)安装JDK
将下载好的JDK安装好以后,设置环境变量步骤如下:
a.我的电脑->
属性->
高级->
环境变量->
系统变量中添加以后环境变量:
b.JAVA_HOME值为:
D:
\ProgramFiles\Java\jdk1.6.0_18(你安装JDK的目录)
c.在开始追加
%JAVA_HOME%\bin;
安装完成后,可以检查JDK是否安装成功。
打开cmd窗口,输入java-version查看JDK版本信息
2)安装eclipse
3)安装AndroidSDK
4)安装ADT
5)创建AVD
以上步奏完成之后就可以开发你的第一个android程序啦。
3、本章小结
本章主要介绍一些关于Android的基础知识,以及安装软件的安装,只有当你了解了基础知识,和安装好了软件之后,才能够开发你的Android程序呢。
三需求分析
1、概述
(1)编写目的
用于方便个人生活的小软件,它能够非常方便的记录你个人财产的使用情况,能够用图表的方式直观体现你的经济使用情况,能够让你的生活更有规律,更有节奏。
(2)术语与缩写解释
缩写、术语
解释
APK
AndroidPackage
JNI
JAVAnativeInteface
SDK
SOFTWAREDEVELOPMENTKIT
ADT
开发Android应用程序的插件
2、系统说明
(1)产品开发背景和目标
1)背景
从改革开放至今,我国经济快速增长,居民的家庭财富也在不断积累扩大,人们未来面对的不确定性越来越多,这使每一个家庭必须要通过理财才能实现自己的家庭的生活目标和提高生活质量。
由于理财的重要性,它日益成为家庭关注的焦点,目前我国居民的家庭理财规划方式较片面,理财中绝大多数只是关心财富增值效应,缺乏长期性、严谨性和科学性。
所以我们希望能设计出一款能够提供一些日常的简单理财,提升个人以及家庭的生活质量。
2)目标
人们的生活水平提高,但是人群却分为了很多种类,比如月光族,蚁族等等人群的出现,这都是对于自己的消费没有规律造成的,并且还不知道自己的钱花到了何处,不过当你用到了管家理财这款软件之后,你所有的消费都能够一目了然,更是运用到了图表的方式,更直观的显示,这样下次就可以省掉很多不必要的支出,来保持你的收支,提高你的生活质量。
(2)产品目标用户和最终用户
1)目标用户
安卓系统移动端使用者
2)最终用户
(3)系统软件的约束
客户端操作系统:
Android系统;
客户端硬件设备:
Android手机登移动终端;
JDK版本1.5以上;
AndroidSDK版本2.2以上;
开发环境:
Windows7操作系统
开发工具:
eclipse,sqlite;
(4)软件系统当前版本的范围
Android手机
(5)软件系统的角色
用户
(6)软件系统的功能列表
批量处理
记账类别
3、功能需求描述
(1)管家理财的功能需求
1)用例模型
图1用户登录模型
2)动态模型
图2用户总体流程图
3)业务流程
记账类别的业务流程:
图3记账类别流程图
4)需求描述
记账类别:
根据个人的需求添加出不同的分类,方便自己的管理,更清晰的显示你的消费和收入情况,其中分为两个打的模块:
管理:
把之前分好的类别的数据进行操作
添加:
添加新的类别,同时判断类别中与上级目录是否重复
(2)其他需求说明
1)硬件环境
详细配置如下:
基本类别
类别
结构
Android
软件系统
系统支持
Android系统
2)软件环境
Dev版本:
Android手机4.4.4版本
操作系统名称:
Android手机
eclipse
软件体系结构:
Android系统
数据库版本:
SQLite
4、本章小结
本章主要介绍实现该软件的需求分析,后期需要根据这个需求来完成设计。
四系统设计
1、简介
总体E-R图:
图4收入-记账类别E-R图
图5消费-记账类别E-R图
(1)目的
本文的目的是为了描述记账类别模块的软件设计思想,主要包括:
介绍记账类别模块的总体设计思路;
描述记账类别模块的子模块划分;
描述记账类别模块各子模块间的关系和内部接口;
着重描述记账类别各子模块的设计思路和实现方法。
本文档经过需要经过评审以后,为后续的编码做准备工作,并且该文档将为系统测试计划以及测试用例写作的提供必要的相关参考信息。
该文档也可供软件组其他模块软件开发人员、测试人员参考之用。
(2)范围
1)软件名称
记账类别模块详细设计说明书
2)软件功能
a.点击记账类别,从主菜单进入记账类别管理主界面
b.管理模块下会显示你的所有收入以及消费的目录
c.长按管理模块下的消费目录会弹出操作主界面
d.点击操作界面的修改按钮,会进入修改页面,并且会将之前的数据传入修改页面
e.点击操作界面的删除按钮,会弹出一个提示界面,询问你是否删除,如果点击确定,这条数据就会被删除,点击取消就会回到主菜单
f.选择添加模块的时候,就会进入添加主界面
g.你可以在主界面添加你新增的数据,并且进行一些判断
h.当你点击上级类别的时候,会弹出你之前新增的目录结构
i.点击是否重复按钮的时候,会根据你输入的字符串与数据库中的数据进行匹配,重复则不可添加,不重复才能够使用,以及其他的一些信息
j.点击重设,所有的数据会清空
k.当可以添加成功之后,会回到记账类别管理界面
2、总体设计
(1)总体设计思路
记账类别总体结构图
图6记账类别总体结构图
(2)记账类别子模块的划分
根据所需实现的功能和总结设计思路,也为了对记账类别进行有效管理,在详细的设计过程中,我们把记账类别模块划分为以下几个子模块来进行实现。
管理子模块
a.修改子模块
b.删除子模块
添加子模块
a.添加子模块
b.判断类别模块
管理子模块:
用于管理我们插入的记账类别信息
添加子模块:
用于添加新的记账类别信息
修改子模块:
用户修改自己已经存在的类别信息
删除子模块:
用户可以根据自己的需要删除类别信息
判断类别模块:
用户可以根据自己的需求生成父级与子级目录
(3)记账类别模块页面流程
根据需求分析时所定义的功能,我们对记账类别模块从界面上做一个介绍.
总体框架图:
管理模块流程:
添加子模块流程:
判断上级目录模块:
3、记账类别各子模块的函数接口
(1)记账类别主菜单函数接口
1)描述
主菜单模块主要是实现用户与记账类别各模块进行交互的接口,用来对子模块功能进行选择。
本模块是基于TabActivity类来实现的。
2)模块ClassActivity类结构
publicclassClassActivityextendsTabActivity{
}
主要包括如下函数:
protectedvoidonCreate(BundlesavedInstanceState){
//用于初始化加载图形界面
publicbooleanonContextItemSelected(MenuItemitem){
//对条目的选择功能进行设置,eg:
操作,修改,删除等
privatevoidupdateManageFclassListViewAdapter(ListViewlv,long_pid,inttype){
//管理页面动态显示类别
privatevoidupdateAllFlcassListViewAdapter(ListViewlv,long_pid,inttype){
//对界面的功能操作之后,更新界面
privatevoidupdateAllFlcassListView(long_pid,inttype){
//添加类别页面动态显示类别
privatevoidsetAllFcclassDialogListener(){
//给记账类别中的控件添加监听时间
privatevoiddeleteItem(finallong_id){
//删除类别
privatebooleancheckIsRepeat(Stringname){
//根据名称查询在已有类型(不含自己)中是否已经存在该类别的名称
privatebooleaninsertBefore(){
//判断是否能够插入数据
privatevoidinsertFclass(){
//用于插入数据
privatelonggetIdByName(Stringname){
//根据Name查询表中已存在记录的ID
privateStringgetNameById(long_id){
//根据ID查询表中已存在记录的Name
privateFclassgetFclassById(long_id){
//根据ID查询表中已存在记录
}
privateArrayList<
Fclass>
getSubFclassByParentId(long_pid){
//根据子类别中