周少波
摘要:本系统使用Java语言在Android SDK开发环境下开发,后台数据库使用SQLite 数据库进行数据存储。实现了日常支出登记、每日支出查询、历史支出查询、支出历史分类汇总查询等強大功能。因此使得本系统最终能够帮助用户登记月支出情况,实现对月支出的管理。
关键词:理财;月支出;日常支出;分类汇总
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)36-0119-02
1 概述
随着众多的九零后走向社会,从小生活条件较好的他们大多数都没有形成理性消费的观念,平时大手大脚花钱,经常入不敷出。当他们成立家庭,有了孩子,各项支出增加,更是捉襟见肘。而要形成理性消费的观念,则必须对平时的消费支出情况进行统计,减少不必要的支出,改变自己乱花钱的习惯。在一些比较发达的国家中,人们在平常都有严格的理财计划。因此这些国家的理财软件种类比较齐全,功能也比较完善。而国内的理财软件主要针对企、事业单位的办公财务软件,而针对个人理财或者家庭理财方面的比较少,而基于手机端的应用软件就更少了。因此,需要开发一些相关的针对个人或者家庭的理财软件,从而达到引导年轻人理性消费,合理安排收支的良好习惯。如果是手工统计消费记录,用于统计的账本和记录会越来越多,即不利于保管,也容易造成丢失;而且随着记录的增多,如果要查找以前的消费记录,会变得越来越困难。而随着计算机网络技术的发展与应用,智能手机的使用在人们的生活中变的普及,当前的年轻人基本都有智能手机。因此,开发一个功能比较完善的基于Android平台的月支出管理软件来代替传统的手工统计,在人们上下班搭乘公共汽车的时候就可以方便地记录个人或者家庭的每月支出情况。
2 系统分析
2.1 系统功能需求
系统需求分析也就是研究软件要实现什么功能,也就是如何更好地满足用户的使用需要。本系统运行是基于Android平台的手机之上的,我们称之为手机端。根据用户的需求,现在将系统划分为多个模块。相关的功能如下:
1) 登记用户消费的内容;
2) 可输入某一月份,完成该 月份的支出管理;
3) 输入并统计该月的支出情况;
4) 显示该月支出信息表,内容应该包括日期,金额等;
5) 按支出类型进行分类统计和排序;
6) 进行月消费情况分析,即分析本月每项消费支出所占月全部支出的百分比,并将分析结果以图形化显示;
7) 按支出类型进行排序,显示消费情况支出信息;
8) 界面友好,输入信息符合逻辑。如存款金额不为负数、不可能有非数字的字符等。
2.2 其他需求
1) 本月支出管理系统经济实用,界面友好,操作起来方便简单;
2) 被登记的消费记录能够自动永久保存记录;
3) 可以根据用户的需要,综合查询出用户所消费的内容。
3 系统设计
3.1 功能模块划分
根据需求分析,明白了本系统需要完成月支出的基本功能,支出登记、支出管理、统计查询,快速分类、关于我们等相关功能。根据一些相关的属性,把这些功能分成五个功能模块,这样就更加方便操作了。本系统划分的六个功能模块具体为:
1) 支出登记模块:数据录入;
2) 支出管理模块:数据调整;
3) 统计查询模块:统计汇总;
4) 快速分类模块:分类汇总;
5) 帮助模块:关于,联系作者;
6) 登陆注册模块:用户信息校验。
3.2 数据库设计
本系统所使用的由于是单机版的,因此数据库无需联网,所以采用了SQLite数据库存储数据。在程序启动的时候,尝试开始生成数据库,如果发现已经存在那么直接读取出数据存放到缓存中,如果第一次使用不存在库表,那么尝试生成一份新的库表,如果所有的尝试都完毕后,如果无法创建或读取到数据库就会返回启动失败信息。系统的基础是由两个表组成的,分别为支出表和用户表。
4 系统功能实现
4.1 系统主要模块设计
4.1.1 支出登记模块实现
本系统的数据采集入口,其显示模块的开发采用JAVA图形编程方面技术,利用模块化、通用性强的特点,实现在手机端的时间选择控件以及下拉分类类型的控制的编写,这样便能更好地实现简单便捷方面的操作,提高信息的简单高效性,避免人工输入导致系统奔溃。
4.1.2 支出管理模块实现
该功能模块在界面上并没有直接的入口,仅提供查看,但是如果用户使用了统计功能和快速分类后,只要将选中的内容勾上,再通过系统默认更多的功能,就能调出“删除”功能,将录入错误的记录清除掉,这样使得用户操作变得比较友好,而且编程起来也编辑快捷,方便以后的扩展使用。
4.1.3 统计查询模块
统计查询模块的实现通常就是通过函数调用,调用各个命令处理类。在命令处理模块中,根据输入的查询条件进行收集整理、筛选数据,汇总统计,并将最终的结果在界面上凸显出来。首先用户需要通过界面上输入要查询的时间范围,并选择正确后,点击提交按钮触发后台事件出来,调用自定义函数,从SQLite中将内容取出来,统计汇总后放在前台展现出来。包括了今日账单和历史账单查询。
4.1.4 分类统计模块
分类统计模块的实现通常就是通过函数调用,调用各个命令处理类。在命令处理模块中,先事先将所有数据拆分成9类,并根据用户所选择的内容,首先发送自己的状态信息给手机端;然后建立图像的传送;再开启控制命令套接字;获取执行结果和错误流,生成对应的图像。用户选择其他一种类型进入后,后台会判断当前选中的类型,再根据这个类型去表里面查询出来数据回写到界面上。这些都是分类统计模块的相关操作功能。包括了分类查询图以及分类查询详细图。
4.2 不同组件功能实现
4.2.1 时间控件的设计原理与实现
目前在Android系统上,时间控件已经存在,比如:DatePicker控件和TimePicker控件。 这两个控件都继承自Android.widget.FrameLayout,并且在展示风格与操作风格方面也类似。但是DatePicker控件是一个设置日期的控件,而TimePicker控件是一个设置时间的控件。这样就可以实现时间的选择,以达到填写时间的目的。
目前,这些控件分隔还是比较单调的,而且这个日历控件也比较强大,但外观不够友好,因此需要在此基础上对其进行样式的变化和功能的拓展,达到我们软件自己本身的风格。这就需要我们自定义日历控件,可以通过选择日期查询相关数据等操作。
4.2.2 数据的删除实现
实现数据的删除功能,通过“今日账单”、“历史账单查询”将支出结果查询的出来,并在记录后面添加一下复选框,提供给删除的操作,用户只需要通过手机本身自带的更多功能,调出“删除”按钮,通过它将勾选的内容从SQLite中删除掉,此时通过后台回刷更新前台界面的内容。
5 结论
本系统实现了登记用户消费的内容;可输入某一月份,完成该月份的支出管理;输入并统计该月的支出情况;显示该月支出信息表,内容应该包括日期,金额等;以图形化形式显示本月每项消费支出占月消费总支出的百分比,并能按支出类型对消费情况进行统计与排序等功能。方便用户记录个人或家庭的月支出消费情况。
参考文献:
[1] 张建源. Android开发技术的学习及应用[J]. 现代工业经济和信息化,2014(4).
[2] 差沙,地狱男爵. 用Android开发手机应用[J]. 程序员,2008(4).
[3] 尹京花,王华军. 基于Android开发的数据存储[J]. 数字通信,2012(3).
[4] 孟晓龙. Win7系统下Android开发平台的搭建[J]. 科协论坛:下半月,2011(7).
[5] 吴想想. 基于Android平台软件开发方法的研究与应用[D]. 北京:北京邮电大学,2011.
[6] 胡思捷. 基于Android平台的触摸屏系统设计及实现[D].天津: 南开大学,2011.
[7] 岳传真. Android系统移植和应用程序开发[D]. 上海:复旦大学,2010.
[8] 丁永明,纪方明. 基于Android平台移动学习软件的研究与实现[J]. 数字通信世界,2011(1).
[9] 佚名. Android多線程讲解 看图理解[EB/OL].http://wenku.baidu.com/view/c69e13f9f61fb7360b4c6560.html.
[10] 刘昶. Android操作系统的存储技术研究[D]. 北京:北京理工大学,2011.
[11] Android.developer. Application Fundamentals. Addison Wesley Longman,2013.
[12] Kashnikov. Evaluating architecture and compiler design through static loop analysis[J].2013.
[13] ?tienne Payet. Static analysis of Android programs[J].Information and Software Technology,2012,54(11).
[14] Security. Understanding Android Security[Z].2010.