《家庭理财通管理系统系统设计与实现毕业设计论文.doc》由会员分享,可在线阅读,更多相关《家庭理财通管理系统系统设计与实现毕业设计论文.doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 家庭理财通管理系统 系统设计与实现摘 要:论文描述了系统的总体功能,系统主要包括以下几个模块:收入管理模块,包括收入金额、收入类别、收入账户、备注;支出管理模块,包括支出金额、支出类别、支出账户、备注;报表与数据管理模块,包括日期查询收支情况、对收支进行删 改。本家庭理财通管理系统的开发使用Eclipse作为开发平台,功能的实现使用Java语言,而后台的数据库则使用SQlite来管理整个家庭理财通管理系统的相关数据。 关键词:家庭;财通;Eclipse;Java;SQLiteAbstract:This thesis describes the systems overall function
2、, 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 account,comments. Report and Data manager module:query by date,modify and delete.Financial man
3、age 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 database using SQlite database management system of the entire fixed assets management back
4、ground. Key words:Family ;Finance ;Eclipse ;Java ;SQLite 1 绪论1.1 开发背景与实现价值1.1.1 开发背景随着经济和社会的高速发展,人们的生活水平越来越高,在当今社会对于每个家庭来讲,财务的管理变的越来越重要。家庭理财需求急剧增加,有关家庭理财的各种信息也成倍增长。面对庞大的信息量,有必要开发家庭理财通管理系统来提高家庭收支管理工作的效率。通过这样的系统,可以做到信息的规范管理、科学统计和快速查询,从而减少管理方面的工作量。家庭理财通管理系统能为家庭收支提供一个专业管理家庭收支理财的模式。1.1.2 实现价值家庭财务通管理系统是专门
5、为一般家庭的财务管理所设计服务的,是每个家庭都该拥有的一款软件。本系统具有界面清晰、操作简易、等特点,考虑到人们的一些操作习惯,提高了其的可操作性,完全能够满足你的需求。作为手机应用APP的一部分,使用手机应用APP对家庭的各项事务进行管理,具有手工管理所无法比拟的优点,其优势已非常明显。例如:查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大的节省浪费在处理家庭事务上的时间,也是标志着一个家庭现代化,能够更好的融入社会。1.2 开发工具1.2.1 EclipseAndroid的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推
6、荐使用主流的Java继承开发环境Eclipse。只有Eclipse还不够,因为是使用Java语言进行开发,还应该有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的Android SDK。同时,还需要在Eclipse安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。1.2.2 SQLiteSQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.R
7、ichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。在Eclipse中自带了SQlite数据库,适合于Android中小型项目的开发使用。2 数据库设计2.1 引言2.1.1 编写目的该文档是对于家庭理财通管理系统数据方面设
8、计的要求,将作为对该工具在数据库设计阶段的设计输入。本文档的预期读者是:l 设计人员l 开发人员l 项目管理人员l 测试人员2.1.2 背景该数据库属于sqlite数据库,适用于理财通app项目。理财通项目由普通用户群体提出需求,由重庆师范大学毕业生罗春娥和周俊共同开发,该款软件可帮助个人以及家庭理清消费状况,达到理财的目的。 说明:a. sqlite数据库:Android设备中轻量级的数据存储文件,文件以.db结尾。b 项目提出者:罗春娥 开发者:罗春娥、周俊 用 户:广大家庭 安装该软件和这个数据库的单位:广大用户均可安装此软件、这个数据库属于Android自带的轻量级数据库。2.1.3
9、定义APP:Application的缩写Sqlite:Android系统自带的轻量级数据库名称2.1.4 参考文献1 张海藩.软件工程导论. 清华大学出版社,2008年02月2 梅尔RetoMeier.Android高级设计. 清华大学出版社,2010年06月2.2 外部设计2.2.1 标识符和状态数据库定义类:com.lz.utils.SQLiteHelper2.2.1.1 账户表:accounts(长时间有效) 创建账户表字符串:String createAccount=CREATE TABLE accounts(_id INTEGER PRIMARY KEY AUTOINCREMENT,
10、name VARCHAR(20) not null); 标识符:_id:自增关键字 name:账户名2.2.1.2 类别表:categories(长时间有效) 创建类别表字符串:String 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
11、 INTEGER PRIMARY KEY AUTOINCREMENT,type VARCHAR(2) NOT NULL,accountName VARCHAR(20) NOT 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:存储金
12、额 category:存储类别 remark:备注year:年份 month:月份 date:日期2.2.2 使用它的程序 访问此数据库的应用程序名称是家庭理财通,版本号是1.0。2.2.3 约定 每次使用该数据库的时候都需要从SQLiteOpenHelper中获得获得可使用的数据库,如果涉及到系统版本更新需要数据库更新的时候需要在SQLiteHelper类中对onUpgrade方法中进行数据库表的更新操作。2.2.4 专门指导无2.2.5 支持软件无2.3 结构设计数据库结构设计的好坏直接影响到家庭理财通管理系统的效率和实现的效果。合理地设计数据库结构可提高数据库存储的效率,保证数据的完整和
13、统一性。E-R模型直接从现实世界抽象出实体类型及实体间的联系,用E-R图来表示数据模型,本系统的E-R图如图2-1 所示:图2-1 本系统E-R2.3.1 概念结构设计 标记(收入/支出) 账户名称(9月的期待) 收支人民币(元) 记录日期(2014/11/5) 备注(这个月的生活用品消费) 收支类别(工资、打车、娱乐) 账户 类别 账户书架 类别库2.3.2 逻辑结构设计 _id INTEGER PRIMARY KEY AUTOINCREMENTaccountName( VARCHAR(20) )type ( VARCHAR(2) )nums( REAL )category ( VARCHA
14、R(30) )remark ( varchar(200) )year( varchar(10) )month( varchar(5) )date( varchar(20) )_id INTEGER PRIMARY KEY AUTOINCREMENTname VARCHAR(30) 取数据 money表 categories表拿出账本name VARCHAR(20) accounts表2.3.3 物理结构设计数据库db文件代码区加载文件读取数据 sd卡 手机内存 2.4 运用设计2.4.1 数据字典设计 type:收入类型还是支出类型,在添加数据的界面中单选按钮有收入和支出,如果type是”0”
15、表示支出,如果type是”1”表示收入。 accountName:账户名,在管理账户的时候会为每一个账户编辑一个名字 nums:存储金额,在进行记账的时候输入的数据金额 category:存储类别,在管理类别的时候会为每一个类别编辑一个名字 remark:备注,记录每笔金额的时候会填写与该金额相关的备注事项 year:记录当前数据的年份 month:记录当前数据的月份 date:记录当前数据相关的年、月、日等详细日期 2.4.2 安全保密设计 由于sqlite的数据保密性本身比较高,同时为了方便后续的操作和家庭用户之间的操作,因此没有格外的数据保密设计。3 详细设计3.1 引言3.1.1 编写
16、目的 在需求分析、数据库设计、概要设计等之后需要进行详细设计,方便后面的编码。本文档的预期读者是:l 项目经理l 开发人员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月3.2 程序系统的结构3.3 添加
17、数据(AddData)设计说明从本章开始,逐个地给出各个层次中的每个程序的设计考虑。以下给出的提纲是针对一般情况的。对于一个具体的模块,尤其是层次比较低的模块或子程序,其很多条目的内容往往与它所隶属的上一层模块的对应条目的内容相同,在这种情况下,只要简单地说明这一点即可。3.3.1 程序描述添加数据子程序用于将收支数据添加到数据库中以便查询,保存的数据要常放于数据库中,属于子程序,每次打开界面添加数据都是一个新的数据序列,不可重入一样的数据,不建议几次插入的数据在值上都是一致的。3.3.2 功能管理 开始 账户 金额 收入 支出 类别 备注 结束保存数据3.3.3 性能 该程序只能保存当前日期
18、的数据,金额数据虽然没有限制精度但建议保留1位精度,该程序要求账户名/账户类别必须不能重名,如果重名,则需要判断并提示用户重新操作,当然也不能为空,否则没有意义。3.3.4 输入项 收支类型(type):字符串类型;”0”是支出,”1”是收入,通过手动单选选择。 输入金额(nums):字符串类型;可通过手动输入,这种输入只能输入整型数字,也可通过自定义计算器界面输入小数和整数。 账户(account)、类别(category):字符串类型;从列表中选择输入 备注(remark):字符串类型;手动输入,也可不输入此数据3.3.5 输出项 当前保存数据列表(itemList):账户(account
19、)、类别(category)、收支金额(nums)、当前日期(date)字符串类型。3.3.6 算法 计算器部分使用基本的加、减、乘、除法。3.3.7 流程逻辑本程序属于顺序逻辑,用户的每一个操作顺序都是不固定的。3.3.8 接口 上一层模块“账户选择”,接口是账户名:accountName。下一层模块“类别选择”,接口是账户名:accountName。两次参数的传递都是通过Intent传额外参数值,与本程序直接相关联的是”finance”数据库,accounts账户表,categories类别表。3.3.9 存储分配当保存数据时,将记录的收支类型、输入金额、账户、类别、备注、日期存到mone
20、y表中,选择账户的时候从账户表accounts中读入数据,选择类别的时候从类别表categories中读入数据。3.3.10 注释设计 本模块首部添加主要功能作用注释,收入、支出所代表的字符串注释,保存操作进行的数据列表显示和数据库操作注释。3.3.11 限制条件本程序限制只能插入今天日期的数据内容,限制数据记录只能保存五项数据,其它变量添加暂不能满足添加要求。3.3.12 测试计划需要测试金额数据通过计算器计算的准确性;需要测试保存数据后显示的数据列表是否和刚才添加的所有数据相同;需要测试显示历史数据界面中是否有当前插入的数据并保证数据的一致性和准确性。3.3.13 尚未解决的问题保证不同分
21、辨率的手机中界面显示的正常、保存除当日以外的其他日期收支数据、后台管理查看客户端的收支明细。3.4 账户详细数据查看(DetailData)设计说明从本章开始,逐个地给出各个层次中的每个程序的设计考虑。以下给出的提纲是针对一般情况的。对于一个具体的模块,尤其是层次比较低的模块或子程序,其很多条目的内容往往与它所隶属的上一层模块的对应条目的内容相同,在这种情况下,只要简单地说明这一点即可。3.4.1 程序描述账户详细数据查看子程序显示当前账户详细的记录数据内容,每个操作都要从数据库中取出数据显示,包括查看当前选择账户在每一个月的收入、支出、结余数据内容,还有一个月中已有记录日期的详细记录。添加数
22、据子程序用于将收支数据添加到数据库中以便查询,保存的数据要常放于数据库中,属于子程序,每次打开界面添加数据都是一个新的数据序列,不可重入一样的数据,不建议几次插入的数据在值上都是一致的,否则会出现差错。3.4.2 功能账户有记录日期账户当前月收入当前月支出当前月结余 开始该天收支数据列表 结束3.4.3 性能 该程序要求界面显示的完整性和数据显示的准确性,包括每个月的收入、支出、结余数据,每个月有数据记录那天的所有记录情况与实际输入的完全符合。该程序只能保存当前日期的数据,金额数据虽然没有限制精度但建议保留1位精度3.4.4 输入项 账户名(accountName):通过Intent的额外数据
23、传递,字符串类型 日期(date):通过系统获得,字符串类型 点击日期(chooseDay):通过函数getDay获得日期并转换成字符串类型 当前年(year)、月(month):年通过iMonthViewCurrentYear变量间接获得,月通过iMonthViewCurrentMonth变量间接获得3.4.5 输出项当前月结余(remain):字符串数据类型当前月收入(income):字符串数据类型当前月支出(pay):字符串数据类型选择日期的数据列表(itemList):ListView类型3.4.6 算法日历界面绘制算法略。根据具体条件查询数据库,query(where)。3.4.7
24、流程逻辑 本程序逻辑详见功能图,数据显示逻辑详见数据库查询相关代码。3.4.8 接口 与上一模块的接口是账户名accountName,通过Intent传递过来,没有下一层子模块,与本程序相关联的数据库表是money表,数据库是finance数据库。3.4.9 存储分配 本程序只有数据取部分没有数据存模块,数据的取根据功能需要,按条件取出显示。 3.4.10 注释设计 在程序模块添加该功能模块主要完成事情的注释;月结余、月收入、月支出等变量的注释;查询当前月数据的代码注释;查询选择日期的数据代码注释。3.4.11 限制条件 本程序运行显示数据限制选择的账户,且不能在当前界面更改显示账户,数据内容
25、的显示只能有当前月和之前时间的信息,且不能在当前界面添加数据记录。3.4.12 测试计划 需要测试每段数据显示的准确性;需要测试所有功能操作正常性;需要测试系统版本不一致功能和界面的正常性。3.4.13 尚未解决的问题 需要解决的问题是有可能当前界面显示内容太多,如:保证不同分辨率的手机中界面显示的正常、保存除当日以外的其他日期收支数据、后台管理查看客户端的收支明细。4结 束 语本家庭理财通管理系统在整个开发过程中使用Eclipse作为开发平台,利用Java语言对整个系统进行设计和实现。系统采用的后台数据库为Android自带的sqlite,该数据库在设计与开发的过程中起到了至关重要的作用,体
26、现了该数据库系统的强大便携的功能。完成整个系统,我们得到了很大的锻炼,从与系统相关技术的资料搜集和学习,可行性分析,需求分析,到架构设计,数据库设计,界面设计、详细设计,再到具体的编码和开发、辅助工具的使用,它涉及到了软件工程的方方面面。这次毕业设计让我们对开发一个工程有了更为深刻的认识和了解。在系统的设计和开发过程中,我们不断学习新的软件工程知识和开发技术,极大的提高了我的编程水平和开发能力。同时我们也深刻感觉到自己知识的不足,使得在开发过程中需要查阅各种资料并学习,现在已经能够比熟练和灵活的运用这些技术和方法。虽然该家庭理财通管理系统还存在着一些问题,但是该APP通过了比较系统的测试证明,
27、其实用性还是可以达到要求的,系统存在的问题由于时间不足以及我们的水平有限,没能够得到及时的解决,希望在以后的学习中可以找到解决的方法。根据现阶段理财的理念与要求,结合专业化的金融理财系统,本系统设计仍存在一些缺陷和不足,需要以后随着个人业务素质的提高,针对本系统还需加以完善修改的地方有:(1)家庭理财管理系统的界面设计并不是特别友好,主要是界面的布局不是非常的规范漂亮,以致该家庭理财管理系统在使用时不会给用户带来非常舒适、新颖的感觉。(2)功能不够齐全,仅提供日常的收支数据管理与统计,其实应结合现在的理财知识给出合理化理论建议,在很多细节上还有其不足之处和需要改善的地方。(3)在开发本系统的过
28、程中,明显暴露出自已对某些专业知识还需加强,比如说后台的管理我们还未涉及。通过本次毕业设计,我学到了很多东西,不管是编程方面还是设计方面,这次毕业设计是对我大学本科四年所学知识的一次综合能力的应用,让我深刻认识到了自己的不足,并不断的加强改进。在系统不断的完善改进中,我学到了很多新的知识,也懂得了很多。这使我对自己的未来充满了信心。致 谢经过短短几个月的设计与开发,家庭理财通系统在各位老师和同学们的热心帮助下基本开发完成了。在系统设计过程中,我查阅了有关Java和Android方面的图书、运用了在大学期间所学到的专业课知识,较好的解决了实际应用问题,建立了一个功能相对完备的理财系统。在这次的毕
29、业设计中使我得学习了比以前更多的知识,还学会将学习的多方面的知识综合运用,如何提高自己的学习能力和综合能力。首先非常感谢我的指导老师,是他给予了我们不少启发、指导和教诲。在完成本次毕业设计的过程中,我从指导老师冷剑老师身上学到了很多东西。他认真负责的工作态度,无论在工作上还是在生活中,都给予我们很大的帮助和影响,使我们的能力得到很大方面的提高。还要感谢在四年的学习期间,诸位老师的不断教导和勉励,让我不仅学到了新的知识和新的观念,更学到了老师们孜孜不倦的奋发精神,在学业即将完成之际,谨向各位老师致以最衷心的感谢和祝福。在设计期间我们也互相帮助,我们两个双胞胎搭档充分发挥各自的优势,积极主动的去完
30、成毕业设计。限于经验和水平,加之时间仓促,文章错误或疏漏之处在所难免,恳请各位老师和同学批评指正。最后,谨向百忙之中审阅论文和参加答辩的每一个老师表示由衷的谢意。参考文献:1 BruceEckel.Java编程思想. 机械工业出版社,2003年10月2 FLANAGAN.Java技术手册. 中国电力出版社,2002年6月3 孙涌.现代软件工程.北京希望电子出版社,2003年8月4 梅尔RetoMeier.Android高级设计. 清华大学出版社,2010年06月5付卉;移动学习系统的设计与开发D;华中师范大学;2005年6金新喜;移动学习在教师继续教育中的应用研究J;计算机教育;2007年21期7符易阳;周丹平;Android安全机制分析A;第26次全国计算机安全学术交流会论文集C;2011年8于涛;基于Android系统的移动学习平台设计D;西南交通大学;2012年第 17 页 (共 17 页)