




已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Android的个人理财软件本科学生毕业论文论文题目:基于Android个人理财软件学 院:计算机科学技术学院年 级:2012级专 业:物联网工程姓 名:学 号:指导教师: 年 月 日摘要本次设计的目的是开发一款基于Android系统的理财软件,由于人们的生活水平的逐渐提高,人们更加重视对财产的管理和对资金的支配。所以十分有必要开发一款能够让人们清楚的了解自己的收入、支出和财产结构的软件。目前已有的理财软件都是针对利用闲置资金产生利润的软件,这些软件没有对用户的收入来源和资金支出方向的统计。不能让用户整体了解到自己手中资金的整体机构状况。通过软件记录每一笔收入和支出,每个月清楚掌握收入总额和收入结构,也能清楚了解支出总额和各项消费所占总支出比例帮助用户了解自己支出收入情况。提供预算功能,让人们能够有计划的控制自己的支出。该软件将提供主要几大大功能模块:支出记录、收入记录、存储账户管理,资金结构统计和支出预算。可以有利于建立个人财务规划,合理安排资金结构,在现实消费和未来的收益之间寻求平衡点,从而提高生活质量,现在移动手机对人们生活的影响极大,几乎人人都拥有一款智能手机,智能手机由于其方便携带,功能强大等优势深受人们的喜爱。在移动操作系统中android系统是市场占有率最高的系统,所以开发一个基于android系统的理财软件更方便人们的使用,覆盖人群更广,为人们带来更大的方便和利益。全套设计加扣3012250582关键词Android;个人理财;收支管理;Mysql;Servlet;IIAbstractThis design aims to develop a Android system management software based on the increase peoples living standard, people pay more attention to the property management and the disposal of funds. So it is very necessary to develop a can let people know what the income and expenditure of the property and structure of software. At present, the financial management software is based on the use of idle funds to generate profits of the software, the software on the users statistics no source of income and expenditure of funds in the direction of. Do not allow users to understand the whole into their own hands funds overall agency status. Through the software records every sum of income and expenses, every month clear grasp of total income and income structure, but also a clear understanding of total expenditure and the consumption accounted for the total proportion to help users understand their own income and expenditure situation. Provide budget function, so that people can control their spending plans. The software will provide several main function modules: greatly expenditure records, income records, storage account management, capital structure statistics and budget. Can be conducive to the establishment of personal financial planning, reasonable arrangement of capital structure, to seek the balance between real consumption and future earnings, so as to improve the quality of life,In the mobile operating system android system is the highest market share, so the development of a financial management software based on android system more convenient for people to use, the coverage is more wide, for people to bring more convenience and benefits.Key wordsAndroid;Personal finance;Budget management;Mysql;Servlet;III目录摘要IAbstractII前言4第一章 绪论51.1问题提出背景51.2现有系统存在的问题的分析51.3系统开发的目标与意义61.3.1系统开发的意义61.3.2系统开发的目的61.4可行性分析71.4.1技术可行性71.4.2经济上可行性71.4.3运行上可行性7第二章 需求分析82.1个人理财系统的现状分析82.1.1人们对理财的现状分析82.1.2理财流程分析82.1.3系统设计思想92.1.4系统设计分析92.1.5系统功能分析102.1.6个人理财系统的目标102.2系统开发环境与工具112.2.1开发工具的选择112.2.2数据库系统的选择112.2.3开发语言的选择122.3 基于Android技术的应用122.3.1 Android技术的发展简介122.3.2 C/S架构技术发展简介132.3.2本系统基于Android的C/S技术132.4开发本系统的意义142.5本文档编写的目的14第三章 个人理财系统概要设计153.1系统设计业务目标153.1.1系统设计目标概述153.1.2用户功能153.1.3系统技术性能要求163.1.4 UI设计要求163.1.5系统开发和用户环境要求173.2数据库设计要求173.3系统逻辑分层设计183.3.1视图层设计183.3.2控制层设计183.3.3业务层设计18第四章 个人理财系统详细设计194.1系统结构194.2程序逻辑194.2.1系统数据流图204.2.3系统E-R图234.2.3模块流程图244.3系统层级设计274.4数据库表逻辑结构设计294.4.1数据库的创建294.4.2数据库表介绍304.4.3数据库表结构及设计324.5 主要程序设计说明33第五章 个人理财系统测试395.1界面测试395.2功能测试395.3负载压力测试405.4兼容性测试405.5白盒测试415.6黑盒测试41第六章 开发中遇到的难点解决方法436.1 线程间消息传递探究436.2 android中事件传递机制的探究43第七章 参考文献46第八章 结论47第九章 致谢47第九章 附录483前言本论文的题目是基于Android的个人理财软件,致力于帮助人们理财,通过软件直接反映出个人财务收入结构,让人们深入了解收入支出结构并改善,有利于人们减少支出增加收入。市场上现有的理财软件都是针对于人们闲置资金管理使其产生收益,而没有一个软件帮助人们记录收支流水和财产记录等。所以开发一款好的记录类理财手机软件能够让人们合理的处理和运用自己的财务,让自己的钱财花费发挥最大的效果。让人们能够有计划的控制自己的支出。有效的运用钱财。记录自己每个账户中的存款,清楚掌握自己的财产分布。该软件将提供主要几大大功能模块:支出记录、收入记录、存储账户管理,资金结构统计和支出预算。可以有利于建立个人财务规划,合理安排资金结构,在现实消费和未来的收益之间寻求平衡点,从而提高生活质量。软件设计的思想是利用现有资源,先进的系统开发方案,充分保存用户所有的财务记录,让用户较少由于不方便的理财减少的不必要的损失。软件主要会包含流水记录、存储账户记录、图表统计、预算等功能。在技术上本系统基于android系统编程,android系统开源切兼容性强可以让软件覆盖人群更大,且开发语言为java语言,java语言也十分的成熟稳定,可以保证程序可以稳定运行。后端使用tomcat搭建能够快速的搭建使用的框架为MVC框架,让编程逻辑更加清晰明了,通过HTTP网络协议传输数据保证了数据的有效、安全的传输。第一章 绪论1.1问题提出背景随着人们生活水平的提高,人们更加重视对财产的管理,清楚的了解自己每个月的收入和支出对每个人来说都很重要。十年前,理财这个名词对于大多数人来说都还太陌生,大家会认为认为和自己无关,因为在那时看来我国无论是国民收入还是居民收入,都是处于一个相对比较低的水平,然而十年后的今天,我国的国民经济正在持续高速的增长,人民群众的收入逐渐攀升,人民消费水平提升.面对越来越多的收入和越来越多的消费.理财就变的至关重要了。自己各项收入所占总收入的比例直接可以反映出个人财务收入结构,深入了解收入结构并改善有利于增加个人收入。个人的每个月的各项支出直接反映资金流向,避免不必要的浪费,可以避免当月光族。随着个人理财被人们重视,利用科技让人们更方便的理财就变的更加重要。随着智能手机的日新月异改变了人们的生活,手机给人们的生活带来很大的便捷,打电话、搜新闻、听音乐、看电影电视、寻找出行路线等等。智能手机已经成为我们每个人日常生活的不可分割的重要组成部分。在智能手机市场上,android无论从出货量还是用户量都是市场占有率第一名,并且由于android的兼容性和开源性更受各大厂商的欢迎。所以十分有必要开发一款基于android系统的个人理财软件来方便人们的生活1.2现有系统存在的问题的分析目前已有的理财软件都是针对利用闲置资金产生利润的软件,这些软件没有对用户的收入来源和资金支出方向的统计。不能让用户整体了解到自己手中资金的整体机构状况。理财的层次分为:第一层是更有效的、更合理的去处理和安排运用个人财务,让自己的钱财花费能够发挥出最大的经济效果,从而达到最大限度的满足个人日常生活的目的。第二层是用剩余的资金去进行投资,使资金能够产生相对更佳的资金收益,也是达到了用钱赚钱的层次。第三层是从个人财务的角度进行人生更远的规划,利用自己现有的经济财务条件,最大限度地去提高自己的能力、人力资源、社会资源等等,为以后更好发展做准备。现有理财软件多是针对第二和第三层的开发。然而大多数人还停留在第一层的上面没有达到第二层,只有帮人们更好的运用和记录钱财才能让人们有更多的余钱,才能进一步更好的进行第二和第三层的理财。所以说第一层的用户量无疑是最大的。1.3系统开发的目标与意义1.3.1系统开发的意义通过软件记录每一笔收入和支出,每个月清楚掌握收入总额和收入结构,也能清楚了解支出总额和各项消费所占总支出比例帮助用户了解自己支出收入情况。提供预算功能,让人们能够有计划的控制自己的支出。有效的运用钱财。记录自己每个账户中的存款,清楚掌握自己的财产分布。第一是让人们合理的运用资金,形成积累财富的观念,更有激情和渴望的去创造财富,追求财富人生。第二是较好的把握收入和支出比例,形成滚雪球的效应。第三是帮主人们增强对现在和未来的计划性,该用的用,不该支出的不支出,养成理财习惯。软件还可以实时查看股票和理财产品的信息1.3.2系统开发的目的系统实现流水管理和账户管理,流水管理用来记录用户每一笔支出和收入,并记录时间,账户管理用于记录用户资产分布情况,如现金存款,银行存款等。并通过图表形式体现用户每种支出所占比例和存款类型比例等。提供预算功能,让用户可以有计划的控制一个月的支出和各个类别的支出。使资金充分利用,不闲置,提高生活质量,以最小的支出获得最大的效用。开发基于android应用,让用户可以方便快捷地通过软件对个人的收入、资产、负债等数据进行分析整理,并且可以通过软件来了解一些理财产品的信息,可以有利于建立个人财务的规划,合理安排个人资金结构,在当今消费和未来的资金收益之间寻求合理平衡点,从而提高个人生活质量1.4可行性分析1.4.1技术可行性系统基于android系统开发,用android view构建用户界面。利用MVC架构开发,使用HttpClient和后台进行交互。后台使用java语言开发,数据库使用mysql。Mysql有强大的数据存储和查询能力,java中有对应mysql调用的JDBC接口,能够对数据快速的、有效的、安全的进行处理。前端使用jsp显示数据和提供用户输入,服务端使用Tomcat搭建,用Servlet进行数据的接收和处理。前后台数据传输使用json传输,使用极其方便快捷并且节省用户流量。能够保证系统的稳定高效的运行。目前已经掌握java、android和Mysql数据的使用,并且使用过tomcat搭建过服务端,能够顺利完成开发1.4.2经济上可行性对于用户使用情况,如今人人都有手机且 android 系统市场占有率极高,程序占有手机硬件资源极小,安装成本较低。用户可以轻松访问系统并记录自己的财务情况,无需经济投入。对于程序的开发,由于程序使用的数据库是 mysq l,该数据库的使用是免费的,开发使用的工具 eclipse 也是免费版本,android 系统也是开源系统,无需大资金投入,只需一个云端服务器就可以运行该系统,云端服务器可以在阿里云上租用,成本较低,所有开发投入小,可行性高。1.4.3运行上可行性系统消耗内存小,几十M内存即可运行,几十M存储空间即可,数据库50M便可存储数据。目前服务器都有足够大的内存和存储空间可以供本系统使用,而且 Windows 系统和 Linux 系统都可以安装 mysql 数据库。第二章 需求分析2.1个人理财系统的现状分析2.1.1人们对理财的现状分析目前人们认为理财更多的是把剩余的钱进行投资和管理从而达到钱生钱的效果,而很少重视对资金的流入流出进行管理,殊不知管理好不必要的支出所能够剩下的钱甚至要比资金投资回报更大,而且只有更好的管理资金流向,才能节省下更多的可用资金才能拥有更多的钱去投资。当然也有人是重视个人资金流向管理的但是记录自己支出和收入大多是人脑记录或是纸质品记录,然而纸质品不便于随身携带,不能达到随手就记录的效果,而且又容易丢失。而且无法实现结构化的统计工作。不能一目了然的知道自己的支出够收入的总体情况。而人脑记录怎会出现漏检或记错的事情,而且长时间后便不会记得。所以使用理财系统能够更详细有效的记录。对预算控制的计算十分的复杂,要实时记录支出总额和计算预算剩余余额2.1.2理财流程分析1.支出记录:每次有支出时记录支出原因,金额,支出账户和时间等信息2.收入记录:每次有收入时记录收入原因,金额,收入账户和时间等信息3.账户统计:累加所有收入记录,统计总收入根据收入类型不同,统计每种类型所占比例,累加所有支出记录,统计总支出并根据支出类型不同统计每种类型所占比例。4.支出预算:根据个人收入和往月的支出提前指定支出预算。当月结余和个人总资产:通过总收入减去总支出计算出当月结余。并通过每个存储账户余额统计个人总资产,并计算每种资产所占比例5.投资理财:将剩余的可用资金进行投资,争取得到更多的利息和资金收入。2.1.3系统设计思想1.利用现有资源,先进的系统开发方案,充分保存用户所有的财务记录,让用户较少由于不方便的理财减少的不必要的损失2.系统满足用户需求,例如用户的登录,注册,记录流水,增加/修改存储账户信息,查询,统计,删除等操作3.系统具备数据库可维护功能,可扩展性强,能够实时根据用户需求进行数据的添加、删除、修改等操作4.可以设定当月预算和各个类别的支出总额,并实时显示预算剩余金额,提醒用户节省支出5.可以查看更多适合理财产品或查看股票期货等理财产品的指数2.1.4系统设计分析本软件系统适用于所有需要理财的人士,其功能主要分为四大类1.流水记录:用于用户增加、编辑、删除支出/收入流水信息,记录流水的金额,发生时间,发生账户等2.存储账户记录:用于用户记录现有资产如现金、银行卡、支付宝、基金等,记录账户总金额3.图表统计:用于记录用户没有支出种类所占比例和用户存储账户没个比例4.设置功能:用于用户密码修改,账户类型的修改,流水类型的修改5.预算功能:提前设置当月预算,实时显示预算中剩余金额。6.理财产品查看:查看网上现有的理财产品和指数的等2.1.5系统功能分析本软件系统从使用功能上划分为以下几大模块:流水管理模块、存储账户管理模块、数据统计模块、基础设置模块。以下是对于各个子模块主要功能的说明流水管理模块:该模块用于记录用户流水,记录内容包括流水类别,金额,消费账户,时间等信息,每增加一个流水记录会对应更改存储账户中余额数据。存储账户管理模块:该模块用于记录用户所有存储账户如现金,银行卡,股票等。每个账户记录账户类型和余额,并且可以对数据进行增删改查数据统计模块:该模块用于统计流水中各个流水类型的支出或收入总额,并且计算出每个类型总额占总支出或收入的比例,并且通过饼状图的形式展现出来。还包含用户可以设置当月的预算,可以帮助用户做到更好的控制支出。基础设置模块:这个模块可以对流水类型进行编辑修改,还可以对账户类型进行编辑和修改。2.1.6个人理财系统的目标让记录生活日常花销、收入不在那么的琐碎和累心。跟解决了纸质品携带不方便容易损坏的问题,让人们更加方便的记录每一笔支出和收入。在对各项数据进行记录以后,可以让用户看到各类数据的统计,并保证数据的安全性、一致性和持久性。让用户可以有计划的控制一个月的支出和各个类别的支出,可以合理的安排资金。使资金充分利用,不闲置,提高生活质量。为用户提供流水记录、存储账户记录、收支统计、类别管理和查看股票和理财产品等功能。2.2系统开发环境与工具2.2.1开发工具的选择开发工具: Myeclipse(java开发工具), SQLyogent(数据库可视化软件) Android Studio (android开发工具) Dreamweaver(网页开发工具) Eclipse(android开发工具) Git(版本管理系统) 服务器软件: Tomcat(开源服务端系统)开发系统: Windows(服务端开发系统) Android (移动端系统)2.2.2数据库系统的选择本系统使用的是 mysql 数据库开发,因为mysql数据库是一个小型关系数据管理系统被广泛的应用于 internet 开发中,所以其安全性可以肯定,而且其体积小速度快,并且 mysql 是综合统一的,非过程化的系统,使用面向集合的操作方式,能够以一种语法结构提供给用户多种使用方式,使用语言简洁,容易学习容易使用。并且通过 SQLyogent连接 mysql 数据库可以进行可视化操作,提高编程速度,mysql中包含单表多表查询,嵌套查询,分组,建立视图,排序,实时记录时间等优势可以让数据管理更加方便。并且用java连接mysql数据库非常的简单,只要导入相应的工具包就可以使用对应的api对数据库进行增删改查,使后台的搭建更加快捷所以使用mysql数据库能够在保证程序高效运转的前提下大大的降低开发成本。客户端数据库使用的是 sqlite ,sqlite是android系统官方推荐使用的数据库,它是一款轻量级的数据库,遵循acid,目前广泛的使用在嵌入式产品中,占用资源极少,只需要几百k内存就可以,并且支持多系统多语言开发,其代码完全开放是一款开源的数据库,虽然它占用资源少但是在功能上不亚于任何数据库,功能强大,所有在android开发中使用sqlite数据库是在合适不过了。2.2.3开发语言的选择本系统客户端是用android语言开发,android是基于Linux内核的软件平台和操作系统,由Google开发。android系统在移动端的市场占有率是第一名,用户量十分大。android本身是一个开源的系统,是一款完全免费的智能手机平台,有强大的兼容性,可以安装在很多不同的机型上。系统包含搜索消息、拨打电话,发送短信,查看天气预报、微信、游戏、娱乐、地图等均一应俱全,在应用方面android系统拥有其它系统无可比拟的优势。本系统后台采用java语言开发,java是一个面向对象编程语言,有良好的封装性,安全性,多线程,并且其强大的跨平台的特性。很多大型公司后台开发都使用java,其功能强大运行效率高,在执行大量计算时速度快,在执行大量并发时稳定性强。2.3 基于Android技术的应用2.3.1 Android技术的发展简介Android是基于linux系统的一个开源嵌入式操作系统。由谷歌公司成立的开放手持设备联盟持续开发中,主要用于手机和平板当中。目前android已经发布的最新版本为Android6.0.1。Android系统最初开发的目的是为了给数码相机制作一个操作系统,最初android系统由安迪鲁宾(Andy Rubin)等人合作开发制作 ,后来由于智能手机市场的飞速成长,并且由于android强大的兼容性很快就占领的移动手机市场,Android成为了一款主流智能手机的操作系统。由于android系统是用java语言开发使得很多java语言开发工程师可以更容易的上手android编程,更多的开发人员加入了于2005年8月被Google收购。2007年11月,Google与84家制造商、开发商及电信营运商成立开放手持设备联盟,并且来共同研发和改良Android系统,随后,Google免费开放了Android的原码,让生产商推出基于Android操作系统的智能手机,Android后来更渐渐的使用到平板电脑、电视及其他领域上。2.3.2 C/S架构技术发展简介 C/S(Client/Server)结构,即客户机和服务器结构。通过C/S可以充分利用服务端和客户端的硬件环境的优势,将任务合理的分配到客户端端和服务端来分别实现,这样可以降低两端之间的通讯开销和服务端一端的硬件消耗。目前大多数的手机应用软件系统都是使用这种形式的结构。 Client端和Server端常常分别处在距离非常远的的两台计算设备上,客户端程序的任务是将用户的要求和数据提交给服务端程序处理,再将服务端程序返回的数据,以某种特定的形式传输给客户端,由客户端处理之后显示给用户。服务端程序的任务是接收客户端程序提出的服务请求,进行相应的处理和计算,再将结果返回给客户程序进行用用户交互。C/S结构的优点是能充分发挥客户端硬件的计算能力,很多任务可以在客户端计算处理后再提交给服务器,该系统的优点是处理速度快,用户交互更流畅。2.3.2本系统基于Android的C/S技术由于在Android上B/S技术对硬件调用不是很方便,并且交互体验不是很好,并且本系统的调用频率很高不能总让用户重新登录和访问网页。所以本系统选用的是C/S架构来开发。用JavaWeb来搭建服务器端程序,Tomcat作为服务器端程序,mysql数据库存放用户数据,用Servlet+json来处理服务端和客户端数据处理。客户端使用HttpClient来和服务端进行数据传输处理,用Activity来搭建主窗口,用Fragment来显示不同的功能模块,SlidingMenu来显示功能菜单。这样既能保证用户随时随地可以记录账目,并且可以实时更新数据,并通过客户端将数据传输到服务端把数据进行持久化。就算用户更换手机也可以同步以前的支出和收入数据。2.4开发本系统的意义让人们可以通过软件记录每一笔收入和支出,每个月清楚掌握收入总额和收入结构,也能清楚了解支出总额和各项消费所占总支出比例。提供预算功能,让人们能够有计划的控制自己的支出。有效的运用钱财。记录自己每个账户中的存款,清楚掌握自己的财产分布。让人们合理的运用资金,形成积累财富的观念。较好的把握收入和支出比例,形成滚雪球的效应。增强对现在和未来的计划性,该用的用,不该支出的不支出,养成理财习惯。使资金充分利用,不闲置,提高生活质量,以最小的支出获得最大的效用。让用户可以通过软件对个人的收入、资产、负债等数据进行分析整理。可以有利于建立个人财务规划,合理安排资金结构。2.5本文档编写的目的本文档为定义项目的需求,以软件工程学的思想来组织管理并展开本次毕业设计课题的研究。为以后的系统的分析设计提供指导,并为系统的开发提供参考标准。本文档力求详细,清晰地表达项目需求、开发过程、系统层次和测试计划,以保证开发过程能够按着正确的方向进行。制定详细的功能需求有助于程序正常的开展开发,流程图、数据流图、er图等有主于打造结构清晰、易于理解、便于维护、可扩展性强的程序。有条理的测试分析,测试用例能够避免程序出现系统性风险,能够更全面的检验程序的稳定性和鲁棒性,保证程序开发成功后能够稳定的运行,提高可用性。 Android应用具体项目的确立是建立在各种条件、环境及需求之上的,通常情况下项目的开发与应用都要对项目需求有很高的理解,所以项目设计文档的编写十分重要,设计文档十分准确和详细在很大程度上决定着项目的建设成败,需要对系统之间的关系进行详细的设计分析说明。第三章 个人理财系统概要设计3.1系统设计业务目标3.1.1系统设计目标概述个人理财系统总体目标是建立一个先进的、高效、安全、可靠、便捷的应用于记录个人财务状况的信息化数据管理系统,该系统是基于c/s系统结构,即采用客户端和服务器模式编程。服务端由tomcat搭建,Servlet处理请求和处理数据。客户端用HttpClient来提交请求和处理服务器数据,用Activity和Fragment来显示数据和处理用户交互。为方便用户个人的理财功能,系统将分成多个模块开发,包含用户流水模块,存储账户模块,数据统计模块和基础设置模块。并根据不同的用户给予不同的权限来保证数据的安全性,并提供到月预算功能帮助用户控制支出。3.1.2用户功能本系统为用户提供多个功能模块,分别为流水模块、存储账户模块、数据统计模块、预算模块和基础设置模块。1.流水模块中包含着用户的所有消费和收入流水,用户可以对流水模块中的流水记录进行增删改查,用户可以记录流水发生时间,流水发生金额,流水类型等信息。2.存储账户模块中保存着用户所有资产账户,用户也可以对存储模块中账户进行增删改查,用户可以根据自己不同的资金账户进行记录,如银行卡金额,支付宝金额,股票金额等,可以一目了然的看出自己的资金分布和总资产的统计。3.数据统计模块中会显示用户的消费/支出总额和各类别支出占有的比例,软件会以图表的形式展现,根据不同类型的消费进行分类和占比的计算展现饼状图和条形图,根据收入来源进行分类和计算,根据资金账户分布进行图表的展示。4.预算模块中保存用户设置的当月支出预算,基础设置模块中用户可以更改密码、修改用户名、修改头像、修改流水类型、修改账户类型等基础设置。5.理财产品模块中将会展示用户关注的一些股票的实时走势和展示一些推荐的理财产品。3.1.3系统技术性能要求个人理财系统的技术总体目标是应用计算机知识和数据技术为个人理财提供、先进、开放、可靠、高效、可用的信息化服务,具体技术上将达到以下要求1.先进性:采用先进,成熟的计算机技术,保障嘴阀限度的适应今后技术和业务发展的需要。软件结构应能够实现模块化、层次化、可维护、可扩展、统一规范。2.开放性:系统的网路体系架构将支持多种通讯协议、数据库,支持多中不同类型的手机,支持不同尺寸的屏幕显示。3.可靠性:保证系统的稳定性和数据的可靠性,保证本地备份数据和实时数据的一致性,数据不损失,并且发生重大事故时,备份数据可在短时间内恢复。4.可用性:系统应安装简单,易于操作、界面友好、数据处理工作简单、方便、款姐、业务流程清晰、符合用户习惯、数据备份和恢复简单5.安全性:系统应拥有数据加密、密码加密、传输加密、用户身份确认、用户权限认证、记录日志等安全功能。用户验证采用基于MD5加密的用户验证访问,并且定期备份数据库以防止系统故障时及时的恢复和维护3.1.4 UI设计要求UI设计师系统具有良好的可用性的一个重要因素,UI设计应方便简约,具备良好的导航性。页面设计风格统一,体现美观、简约、现代等设计理念。因此UI设计遵循以下原则:界面友好、美观、大方。信息显示一目了然。简约的风格,能够突软件出功能,突出重点,便于用户操作与查找相关内容.良好的扩展性,易于在将来的运营过程中增加或消除功能模块或内容。UI界面要包含滑动切换页面的效果,包含底部菜单选项。当用户执行滑动操作时切换页面的同时要改变对应的菜单选项的选取状态,当用户点击菜单选项时也要切换对应的页面。界面添加侧滑栏菜单,当用户在屏幕左端进行滑动操作时打开侧边栏。首页显示用户名和用户头像等。3.1.5系统开发和用户环境要求开发环境: 操作系统:win7(64位),Android5.0系统开发工具: myeclipse,Dreamweaver,photoshop,Android Studio数据库系统: Mysql6.0,Web服务器:Tomcat7.0Cpu: Intel Pentium(R) 4 2.8CHz,内存:4G用户环境: 操作系统:Android2.0以上版本,推荐使用:Android5.03.2数据库设计要求数据库设计应具有合理性和数据访问高效性,同时便于阅读和理解数据库的结构,以提高数据共享的质量和效率所以数据库的设计应满足几种设计范式要求第一范式:数据库第一范式设计思想是数据库每一列都是不可分割的基本数据项,同一列中不能有多个值并且不能有重复的属性.第二范式:要求数据库表中的每个实例或行必须可以被唯一的区分,所以属性列应有主键且要求实体属性完全依赖于主关键字。不能存在仅仅依赖主部分关键字的属性第三范式:要求一个数据库表中除了外键以外不包含已在其他表中已包含的字段信息。即属性不依赖于其他非主属性。3.3系统逻辑分层设计3.3.1视图层设计视图层通过Android view显示的形式,把信息转达给用户。并且和用户进行交互,将用户的事件操作和输入内容传输给控制层进行处理,不同视图通过不同的显示,用来表达业务层的数据和状态信息。每个视图有一个更新操作。它当调用更新操作时,视图获得数据值,并用他们来更新显示。3.3.2控制层设计服务端控制层:通过客户端传输过来的请求和数据。控制层通过事件处理过程对客户端请求进行处理,并为每一个请求事件提供了相应的操作服务,把事件转化成对应的业务或数据响应的激发操作客户端控制层:通过用户的时间操作和输入的数据,将数据传输给业务从用于和服务器进行数据交换或者启动新的窗口并将数据处理后传输给下一视图窗口。3.3.3业务层设计服务端业务层:含了应用问题的核心数据,逻辑关系和计算功能,它封装了所需的数据,并将这些数据实现持久化,提供了完成问题处理的操作过程。控制层依据需要调用这些操作过程客户端业务层:主要用于处理客户端控制层传输过来的数据并将其打包封装向服务端发送相应请求。并接收服务端反馈回来的数据并将内容传送给客户端控制层,为控制层提供了与服务端进行数据交换的桥梁。第四章 个人理财系统详细设计4.1系统结构 4.2程序逻辑本系统从功能上划分为以下几大模块:流水管理模块、存储账户管理模块、数据统计模块、基础设置模块。以下是对于各个子模块的说明流水管理模块:该模块用于记录用户流水,记录内容包括流水类别,金额,消费账户,时间等信息,每增加一个流水记录会对应更改存储账户中余额数据。存储账户管理模块:该模块用于记录用户所有存储账户如现金,银行卡,股票等。每个账户记录账户类型和余额,并且可以对数据进行增删改查数据统计模块:该模块用于统计流水中各个流水类型的支出或收入总额,并且计算出每个类型总额占总支出或收入的比例,并且通过饼状图的形式展现出来。还包含用户可以设置当月的预算,可以帮助用户做到更好的控制支出。基础设置模块:这个模块可以对流水类型进行编辑修改,还可以对账户类型进行编辑和修改。还可以对用户进行管理如权限管理和密码管理等4.2.1系统数据流图下图表示了个人理财系统的数据流图,它主要表示为,用户进行查询和修改操作时会向系统提交操作单,系统处理以后将结果返回用户显示进一步解析系统可以得出第二层的数据流图,系统主要分为二部分,查询部分和管理部分,用户在执行查询操作的时候会向查询系统提交查询单,查询系统会根据用户提交的查询单的不同向流水表、账户表、预算表、类型表和统计表进行选择性访问,从而生产查询数据单返还给用户。用户在执行修改、删除、增加等操作的时候,会生成一个向管理系统提交一个修改单,系统会根据用户提交的修改单对流水表、账户表、预算表、类型表进行选择性修改,并且会生成修改统计单发给统计模块,让统计模块进行重新统计在分析第三层数据流查询系统可分为账户查询、流水查询、预算查询和统计查询,在进行账户查询生成账户查询单,系统会访问账户表生成查询数据单返还。进行流水查询时生成流水查询单系统会访问流水表生成查询数据单返回给用户,进行预算查询时系统会根据预算查询单去访问预算表。用户进行统计插叙时,会生成统计查询单提交给统计模块,统计模块会访问账户表和流水表,并根据类型表中的类型将数据进行统计。并生成统计数据返回给用户。修改模块的数据流图表示了用户当进行修改时会生成一个修改表,系统会根据修改表的不同进行不同处理,流水的增删改都会进行修改流水表,账户的增删改会访问账户表,类型的增删改回访问类型表,预算的修改会访问预算表。统计模块的数据流图表示了客户端在进行统计查询时会生成一个查询单,统计模块会访问流水表、账户表和类型表,并且会根据类型表中的类型对流水表和账户表进行归类和统计,并且生成统计单返回给客户端显示。4.2.3系统E-R图系统的主要实体是用户、流水记录和存储账户,用户实体包含id号,用户名,密码属性,和流水实体是一对多的记录关系,用户实体可以记录多条流水记录。用户和存储账户是一对多的拥有关系,一个用户可以拥有多个存储账户。流水记录拥有id号、存储账户id、流水类型、发生金额和发生时间属性。存储账户拥有所属用户id、账户名、余额属性。存储账户和流水记录是一对多的关系,多条流水记录可以由同一存储账户支出。4.2.3模块流程图查询流水功能流程图当用户查询流水时,先要验证用户是否登录如果没有登录就启动登录界面待用户登录后再执行其他业务,如果用户在客户端保存了登录状态则向服务器发送用户信息验证用户信息是否有效,如果无效则启动登录界面让用户重新登录,如果用户信息验证有效则根据用户信息访问数据库查询数据库中有关该用户的流水信息。如果数据获取成功则返回数据在显示页面显示,如果获取数据不成功则显示错误页面。 查询流水用户登陆?录?启动登录页否是获取用户信息请求服务器客户端接收响应用户有效?否返回无效用户是数据库有数据?否是显示错误页显示结果退出删除账户类型流程图在用户点击删除类别时弹出确认框让用户再次确认是否要删除,如果用户选择否则取消删除。如果用户选择确认则向服务器发送删除请求,服务器根据用户信息插叙用户是否有删除该数据的权限,如果没有权限则返回错误页面显示无权删除。如果有相应权限则访问数据库进行数据删除,如果删除成功则返回成功页面 ,如果删除不成功则返回错误界面。 删除成功?否是删除成功删除失败退出接收请求用户有删除权限?否是数据库删除类别弹确认框确认删除??否是请求服务器取消删除无权删除4.3系统层级设计系统逻辑主要分为四层:业务层,控制层,视图层,基础和实体类层基础和实体类层:实体类主要是将数据库中的表封装成类这样利于操作,基础类用于记录一些全局的静态变量了静态方法。com.jlhlyby.personalFinance.Util包中存放着用户状态、登录状态,数据库访问设置、全局静态变量、url地址等。com.jlhlyby.personalFinance.entity包中存放用户实体类、流水实体类,账户实体类、流水类型、账户类型等实体类,AccCount为存储账户类、AccType为账户类型实体、Detail为流水实体类、Type为流水类型实体类、user为用户实体类该层的构成如下 业务层:主要用于对数据库的操作,实现对数据的增删改查和统计的功能的方法,并供控制层调用,主要包含对账户、流水、用户、类型等数据进行操作的封装类,类中以Dao结尾的为接口类,以DaoImp结尾的为接口实现类,以biz结尾的为数据库操作类,Account Manager Dao为存储账户管理类,Acc Type Manager Dao为存储账户类型管理类,Detail Manager Dao为流水管理类,Diagram Manager Dao为预算管理类,Type Manager Dao为流水类型管理类,User Manager Dao为用户管理类,Add Account Post Biz是向数据库增加存储账户的操作类,Add Detail Biz是向数据库中增加流水的操作类,Change Account Post Biz是向数据库中更改账户的操作类,Delete Detail Biz是向数据库中删除流水数据的操作类,Get Main Data Biz是从数据库中获取首页数据的操作类,业务层主要构成如下 控制层:只要用于事件处理通过视图层反馈回来的用户操作调用不同的业务层方法来处理数据并把返回的数据给视图层进行显示,com.jlhlyby.personalFinancr.Web包中包含的是服务端处理客户端请求的类,Add Account Servlet 是接收处理客户端增加账户的请求的并返回处理结果,Change Detail Servlet是用于接收客户端修改某一条流水的请求,并返回修改结果。Delete Type Servlet 是主要处理客户端删除某流水类型数据的时候的请求,并且会将数据删除是否成功的结果返回给客户端。User Login Servlet和User Register Servlet分别是用于处理客户端用户登录和用户注册的操作。MyAccountServlet是用于当客户端要获取用户所有账户信息时会请求这个servlet,服务端会获取数据库中数据返回给客户端处理。layout包含客户端界面展示的布局,每一个XML文件对应一个activity的显示布局,activity_login是登录界面的布局,fragment_main是主界面布局。Account_list_item是账户信息显示的listview中的item布局,activity_change_detail是当更改流水类型的时候展示的布局样式,activity_register是用户注册的时候展示的布局样式,activity_more_setting是侧滑栏菜单的展示的布局样式.控制层主要构成如图 图1图2视图层:主要用于显示来自控制层传输过来的数据,并且把用户的操作和输入都传输给控制层,视图层主要构成图24.4数据库表逻辑结构设计4.4.1数据库的创建在创建数据库的逻辑表之前,首先需要创建数据库,创建数据库的方法有两种,可以在SQLyogend软件中直接添加也可以编写sql语句在控制台中输入创建,为了开发的快捷该系统使用前者方法进行创建,在创建数据库时严格的按着数据库建设规范和三个范式的约束来进行建设。第一步使用SQLyogend连接数据库 第二步创建数据库 第三步输入数据库名并设置数据库编码为utf-8 4.4.2数据库表介绍数据库主要分为五个表分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年探索融合共生的美好-可持续旅游洞察与实践白皮书-VISA
- 专题二十生命的思考(教学设计)-2024年七年级上册道德与法治部编版
- 班本课程实施培训
- 高铁机务段检修工培训大纲
- 九年级数学上册 第二章 一元二次方程6 应用一元二次方程第1课时 利用一元二次方程解决几何问题教学设计 (新版)北师大版
- 三年级道德与法治下册 第四单元 我们的根在这里 11 最亲家乡人教学设计 苏教版
- 初中政治 (道德与法治)人教部编版八年级上册我与社会教案
- 人教部编版七年级上册走近老师第一课时教案
- 七年级生物上册 1.2.1探索生命的器教学设计 (新版)苏教版
- 防疫志愿者培训教材
- 人工挖孔桩施工监测监控措施
- 高三英语教研组建设(课堂PPT)
- 我国中学导师制的历程、现状及问题分析
- 中国民主同盟入盟申请表(样表)
- 安全带检测报告(共8页)
- 公司erp项目激励制度
- Excel函数和公式练习
- 国际石油合同讲座1018
- 某核电项目机械贯穿件安装施工管理技术研究
- 基于单片机的接触器控制器设计
- 50t汽车吊性能表
评论
0/150
提交评论