1、基于安卓系统的个人理财系统毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业
2、设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留
3、并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神 优 良 中 及格 不及格2、学生掌握专业知识、技能的扎实程度 优 良 中 及格 不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力 优 良 中 及格 不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性
4、优 良 中 及格 不及格5、完成毕业论文(设计)期间的出勤情况 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)指导教师: (签名) 单位: (盖章)年 月 日评
5、阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)评阅教师: (签名) 单位: (盖章)年 月 日教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答
6、辩过程1、毕业论文(设计)的基本要点和见解的叙述情况 优 良 中 及格 不及格2、对答辩问题的反应、理解、表达情况 优 良 中 及格 不及格3、学生答辩过程中的精神状态 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格评定成
7、绩: 优 良 中 及格 不及格(在所选等级前的内画“”)教研室主任(或答辩小组组长): (签名)年 月 日教学系意见:系主任: (签名)年 月 日基于安卓系统的个人理财系统摘 要随着移动终端的迅速普及,Android系统平台应用软件的需求随之增大。本课题通过研究Android体系结构和个人财务管理方面的知识,设计并实现了个人理财系统。能够对理财信息进行获取、汇总、收集、整理等功能,从而实现随身随时随地进行日常的理财活动。本课题第一部分是绪论,论述本课题的内容、方法和意义;第二部分是介绍,介绍系统的开发环境以及所使用的技术,重点对Android系统作简要的介绍。第三部分是总体设计,做了系统需求分
8、析、系统的功能结构设计和数据库设计。第四部分是详细设计,在第三部分总体设计的基础之上,论述系统的功能运行流程。第五部分是测试,对系统的功能进行验证,确保系统正常运行。最后是结束语、参考文献和致谢部分。 关键词: 手机理财 安卓 个人财务管理Personal Financial Management System Based on the Android SystemABSTRACT With the rapid development and popularization of the mobile terminals, the demand of applications based on
9、Android is increasing. This system is to research the structure of Android system and the implementation of personal financial management. To achieve the function of acquisition, summary, collection, analysis of financial data, so it achieves daily and pocket financial management at any time and any
10、where.The first part of this system is a brief introduction, to introduce the contents, method and purpose of this system. The second part is an introduction to describe the environment and technology of development that applied for this system, focused on the brief introduction of Android system. T
11、he third part is the general design of the system, including analysis of system demands, function structure design and database design. The fourth part is a detailed design of the system, based on the general design of the third part and it describes the functional flow charts of the system. The fif
12、th part is about system testing, it verifies the function of system and ensures the system running right and smoothly. The last part is the ending words, references and acknowledgements.Key words: Mobile financial Android Personal financial management目 录 第一章 绪论11.1 开发背景11.2 国内外研究现状11.3 本课题研究的内容11.4
13、本课题研究的方法21.5 本课题实现的意义2第二章 系统开发环境和技术介绍32.1 系统开发环境及工具32.1.1 Eclipse + ADT32.1.2 AVD和Android模拟器32.2 Android系统介绍32.2.1 Android平台构架32.2.2 Android应用组件52.3 系统的重要技术介绍62.3.1 XML介绍62.3.2 SQLite数据库介绍62.3.3 Jxl.jar包72.3.4 AChartEngine.jar包7第三章总体设计83.1主要技术问题83.2需求分析83.3功能设计83.4数据库设计113.4.1数据库的E-R图设计113.4.2数据表名和字
14、段设计123.5本章小结13第四章详细设计144.1 总系统介绍144.2 功能模块详细设计144.2.1 增加收支功能144.2.2 查看收支功能164.2.3 修改收支功能174.2.4 删除收支功能184.2.5 增加账户功能194.2.6 查看账户功能204.2.7 修改账户功能214.2.8 删除账户功能224.2.9 设置密码功能234.2.10 数据导出功能244.2.11 收支图表功能254.2.12 账户图表功能264.3 本章小结26第五章系统测试275.1 系统版本测试275.2 系统功能测试285.2.1 收支管理功能测试285.2.2 账户管理功能测试305.2.3
15、密码功能测试325.2.4 数据导出功能测试335.2.5 图表功能测试345.3 本章小结35结 束 语36参考文献37致 谢38第一章 绪论1.1 开发背景随着人们生活水平的提高,消费水平的不断上涨,手中可以支配的财富也就越来越多,人们对自己财富的管理和掌控能力越加力不从心,理财渐渐与我们的生活息息相关,在我们的生活中扮演着十分重要的角色。但是我们的理财水平不能很快提高,因此,理财软件走进我们的身边,帮助我们管理我们的财务。1.2 国内外研究现状理财软件,是指以财务账户为核心,以增值获利为目的,以资金流动为手段,以统计分析为决策的管理软件。从使用者角度看,有个人理财类和委托理财类。随着人们
16、对理财越加了解和重视,各种理财产品和理财服务层出不穷,个人理财软件只是其中的一个。但个人理财软件以其方便、实用、便宜等特点受到越来越多人的追捧和使用。个人理财类软件可作为个人、家庭和理财师为客户做理财分析的工具软件。个人理财软件是帮助实现个人理财的计算机应用程序。现在常见的个人理财软件可以完成收支记账、预算、统计分析、账户管理等功能,帮助用户能更好的管理个人财务!操作简单,报表分析功能能让用户随时可以了解自己的财务状况。理财软件又分为PC端理财软件、WEB在线理财及手机理财三大平台,之间数据既可独立,又可同步。正是在国内外研究现状的基础之上,本课题设计并实现了自己的手机个人理财软件1。1.3
17、本课题研究的内容基于安卓系统的个人理财系统,让手机也能够拥有理财功能,主要包括四个功能模块:收支管理模块、账户管理模块、系统设置模块、显示图表模块。在实现系统功能的同时保证界面布局美观、方便使用。1.收支管理模块:收支模块管理用户收入支出信息,具体为帮助用户显示、增加、删除、修改财务信息。2.账户管理模块:账户管理模块帮助用户理清自己账户中的钱财,做到一目了然。3.系统设置模块:系统模块设置账户、密码,将数据备份导出,保证系统安全。4.显示图表模块:显示图表模块显示用户总体收支信息和账户信息。显示方式为图形显示,方便直观。1.4 本课题研究的方法本课题使用安卓官方推荐的Android SDK作
18、为开发环境,并使用Java作为编程语言,这正是基于Java语言在编程中有许多好的像简单、面向对象、分布式、健壮性、可移植、多线性等特性的原因2。1.5 本课题实现的意义在当今社会,信息化和电子化浪潮喷涌而来,我们的生活因此而变得越加的方便和快捷。智能手机便是新的信息化和电子化的领头羊,全方面的提高了我们的工作和生活效率的同时,也让我们更加离不开它。在智能手机中,使用最广泛的操作系统就是安卓系统。而本课题-基于安卓系统的个人理财系统,就是在这类智能手机中,加入能够帮助我们理财的功能,让手机不仅能够解决打电话等基本通信需求,而且还能管理我们的财务,让我们能够随时随地,方便快捷的理财,将我们的财务打
19、理的井井有条。第二章 系统开发环境和技术介绍本章主要介绍个人理财系统所涉及到的相关技术知识。2.1 系统开发环境及工具Android应用程序使用Java语言编写,而使用Java语言必须有JDK,所有需要下载和安装JDK。针对Java语言的集成开发环境有很多,本系统使用最广泛的Eclipse开发平台。2.1.1 Eclipse + ADTADT的全称是Android Development Tools,在Eclipse编译IDE环境下,需安装ADT(Android Development Tools)Plug-in,这是Android在Eclipse上的开发工具。安卓官网为了方便开发者,在And
20、roid SDK中包含了Android应用程序开发的全套工具。2.1.2 AVD和Android模拟器AVD的全称是Android Virtual Device,就是Android运行的虚拟设备,它是Android的模拟器识别。建立的Android要运行,必须创建AVD,每个AVD上可以配置很多的运行项目。通过AVD可以启动Android模拟器,进行程序的调试。本论文后面的测试环节,正是基于AVD,才可以在PC上使用Android虚拟机运行安卓程序,进行测试工作3。2.2 Android系统介绍2.2.1 Android平台构架Android系统采用分层的架构实现,总体可分为四层结构,分别是应
21、用程序层、应用程序框架层、系统运行库层以及Linux内核层。它采用一种被称为软件叠层(Software Stack)的方式进行构架,使得层与层之间互相分离,明确各层的分工。这种分工保证了层与层之间的低耦合,当下层的层内或层下发生改变时,上层应用程序无须任何改变。Android系统体系结构如下图2.1所示。图2.1 Android系统体系结构41.应用程序层Android系统将会包含系列的核心应用程序,这些程序包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人等。这些应用程序都是用Java编写,并且都是可以被开发人员所开发的其他应用程序替换,这点不同于其他手机操作系统固化在系统内部的系统
22、软件,更加灵活和个性化。用户开发的Android应用程序和Android的核心应用程序是同一层次的,它们都是基于Android的系统API构建的。2.应用程序框架层 应用程序框架层是开发者从事Android应用开发的基础,很多核心应用程序也是通过这一层来实现其核心功能,该层简化了组件的重用,开发人员可以直接使用它提供的组件进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。3.系统运行库层Android系统运行库层主要分为系统库和Android运行时环境两部分。(1)系统库:系统库是应用程序框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带。(2)Android运行时环境(Ru
23、n Time Context): Android应用程序时采用Java语言编写,程序在Android运行时环境中执行,运行时环境可分为核心库和Dalvik虚拟机两部分。 4.Linux内核层Google选择了Linux作为Android的底层支撑系统。当前的 Android系统是基于Linux2.6内核,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于Linux内核。当然,除了标准的Linux内核外,Android还增加了内核的驱动程序:Binder(IPC)驱动、显示驱动、输入设备驱动、音频系统驱动、摄像头驱动、Wi-Fi驱动、蓝牙驱动、电源管理。本课题程序运行在安卓
24、系统体系结构的最上层,即应用程序层。也正是因为有这种架构,最上层的程序,包括本系统,才可以在手机当中正常工作5。2.2.2 Android应用组件 应用组件是构建安卓程序的基础。 每一个组件都是系统与程序交互的一个通道。并不是所有的组件都有实际的入口点,有一些虽然互相依赖,但是各自都作为自己的实体存在,并且扮演特殊的角色:每一个都是一个唯一的构建块,用于定义程序的一些行为。一共有四种应用组件.每一种类型都用于不同的目的,有不同的生命周期来定义组件的建立和销毁。1.Activity 组件 Activity是Android应用程序中最为基本也是最为重要的组件之一,在Android应用程序中,手机屏
25、幕上显示的每个窗口都是一个Activity,用户主要通过Activity组件与应用程序交互。下图2.2是Activity 的生命周期。图2.2 Activity的生命周期62.Service组件 服务没有可视化的用户界面,而是在一段时间内在后台运行。比如说,一个服务可以在用户做其它事情的时候在后台播放背景音乐、从网络上获取一些数据或者计算一些东西并提供给需要这个运算结果的Activity使用。每个服务都继承自Service基类。3.BroadcastReceive组件 广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。很多广播是源自于系统代码的比如,通知时区改变、电池电量低、拍摄了
26、一张照片或者用户改变了语言选项。应用程序也可以进行广播比如说,通知其它应用程序一些数据下载完成并处于可用状态。应用程序可以拥有任意数量的广播接收器以对所有它感兴趣的通知信息予以响应。所有的接收器均继承自BroadcastReceiver基类。4.ContentProvider组件 内容提供者将一些特定的应用程序数据供给其它应用程序使用。数据可以存储于文件系统、SQLite数据库或其它方式。内容提供者继承于ContentProvider 基类,为其它应用程序取用和存储它管理的数据实现了一套标准方法。本程序就是使用这四大组件,设计实现的7。2.3 系统的重要技术介绍2.3.1 XML介绍XML的全
27、称为可扩展标记语言 (Extensible Markup Language) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML能够更精确地声明内容,方便跨越多种平台的更有意义的搜索结果。它提供了一种描述结构数据的格式,简化了网络中数据交换和表示,使得代码、数据和表示分离,并作为数据交换的标准格式,因此它常被称为智能数据文档。在本次Android开发中,使用XML布局文件控制UI界面,所有XML文件保存在res/layout目录下,Activity中使用setContentView(R.layout.XXX)显示
28、XML文件中布局内容,这样就实现了前台界面与运行代码的分离8。2.3.2 SQLite数据库介绍 Android系统集成了一个轻量级的数据库:SQLite。SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。基于以上的原因,SQLite可以在安卓系统中很方便的
29、被本程序所使用,不用其他任何附加条件9。2.3.3 Jxl.jar包Java Excel 是一开放源码项目,通过它 Java 开发人员可以读取 Excel 文件的内容、创建新的 Excel 文件、更新已经存在的 Excel 文件。使用该 API 非 Windows 操作系统也可以通过纯 Java 应用来处理 Excel 数据表。因为是使用 Java 编写的,所以我们在 Web 应用中可以通过 JSP、Servlet 来调用 API 实现对 Excel 数据表的访问。基于以上Jxl.jar的优良特性,本系统使用此包实现了将数据库中理财信息导出的功能10。导出格式为.xls的文件,该文件可在电脑上
30、使用Excel打开。2.3.4 AChartEngine.jar包 AChartEngine是为Android应用而设计的绘图工具库。可用于绘制多种图标,目前该绘图工具库的最新稳定版本是1.0.0。AChartEngine支持的图表类型:折线图、区域图、散点图、时间图、柱状图、饼状图、气泡式图表、环形图、高低交替图。本程序在使用AChartEngine.jar包的基础之上,将数据库中的财务信息转化为图像的功能11。第三章 总体设计3.1 主要技术问题本系统帮助我们进行日常的理财活动,要对个人理财信息进行收集、汇总、整理和显示。因此本课题的主要技术问题如下:1. 数据汇总问题:本课题中的用户收支
31、管理功能就是程序接受用户理财信息的接口,通过规范理财信息解决数据汇总问题。2. 数据整理问题:本课题使用账户管理功能对个人理财信息进行账户管理。3. 数据显示问题:通过使用显示图表功能对财务数据显示。3.2 需求分析基于安卓系统的个人理财系统的基本功能是对个人理财信息及时方便的记录和高效快捷安全的管理。用户能够通过手机上的理财系统对生活中遇到的日常收入支出信息记录到数据库中,也能够将曾经记录的收支信息查看管理,或备份到其他的存储设备中。本系统的数据对象是用户的个人理财信息,主要包括用户收入支出信息和用户个人账户信息两部分。用户收入支出信息主要记录用户日常生活中的收入支出信息;用户个人账户信息则
32、对用户收入支出信息整理归纳,让用户对自己的财务状况一目了然,心中有数。用户的个人理财信息是十分重要和私密的。因此,为保证用户信息的安全性,用户可以对本系统加设密码,防止其他人随意翻阅。3.3 功能设计基于安卓系统的个人理财系统,提供了收支管理、账户管理、系统设置和显示图表四个主功能模块,如下图3.1所示:图3.1 程序主功能模块在这四个主功能模块中,收支管理功能模块和账户管理功能模块是理财系统的重中之重,属于系统的核心功能模块。从用户的角度看,在这两者之间还是有很大区别。收支管理功能模块更趋向于和人的交互工作,或者说是更依赖于用户的使用。用户使用个人理财系统,本身就是因为理财数据杂乱、复杂、数
33、据量大,用户自身不能管理和驾驭这些数据;用户通过频繁使用收支管理功能模块,将个人收入支出信息汇总、整理。收支管理功能模块就是整个系统中的最大的交互接口,从中得到用户信息,从这点来看,收支管理功能模块在个人理财系统中也最为依赖用户。而对于账户管理功能模块来说,虽然也能与用户进行数据交互,但这不是该模块的重点。账户管理功能模块主要是将收支管理功能模块中的用户理财信息归纳、总结,以账户形式整理显示出来。下面是两个功能模块的具体论述。收支管理功能模块,功能是将用户的收入支出信息,保存到数据库中去,并进行必要的数据库操作。可将此功能模块细分为四个小功能模块,分别是增加收支功能模块、查看收支功能模块、修改
34、收支功能模块和删除收支功能模块。如下图3.2所示:图3.2 收支管理功能模块四个子功能模块用途如下:1. 增加收支:每当用户有新的收入或支出时,可以通过此模块将信息存入程序中。2.查看收支:用户可以通过此模块查看已经录入的收支信息。3.修改收支:为防止用户信息录入错误,可以修改错误信息。4.删除收支:将错误或过期收支信息删除。账户管理功能模块,是将用户的账户信息保存在数据库中,并随着用户收支信息的录入,对账户信息及时的更新。当然也可以手动对账户信息进行数据库的基本操作。可将此功能模块细分为四个小功能模块,分别是增加账户功能模块、查看账户功能模块、修改账户功能模块和删除账户功能模块。如下图3.3
35、所示:图3.3 账户管理功能模块四个子功能模块用途如下:1.增加账户:用户会有多个财务账户或财务信息;用户可以通过此模块新建一个账户,以便管理更多的财务信息。2.查看账户:账户信息随着收支信息不断变化,用户通过此功能,查看理财结果,一目了然。3.修改账户:当账户信息不对或有了新的账户情况时,可用此功能将账户信息校准。4.删除账户:不需要的账户可以删除掉。系统设置功能模块和显示图表功能模块,都属于辅助性功能模块,在程序中辅助前两个主功能模块工作,使得程序更安全、更实用和方便。这两个辅助性功能模块,是对主功能模块的扩展,对用户需求的适应。设置密码功能模块加强了系统的安全性;数据导出功能模块方便用户
36、备份,也便于管理自己的理财数据;收支图表功能模块和账户图表功能模块直接对应主功能模块的数据,是对这些数据的另一种显示方式,便于用户对这些数据的直观感受。两个功能模块如下图3.4所示:系统设置功能模块,可以对程序进行密码设置和数据导出。图3.4 系统设置和显示图表功能模块1.设置密码:为保证理财信息安全而设置的功能模块。2.数据导出:可以通过此功能将手机上的数据导出到电脑上去,转出文件为xls格式,可用Excel打开。显示图表功能模块,负责将数据库中的财务信息以图表的形式表现出来。又由于数据的变化分为收支图表功能模块和账户图表功能模块。3.收支图表:通过此功能查看收支情况的饼状图。4.账户图表:
37、用户可能会有许多账户,查看起来很不方便,此功能将账户信息转换为图表,便于查看。3.4 数据库设计在数据存储模块设计中,本系统采用了两种不同的数据存储方式,分别是SharedPreferences存储数据和SQLite数据库存储数据。用户的个人理财信息使用SQLite数据库存储数据,信息存储在安卓系统自带的轻型数据库SQLite中。用户的密码信息则使用SharedPreferences保存为一个XML文件,存储在用户手机的内置存储卡中。这是考虑到本理财软件是在手机上运行,和电脑理财软件相比更加私密,定位使用成员是手机主人和家庭成员,故软件仅有一个默认用户和密码,不需要使用数据库存储数据。数据库的
38、设计是按以下的分析进行的。账户:存储账户信息。账户信息是程序将用户输入的收支信息做自动计算而出来的信息。一条账户信息分为账户名称、使用币种和金额大小三类信息。用户收支:用来存储用户的详细收入支出信息。信息包括交易类型、时间、类别、账户名、币种、金额、地点和备注。这两个表通过账户名信息将两个信息关联在一起。通过用户收支情况的变动,账户信息也随之改变。3.4.1数据库的E-R图设计E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。E-R方法也称为E-R模型。在E-R图中,用方框表示实体,用菱形表示联
39、系,用椭圆表示属性。通过对以上程序功能和数据信息的分析,确定基于安卓系统的个人理财系统的E-R图如下图3.5所示。图 3.5 ER图如图3.6账户实体的ER图。账户中包含账户名称、币种和金额三属性。图 3.6 账户ER图如图3.7用户收支实体的ER图。图 3.7 用户收支ER图3.4.2数据表名和字段设计对数据库的表和字段进行设计。该理财系统需要账户和用户收支两类信息的采集,故对应两张表:account表和balance表。account表将用户的财富按账户名分类,比如现金账户、信用卡账户、银行账户等等。表中的数据代表了用户不同账户的金额。表结构如下表3.1所示。表3.1 account表结构
40、字段类型允许空默认说明idintegerNoNULL主键,自增namevarchar(20)YesNULL账户名称currencyvarchar(20)YesNULL币种moneydecimalYesNULL金额balance表是用户个人的收支记录,用来存储用户全部的交易活动。balance表中的字段account_id是account表的外键,将balance表和account表相连接,每一次用户的交易记录,balance表的增加都将更新account表。表结构如下表3.2所示。表3.2 balance 表结构字段类型允许空默认说明idintegerNoNULL主键,自增iovarchar(
41、15)YesNULL交易类型(收入/支出)datevarchar(20)YesNULL日期typevarchar(15)YesNULL类别sub_typevarchar(20)YesNULL字类别account_idvarchar(20)NoNULL账户currencyvarchar(20)YesNULL币种moneydecimalNoNULL金额addressvarchar(20)YesNULL交易地点remarksvarchar(30)YesNULL备注3.5 本章小结总体设计,即对有关系统全局问题的设计,也就是设计系统总的处理方案,又称系统概要设计。总体设计在程序开发过程中处于重要地位,
42、因此,做好总体设计是重中之重的一件事。下面进行系统的详细设计。第四章 详细设计4.1 总系统介绍整个系统按功能性划分为四个主功能模块,分别是收支管理功能模块、账户管理功能模块、系统设置功能模块和显示图表功能模块。其中前两个功能模块实现的是系统的主要功能,后两者则辅助前两个功能模块工作。用户使用收支管理功能模块将个人财务信息存入系统,系统通过账户管理功能模块以账户的形式将信息整理;为了便于管理,在这两个功能模块中加入修改和删除功能。继续完善系统,加入系统设置功能模块和显示图表功能模块,提高用户的安全性与交互感。为了具体论述说明程序的运行流程,本章节将四个主功能模块细分为十二个子功能模块,将分别论
43、述它们的程序运行流程。4.2 功能模块详细设计4.2.1 增加收支功能增加收支功能是用户将自己的财务信息录入程序中的功能。要实现此功能,用户首先进入增加收支界面,将所有用户将要使用的输入框、日期选择对话框和选择下拉列表显示出来。其中,账户下拉列表和时间文本框不能只是在布局文件中设计出来,它们需要进行程序监听。账户下拉列表由于要显示数据库中保存的账户名称,所以系统要连接账户数据库,以循环的方式将信息一条一条导出到一个临时的数组中,直到导出完毕将信息一起显示在下拉列表中,等待用户选择。而时间文本框需要与日期选择对话框相连,在用户选择时间时跳出日期选择对话框,帮助用户准确显示时间。用户填写完收支信息后,按OK键