1、第 1 页 (共 19 页)本科毕业论文(20 届)家庭理财通管理系统系统设计与实现所在学院专业班级 信息与计算科学学生姓名指导教师完成日期第 2 页 (共 19 页)家庭理财通管理系统系统设计与实现摘 要:论文描述了系统的总体功能,系统主要包括以下几个模块:收入管理模块,包括收入金额、收入类别、收入账户、备注;支出管理模块,包括支出金额、支出类别、支出账户、备注;报表与数据管理模块,包括日期查询收支情况、对收支进行删 改。本家庭理财通管理系统的开发使用 Eclipse 作为开发平台,功能的实现使用 Java 语言,而后台的数据库则使用 SQlite 来管理整个家庭理财通管理系统的相关数据。
2、关键词:家庭;财通;Eclipse;Java;SQLiteAbstract:This thesis describes the systems overall function, It mainly consists of the following several modules:income manager module:including income sum,income type,income account,comments. expenditure manager module:expenditure sum,expenditure type,expenditure accoun
3、t,comments. Report and Data manager module:query by date,modify and delete.Financial manage system for the system design is based on Java language, the use of Eclipse as a development platform,Use these to the realization of the Financial manage system Construction. Net script and the background dat
4、abase using SQlite database management system of the entire fixed assets management background. Key words:Family ;Finance ;Eclipse ;Java ;SQLite 第 3 页 (共 19 页)1 绪论1.1 开发背景与实现价值1.1.1 开发背景随着经济和社会的高速发展,人们的生活水平越来越高,在当今社会对于每个家庭来讲,财务的管理变的越来越重要。家庭理财需求急剧增加,有关家庭理财的各种信息也成倍增长。面对庞大的信息量,有必要开发家庭理财通管理系统来提高家庭收支管理工作
5、的效率。通过这样的系统,可以做到信息的规范管理、科学统计和快速查询,从而减少管理方面的工作量。家庭理财通管理系统能为家庭收支提供一个专业管理家庭收支理财的模式。1.1.2 实现价值家庭财务通管理系统是专门为一般家庭的财务管理所设计服务的,是每个家庭都该拥有的一款软件。本系统具有界面清晰、操作简易、等特点,考虑到人们的一些操作习惯,提高了其的可操作性,完全能够满足你的需求。作为手机应用APP 的一部分,使用手机应用 APP 对家庭的各项事务进行管理,具有手工管理所无法比拟的优点,其优势已非常明显。例如:查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大的节省浪费在处理家庭
6、事务上的时间,也是标志着一个家庭现代化,能够更好的融入社会。1.2 开发工具1.2.1 Eclipse Android 的上层应用程序是用 Java 语言开发,同时还需要基于 Dalvik 虚拟机,所以,Google 公司推荐使用主流的 Java 继承开发环境 Eclipse。只有 Eclipse 还不够,因为是使用 Java 语言进行开发,还应该有由 SUN 公司提供的 Java SDK(其中包括 JRE:Java Runtime Environment)。此外,Android 的应用程序开发和 Java第 4 页 (共 19 页)开发有较大区别的,所以还需要有 Google 提供的 And
7、roid SDK。同时,还需要在Eclipse 安装 ADT,为 Android 开发提供开发工具的升级或者变更,是 Eclipse 下开发工具的升级下载的工具。1.2.2 SQLiteSQLite,是一款轻型的数据库,是遵守 ACID 的关系型数据库管理系统,它包含在一个相对小的 C 库中。它是 D.RichardHipp 建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百 K 的内存就够了。它能够支持Windows/Linux/Unix 等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl 、C#
8、 、 PHP、Java 等,还有 ODBC 接口,同样比起 Mysql、PostgreSQL 这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。在 Eclipse中自带了 SQlite 数据库,适合于 Android 中小型项目的开发使用。2 数据库设计2.1 引言2.1.1 编写目的该文档是对于家庭理财通管理系统数据方面设计的要求,将作为对该工具在数据库设计阶段的设计输入。本文档的预期读者是: 设计人员 开发人员 项目管理人员 测试人员第 5 页 (共 19 页)2.1.2 背景该数据库属于 sqlite 数据库,适用于理财通 app 项目。理财通项目由普通用户群体提出需求,由
9、重庆师范大学毕业生罗春娥和周俊共同开发,该款软件可帮助个人以及家庭理清消费状况,达到理财的目的。说明:a. sqlite 数据库: Android 设备中轻量级的数据存储文件,文件以.db 结尾。b 项目提出者:罗春娥开发者:罗春娥、周俊用 户:广大家庭安装该软件和这个数据库的单位:广大用户均可安装此软件、这个数据库属于 Android 自带的轻量级数据库。2.1.3 定义APP:Application 的缩写Sqlite:Android 系统自带的轻量级数据库名称2.1.4 参考文献1 张海藩.软件工程导论. 清华大学出版社,2008 年 02 月2 梅尔 RetoMeier.Android
10、 高级设计. 清华大学出版社,2010 年 06 月2.2 外部设计2.2.1 标识符和状态数据库定义类:com.lz.utils.SQLiteHelper2.2.1.1 账户表:accounts(长时间有效)创建账户表字符串:String createAccount=“CREATE TABLE accounts(_id 第 6 页 (共 19 页)INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20) not null)“;标识符:_id:自增关键字 name:账户名2.2.1.2 类别表:categories (长时间有效)创建类别表字符串:S
11、tring createCategory=“CREATE TABLE categories(_id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(30) not null)“; 标识符:_id:_id:自增关键字 name:类别名2.2.1.3 收支表:money(长时间有效)创建收支字符串:String createData=“CREATE TABLE money(_id INTEGER PRIMARY KEY AUTOINCREMENT,type VARCHAR(2) NOT NULL,accountName VARCHAR(20) NOT
12、NULL,nums REAL NOT NULL,category VARCHAR(30) NOT NULL,remark varchar(200),year varchar(10) NOT NULL,month varchar(5) NOT NULL,date varchar(20) NOT NULL)“; 标识符:_id:_id:自增关键字 type:收入类型还是支出类型 accountName:账户名 nums:存储金额 category:存储类别 remark:备注year:年份 month:月份 date:日期2.2.2 使用它的程序访问此数据库的应用程序名称是家庭理财通,版本号是 1
13、.0。2.2.3 约定每次使用该数据库的时候都需要从 SQLiteOpenHelper 中获得获得可使用的数据库,如果涉及到系统版本更新需要数据库更新的时候需要在 SQLiteHelper 类中对 onUpgrade 方法中进行数据库表的更新操作。第 7 页 (共 19 页)2.2.4 专门指导无2.2.5 支持软件无2.3 结构设计数据库结构设计的好坏直接影响到家庭理财通管理系统的效率和实现的效果。合理地设计数据库结构可提高数据库存储的效率,保证数据的完整和统一性。E-R 模型直接从现实世界抽象出实体类型及实体间的联系,用 E-R 图来表示数据模型,本系统的 E-R 图如图 2-1 所示:图
14、 2-1 本系统 E-R第 8 页 (共 19 页)2.3.1 概念结构设计 标记(收入/支出)账户名称(9 月的期待) 收支人民币(元) 记录日期(2014/11/5)备注(这个月的生活用品消费)收支类别(工资、打车、娱乐)账户 类别账户书架 类别库2.3.2 逻辑结构设计 取数据money 表 categories 表拿出账本accounts 表_id INTEGER PRIMARY KEY AUTOINCREMENTaccountName( VARCHAR(20) )type ( VARCHAR(2) )nums( REAL )category ( VARCHAR(30) )remark
15、 ( varchar(200) )year( varchar(10) )month( varchar(5) )date( varchar(20) )_id INTEGER PRIMARY KEY AUTOINCREMENTname VARCHAR(30)name VARCHAR(20)第 9 页 (共 19 页)2.3.3 物理结构设计加载文件读取数据sd 卡 手机内存 2.4 运用设计2.4.1 数据字典设计type:收入类型还是支出类型,在添加数据的界面中单选按钮有收入和支出,如果 type 是”0”表示支出,如果 type 是”1”表示收入。accountName:账户名,在管理账户的时
16、候会为每一个账户编辑一个名字 nums:存储金额,在进行记账的时候输入的数据金额 category:存储类别,在管理类别的时候会为每一个类别编辑一个名字 remark:备注,记录每笔金额的时候会填写与该金额相关的备注事项year:记录当前数据的年份 month:记录当前数据的月份 date:记录当前数据相关的年、月、日等详细日期 2.4.2 安全保密设计由于 sqlite 的数据保密性本身比较高,同时为了方便后续的操作和家庭用户之间的操作,因此没有格外的数据保密设计。数据库db 文件 代码区第 10 页 (共 19 页)3 详细设计3.1 引言3.1.1 编写目的在需求分析、数据库设计、概要设计等之后需要进行详细设计,方便后面的编码。本文档的预期读者是: 项目经理 开发人员3.1.2 背景a 软件系统名称:家庭理财通管理系统;b 项目提出者:罗春娥开发者:罗春娥、周俊用 户:广大家庭用户3.1.3 定义列出本文件中用到的专门术语的定义和缩写词的原词组。3.1.4 参考资料1 张海藩.软件工程导论. 清华大学出版社,2008 年 02 月2 梅尔 RetoMeier.Android 高级设计. 清华大学出版社,2010 年 06 月3 W.Clay Richardso.Java 高级编程. 机械工业出版社 ,2006 年 06 月