

已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉纺织大学2014届毕业设计论文1. 引言1.1项目研究背景随着移动设备的迅速发展,特别是以基于android操作系统的移动设备占据了半壁江山,开发一款基于android系统的个人记账系统,不仅能很好的应用android系统的优势,可以在不同的小型手持设备上安装该软件。与此同时,手持设备的便于携带性也大大提高了软件的使用价值,不仅可以随时随地记账,还能从另一方面解决人们不善于管理个人财务的习惯,帮助大家实现自主理财.在4g通信即将来临的同时,移动设备上网速度大大提高,而基于android的移动记账能紧跟时代的步伐,将用户的数据联网进行同步和备份,实时保护用户数据的安全性。基于android系统手机的移动记账系统,设计清新,使用简单,在当前的高速发展的社会经济条件下,非常方便的帮助我们这一代不会理财的年轻人轻松实现自主理财,设计这样一款个人记账系统是非常有意义和利用价值的。1.2目前国内外发展状况自google公司宣布android系统上市以来,在短短几年之间的到了飞速的发展。在国外已经有很多已经非常成熟的技术进行基于android平台下的软件开发。短短几年间,成千上万的基于android系统的应用发布在安卓市场上,加上android系统的开源性,使得他在国外的到了广大学者的深爱,各大厂商也纷纷加入到使用android系统的行列。android自09年进入中国市场以来,也得到了飞速的发展,大到成百上千人的大公司,小到几个人的个体公司都在使用android系统进行软件开发. 在这几年中,飞速的发展,现在已经超过了过去看似很完美的塞班系统,成为全球最大的手机及手持设备系统之一。android操作系统凭借着自己开放的平台允许任何移动终端厂商加入到android联盟中,从而使得越来越多的用户倾向于选择操作系统为android的终端设备。选择设计基于android平台的软件,毫无疑问能覆盖更多的受众,等到各大厂商的青睐。android平台的移动设备大有取代传统pc的趋势。而随着经济社会的高速发展,人们的生活水平也在飞速的提高,同时人们的收入和消费水平也得到了很大的提升,也从过去的单一输入和消费变成了今天的多元化收入和消费模式。而作为当今社会消费主力军的80,90后甚至是00后在生活水平不断提高的同时,理财的观念却不尽人意,不能很好的理财,这给我们的物质生活带来了不少的麻烦。尽管目前市场上已经出现了部分理财记账的软件,但是大多都过于专业化,作为普通的用户,使用起来并不方便,pc端的记账系统使用起来具有一定的局限性,无法随时的进行跨地域的使用。1.3项目解决的主要问题与实际的任务开发一款移动记账系统,是为了方便记录家庭的收入和支出的情况,从报表当中了解家庭的经济状况,为对将来的决策提供依据。同时对个人或小型个体企业也适用。移动记账的主要功能分为:记录收入支出,收支记录管理,数据分析,数据维护,备份恢复,预算设置。(1)记录收入支出此功能包括对收入和支出的记录功能,为最基本最重要的功能,用户可以设置收支便签。l 记录收入:用户记录收入信息,需要选择收入的金额,收入的账户,收入的成员,收入的项目,收入的时间,收入的类别,对于收入金额为0的情况不做记录,对于上述字段用户可以进行添加。l 记录支出:用户记录住处信息,需要选择支出的金额,支出的账户,支出的成员,支出的项目,支出的金额,支出的类别,对于金额为0的情况不做记录,用户可以添加自定义的字段。支出记录会响应的减少预算的余额。(2) 收支记录管理:该功能为本系统的重要的功能l 记录查询:系统默认为用户查询出本月的所有收入支出情况,用户可以根据时间(月份为单位),收入支出的属性如账户,项目,成员等进行分类查询。l 记录修改:用户可以对查询出来的数据进行修改,并行性保存,用户的修改时间将会被记录,用户修改支出金额和账户后,账户的余额以及预算的月会响应的改变,对收入的修改改变账户的余额。l 记录删除:用户可以对查询出的数据进行删除,删除后,会对账户的余额进行改变,删除支出信息,对应的账户会恢复到支出添加前的金额数,删除收入信息,对应的账户余额也会作对应的更改。l 记录筛选:用户可以根据具体的时间范围如周,月进行查询,同时可以设定筛选条件,如具体的成员,项目,收支类别,账户,同时可以根据金额的范围进行筛选。(3)数据分析:包括支出报表和收入报表l 支出报表:支出报表由支出类别,成员支出,项目支出,账户支出报表组成,用户根据时间和子报表类型进行报表查看,报表会显示所选报表的条目名称,支出的金额,以及百分比,以及总金额数。l 收入报表:收入报表由类别收入,账户收入,成员收入,项目收入组成,用户根据时间和收入报表的子报表类型进行查看,报表会显示所选的报表的条目名称,收入的金额,已经百分比,以及总金额数。(4).数据维护:数据维护包括对用户自定义账户类型、家庭成员、项目,收入类型,支出类型的设置,以及清空数据,导出excel。l 账户类型,家庭成员,项目,收入类型,支出类型的设置。用户可以修改系统的类型,自定义类型并进行修改删除,当进行删除自定义的类型时,对应的记录项将有“其他”来代替。l 清空数据:用户选择清空数据,将会使数据回到初始化状态,收支信息全部删除,系统自定义的“项目”,“收入类别”等将保留,其他由用户自定义的数据将会删除,预算和账户金额也会清零。l 导出excel:用户选择导出excel,将会根据时间戳命名对应的excel文件,文件存放在系统定义的路径下。(5). 备份恢复:备份包括网络备份和离线备份。l 网络备份:该功能需要用户所设备联网,并且注册百度账号,用户注册并登陆授权后,尽可以对数据进行备份和同步。用户在线备份时,会将db文件上传至百度云,同步至本地时会将数据域本地db文件合并。l 离线备份:利用备份用户可以进db文件导出到系统设定的路径,用户通过导出数据进行数据备份,也可以导出到sdcard后,放进其它手机的该系统中导入,做到数据合并。(6).预算设置:该功能提供对各种支出的预算,每增加一个支出类别,会对应的增加该支出的预算,预算的初始值为0,没删除一个支出类别,对应的支出也会删除.1.4用户的特点 本系统针对的用户为使用操作系统为android的移动设备的用户。客户应基本具备手机操作以及手机键盘打字基础,对网络知识有一定的了解。2.背景知识2.1所用的主要技术2.1.1 xml文件布局布局是针对用户界面的一个activity的结构。它定义布局的结构并持有显示给用户的所有元素。在xml文件中声明ui元素。android提供了一个简单的xml词汇表,用来对应view类和子类。你能够在xml文件中声明应用程序默认的布局,包括将要在布局中显示的屏幕元素和属性。然后你能够在应用程序中添加代码在运行时来修改屏幕对象的状态,包括那些在xml文件中声明的属性。在xml文件中声明应用程序的ui的优点是它能更好的把应用程序的表现跟控制它们行为的代码分离。xml文件布局的ui在应用程序代码外部描述,这就意味着开发人员不用修改代码和重新编译就能够修改和调整ui。例如:能够给不同的屏幕方向、不同的设备屏幕尺寸、和不同语言创建xml布局文件。另外,在xml文件中声明布局使得更容易看清ui的结构,以便更容易调试问题。2.1.2 android的开发组件 android应用程序由一些零散的有联系的组件组成,通过一个工程manifest绑定在一起。在manifest中,描述了每一个组件以及组件的作用,图2-1是android的核心组件关系图,整体应有6个组件,它们是android应用程序的基石:图2-1android核心组建关系图(1) activities(活动):应用程序的显示层。每一个画面对应于你的应用程序,将会是activity类的扩展。activity使用views去构建ui来显示信息和响应用户的行为。一个activity通常展现为一个可视化的用户界面。(2) services(服务):android应用程序中不可见的“工人”。 service组件运行时不可见,但它负责更新的数据源和可见的activity,以及触发通知。它们常用来执行一些需要持续运行的处理,当你的 activity已经不处于激活状态或不可见。service没有用户界面,但它会在后台一直运行。(3) content(内容):提供共享的数据存储。content provider(内容提供器)用来管理和共享应用程序的数据库。在应用程序间,content provider是共享数据的首选方式。(4) intents(意图):简单的消息传递框架。使用intent,你可以在整个系统内广播消息或者给特定的activity或者服务来执行你的行为意图。系统会决定那个(些)目标来执行适当的行为。(5) broadcast receivers(广播接收器):intent广播的“消费者”。通过创建和注册一个broadcast receiver,应用程序可以监听符合特定条件的广播的intent。broadcast receiver 会自动的启动你的android应用程序去响应新来的intent。broadcast receiver是事件驱动程序的理想手段。(6) notifications(通知):用户通知的框架。notification用来在不需要焦点或不中断它们当前activity的情况下提示用户。它们是service或 broadcast receiver获得用户注意的首选方式。2.1.3百度个人云存储pcspcs(personal cloud storage, 个人云存储)是百度2012年推出的针对个人数据的云存储服务。开发者可以利用pcs的开放接口存储用户个人数据,进而使开发者能够以最低的成本、最高的效率开发运营用户产品。如图2-2是百度pcs结构示意图。图 2-2百度pcs结构示意图通过使用pcs服务,开发者无需考虑设计复杂的海量存储系统,可以在百度的平台上借用5亿用户和数据来快速开发出有创意的应用。开发者无需考虑用户存储相关的细节,把更多的精力花在业务逻辑和用户体验等方面,利用pcs接口,打通应用之间的数据,实现更加强大的功能:(1) 大容量, 用户存储初始空间高达15g(2) 很简单, 标准的rest api(3) 很容易, 提供了基于不同语言的丰富sdk(4) 很强大, 支持文件分享、搜索等功能。(5) 很安全, 采用https,支持oauth2(6) 很稳定, 百度有在分布式存储方面的优势2.1.4android mvc模式mvc (model-view-controller):m是指逻辑模型,v是指视图模型,c则是控制器。使用mvc的目的是将m和v的实现代码分离,从而使同一个程序可以使用不同的表现形式,而c存在的目的则是确保m和v的同步,一旦m改变,v应该同步更新.mvc好处:从用户的角度出发,用户可以根据自己的需求,选择自己合适的浏览数据的方式。从开发者的角度,mvc把应用程序的逻辑层与界面是完全分开的,最大的好处是:界面设计人员可以直接参与到界面开发,程序员就可以把精力放在逻辑层上。在eclipse工具中开发android采用了更加简单的方法,设计人员在droiddraw中设计界面,以xml方式保存,在eclipse中直接打开就可以看到设计人员设计的界面,如图2-3是androidmvc的结构示意图。图2-3androidmvc结构图android中界面部分也采用了当前比较流行的mvc框架,在android中:(1)视图层(view):一般采用xml文件进行界面的描述,使用的时候可以非常方便的引入。当然,如何你对android了解的比较的多了话,就一定可以想到在android中也可以使用javascript+html等的方式作为view层。(2)控制层(controller):android的控制层的重任通常落在了众多的activity的肩上,这句话也就暗含了不要在activity中写代码,要通过activity交割model业务逻辑层处理,如果耗时的操作放在这里,程序就很容易被回收掉。(3)模型层(model):对数据库的操作、对网络等的操作都应该在model里面处理,当然对业务计算等操作也是必须放在的该层的。就是应用程序中二进制的数据。在android sdk中的数据绑定,也都是采用了与mvc框架类似的方法来显示数据。在控制层上将数据按照视图模型的要求(也就是android sdk中的adapter)封装就可以直接在视图模型上显示了,从而实现了数据绑定。比如显示cursor中所有数据的list activity,其视图层就是一个list view,将数据封装为list adapter,并传递给list view,数据就在list view中现实。2.2 开发平台特点2.2.1jdk开发软件java development kit (jdk) 是太阳微系统针对java开发人员发布的免费软件开发工具包(sdk,software development kit)。jdk 1是整个java的核心,包括了java运行环境、java工具和java基础类库。2006年太阳微系统宣布将发布基于gpl协议的开源jdk,使jdk成为自由软件。jdk 是整个java的核心,包括了java运行环境,java工具和java基础的类库2.2.2数据库软件sqlitesqlite,是一款轻型的数据库,是遵守acid的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百k的内存就够了。它能够支持windows/linux/unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 tcl、c#、php、java等,还有odbc接口,同样比起mysql、postgresql这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。sqlite第一个alpha版本诞生于2000年5月。不像常见的客户-服务器范例,sqlite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接api调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。2.2.3 集成开发工具eclipseeclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由eclipse项目、eclipse工具项目和eclipse技术项目三个项目组成,具体包括四个部分组成eclipse platform、jdt、cdt和pde。jdt支持java开发、cdt支持c开发、pde用来支持插件开发,eclipse platform则是一个开放的可扩展ide,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。eclipse platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。2.2.4android 操作系统android是基于linux内核的操作系统,是google公司在2007年11月5日公布的手机操作系统,早期由google开发,后由开放手持设备联盟(open handset alliance)开发。android平台几大优势特色:(1) 开放性:在优势方面,android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到android联盟中来。(2) 挣脱运营商的束缚:在过去很长的一段时间,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从android上市,用户可以更加方便地连接网络,运营商的制约减少。(3) 不受任何限制的开发商:android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。(4) 无缝结合的google应用:从搜索巨人到全面的互联网渗透,google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而android平台手机将无缝结合这些优秀的google服务2.3本章小结本章主要介绍设计该系统所采用的技术和开发平台的特点的介绍,技术方面包括主流的android开发组件的特点介绍,以及页nvc技术等;开发平台列举了常用的开发软件包括等开发工具的简单介绍以及其特点。3.系统设计3.1系统功能模块设计移动记账系统的主要功能模块分为:记录收入支出模块,收支记录管理模块,数据分析模块,数据维护模块,备份恢复模块,预算设置模块。如图3-1是系统的功能模块图。图3-1 系统功能模块构图图3-2系统用例图如图3-2是系统总体用例图,系统的参与者为移动记账系统使用者,用例为记录支出收入,收支记录管理,数据分析,数据维护,备份恢复,预算设置。3.1.1 记录支出收入模块记录收入支出:此功能包括对收入和支出的记录功能,为最基本最重要的功能,用户可以设置收支便签,以便于用户进行收入或是消费的行为。图3-3是记录支出收入功能模块的用例图,下面是本模块的描述:(1) 记录收入:用户记录收入信息,需要选择收入的金额,收入的账户,收入的成员,收入的项目,收入的时间,收入的类别,对于收入金额为0的情况不做记录,对于上述字段用户可以进行添加。(2)记录支出:用户记录住处信息,需要选择支出的金额,支出的账户,支出的成员,支出的项目,支出的金额,支出的类别,对于金额为0的情况不做记录,用户可以添加自定义的字段。支出记录会响应的减少预算的余额。(3)本模块提供添加便签的功能,用户可以设计便签提醒用户进行消费或是收入图3-3 记录支出收入用例图3.1.2 收支记录管理收支记录管理:该功能为本系统的重要的功能。图3-4是收支记录管理功能模块用例图,下面是对泵模块的具体描述:(1)记录查询:系统默认为用户查询出本月的所有收入支出情况,用户可以根据时间(月份为单位),收入支出的属性如账户,项目,成员等进行分类查询。(2)记录修改:用户可以对查询出来的数据进行修改,并行性保存,用户的修改时间将会被记录,用户修改支出金额和账户后,账户的余额以及预算的月会响应的改变,对收入的修改改变账户的余额。(3)记录删除:用户可以对查询出的数据进行删除,删除后,会对账户的余额进行改变,删除支出信息,对应的账户会恢复到支出添加前的金额数,删除收入信息,对应的账户余额也会做对应的更改。(4)记录筛选:用户可以根据具体的时间范围如周,月进行查询,同时可以设定筛选条件,如具体的成员,项目,收支类别,账户,同时可以根据金额的范围进行筛选。图3-4 收支记录管理用例图3.1.3 数据分析数据分析:包括支出报表和收入报表。图3-5是数据分析功能模块的用例图,下面是对本模块的具体描述:(1)支出报表:支出报表由支出类别,成员支出,项目支出,账户支出报表组成,用户根据时间和子报表类型进行报表查看,报表会显示所选报表的条目名称,支出的金额,以及百分比,以及总金额数。(2)收入报表:收入报表由类别收入,账户收入,成员收入,项目收入组成,用户根据时间和收入报表的子报表类型进行查看,报表会显示所选的报表的条目名称,收入的金额,已经百分比,以及总金额数。图3-5 数据分析用例图3.1.4 数据维护 数据维护:数据维护包括对用户自定义账户类型、家庭成员、项目,收入类型支出类型的设置,以及清空数据,导出excel。如图 3-6 数据维护用例图,下面是对本模块的具体描述:图3-6 数据维护用例图(1)账户类型,家庭成员,项目,收入类型,支出类型的设置。用户可以修改系统的类型,自定义类型并进行修改删除,当进行删除自定义的类型时,对应的记录项将有“其他”来代替。(2)清空数据:用户选择清空数据,将会使数据回到初始化状态,收支信息全部删除,系统自定义的“项目”,“收入类别”等将保留,其他由用户自定义的数据将会删除,预算和账户金额也会清零。(3)导出excel:用户选择导出excel,将会根据时间戳命名对应的excel文件,文件存放在系统定义的路径下。3.1.5 备份恢复备份恢复:备份包括网络备份和离线备份。图3-7是备份恢复功能模块的用例图,下面是对本模块的具体描述:(1)网络备份:该功能需要用户所设备联网,并且注册百度账号,用户注册并登陆授权后,尽可以对数据进行备份和同步。用户在线备份时,会将db文件上传至百度云,同步至本地时会将数据域本地db文件合并。(2)离线备份:利用备份用户可以进db文件导出到系统设定的路径,用户通过导出数据进行数据备份,也可以导出到sdcard后,放进其它手机的该系统中导入,做到数据合并或是覆盖。图3-7 备份恢复用例图3.1.6 预算设置预算设置:该功能提供对各种支出的预算,每增加一个支出类别,会对应的增加该支出的预算,预算的初始值为0,没删除一个支出类别,对应的支出也会删除.图3-8是预算设置功能模块的用例图。图38-预算设置用例图3.2系统数据库设计3.2.1数据库整体设计本系统采用sqlite数据库,数据库名为graduateproject.db,数据库系统中包括9张数据表。如图3-9显示系统整体e-r图。图3-9系统er图该数据库有账户信息表、支出类别信息表、收入类别信息表、项目信息表、收入信息表、支出信息表、家庭成员信息表、默认用户信息表和预算表,其中预算表依赖于支出类别表,支出信息表分别依赖于账户信息表,支出类别信息表,项目信息表,项目信息表,家庭成员信息表,默认用户信息表,收入信息表分别依赖于账户信息表,收入类别信息表,项目信息表,项目信息表,家庭成员信息表,默认用户信息表。3.2.2 数据库表的设计【表名】: tb_inaccount【逻辑名称】:收入信息表【中文说明】:该表存储用户收入的信息,如金额,账户,类别等信息 表3-1收入信息表字段名字段类型主/外键是否可以为空说明idvarchar (32)pkn记录idmoneyfloatn收入金额account_idintegerfkn收入账户idinaccount_idintegerfkn收入类别idproject_idintegerfkn收入项目idfamily_member_idintegerfkn收入成员idusernamevarchar (20)fkn默认了用户名createtimelongn创建时间modifytimelongn修改时间commentvarchar (50)y备注【表名】: tb_outaccount【逻辑名称】:支出信息表【中文说明】:该表存储用户支出的信息,如金额,账户,类别等信息表3-2支出信息表字段名字段类型主/外键是否可以为空说明idvarchar (32)pkn记录idmoneyfloatn支出金额account_idintegerfkn支出账户idinaccount_idintegerfkn支出类别idproject_idintegerfkn支出项目idfamily_member_idintegerfkn支出成员idusernamevarchar (20)fkn默认用户名createtimelongn创建时间modifytimelongn修改时间commentvarchar (50)y备注【表名】: tb_inaccount_type【逻辑名称】:收入类别信息表【中文说明】:该表存储收入类别的信息,如名称,是否是系统定义表3-3收入类别信息表字段名字段类型主/外键是否可以为空说明idvarchar (32)pkn记录idnamevarchar(50)n收入类别名称createtimelongn创建时间modifytimelongn修改时间modifyboolean n是否为系统定义【表名】: tb_outaccount_type【逻辑名称】:支出类别信息表【中文说明】:该表存储指出类别的信息,如名称,是否是系统定义表3-4支出类别信息表字段名字段类型主/外键是否可以为空说明idvarchar (32)pkn记录idnamevarchar(50)n支出类别名称createtimelongn创建时间modifytimelongn修改时间modifyboolean n是否为系统定义【表名】: tb_project【逻辑名称】:收支项目信息表【中文说明】:该表存储收支项目的信息,如名称,是否是系统定义表3-5收支项目信息表字段名字段类型主/外键是否可以为空说明idvarchar (32)pkn记录idnamevarchar(50)n项目名称createtimelongn创建时间modifytimelongn修改时间modifyboolean n是否为系统定义【表名】: tb_family_member【逻辑名称】:收支家庭成员信息表【中文说明】:该表存储收支家庭成员的信息,如名称,是否是系统定义表3-6收支家庭成员信息表字段名字段类型主/外键是否可以为空说明idvarchar (32)pkn记录idnamevarchar(50)n成员名称createtimelongn创建时间modifytimelongn修改时间modifyboolean n是否为系统定义【表名】: tb_account_type【逻辑名称】:收支账户信息表【中文说明】:该表存储收收支账户的信息,如名称,是否是系统定义,金额表3-7收支家庭成员信息表字段名字段类型主/外键是否可以为空说明idvarchar (32)pkn记录idnamevarchar(50)n账户名称categoryvarchar(50)n账户类别名createtimelongn创建时间modifytimelongn修改时间modifyboolean n是否为系统定义【表名】: tb_account_type【逻辑名称】:收支账户信息表【中文说明】:该表存储收支账户的信息,如名称,是否是系统定义,金额表3-8收支账户信息表字段名字段类型主/外键是否可以为空说明idvarchar (32)pkn记录idnamevarchar(50)n账户名称categoryvarchar(50)n账户类别名createtimelongn创建时间modifytimelongn修改时间modifyboolean n是否为系统定义【表名】: tb_userinfo【逻辑名称】:用户信息表【中文说明】:该表存储用户的信息,如名称,用户名,联系方式,表3-9用户信息表字段名字段类型主/外键是否可以为空说明usernamevarchar (32)pkn用户名,唯一namevarchar(50)n用户姓名emailvarchar(50)n用户邮箱tellongn用户电话sexlongn用户性别特此说明,此表目前仅仅用于标志用户,暂无功能上的引用,设计此表是为了以后能够更好地扩展用户功能,获取自己的平台的用户。3.3界面设计3.3.1界面设计的原则在计算机软件技术中,用户界面已经发展成为一个重要的分支;在android手机上设计界面,要充分的利用屏幕的利用率,以便于能把数据充分的展现给用户。在设计界面的过程中遵循以下部分原则:(1)以用户为中心用户界面设计从中文层面上来讲,有用户才有后面的界面和设计。正如俗话所说的“以人为本”。本系统提供了相对较多的功能和操作,而屏幕的有限,因此,用户进入系统时,将使用频率更高的功能展现在首页,方便用户更快找到需要的功能。以用户中心为首要原则的app才能在浩如烟海的app中脱颖而出,成为用户的至爱。本原则贯穿了整个界面设计的原则。(2) 符合用户常用模式用户界面的设计应该是符合用户常用模式的,而不是简单的实现软件。通俗的来说:就是把本来很抽象的东西放到手机的设计上来符合人们在日常生活中的交流和使用方式。软件设计的越符合用户的需求,设计出来的app 就越优秀。通过大量的使用图标来辅助显示功能和菜单的意思,使用户能直观的分辨出说要选择的功能,更加便于系统和用户的交互。(3) 禁止水平滚动由于将导致非常恶劣的客户体验,尽可能禁止手机屏幕水平滚动操作,android手机屏幕的宽度十分有限,水平滚动容易来带及其不变的用户体验,根据大多数人的使用习惯,尽量减少水平滚动而多使用垂直滚动。(4) 便于点击用户所能接触到的屏幕大小有限,而且本系统的功能更多地是在点击和选择的过程中完成的,便于点击的界面极大的方便了用户的使用,节省用户的时间,同时带来良好的用户体验。button可以做的小一点,但做成切片的时候要切的大一点,给用户的手指与屏幕的接触的范围变的大一些。控件与控件之间的距离间隔要适中。间隔太大影响美观,太小容易产生误点击。以简洁,易用使用的形式排列空间和用户交互元素有助于用户花最少的精力来准确的进行触控操作。(5) 合理的布局不同的平台,有不同的布局风格。即使相同的平台上,布局也百花争艳。但是,总得来说布局应当合理。系统使用风格相同的顶部导航栏和底部导航栏,使用列表时,尽量使用统一的上、下、左、右、内、外边距使系统的界面显示更加的和谐和合理,也更加方便其他功能的扩展。(6) 适当的反馈当用户在系统里操作时,用户不仅仅要得到结果,不需要得知系统给予的操作相应。以及在漫长的操作进行中的实时状态。通过使用适当的过度效果给用户更好的体验,同时能让用户更加正确的把握系统的状态,防止用户因重复操作而带来意外的错误。(7) 简洁的表达信息当用户界面中的直接信息并且间接提供时,用户能够快速理解。因此,找出最重要的信息,用最简洁的语言描述,并且在最显著的位置展示。这样,用户就不用阅读过多的文字来判断信息对用户的价值。3.3.2主要界面设计系统界面,设计上采用了简约实用的风格。顶部和底部是统一的标题栏和导航栏,中间其余的空间用于显示列表内容。如图3-10是通用风格的界面实例。以下是对各功能部件的介绍:(1) 后退功能键。用于返回、取消等后退操作(2) 标题栏。用于说明当前界面的功能。(3) 导航栏。用于显示可以提供的功能。(4) 列表区域。显示主要内容,用户可以轻松使用手指上下滑动列表。图3-10通用风格的界面图例界面上的图形元素,简单如按钮、复杂如支持滑动的列表都是视图类(view)的子类。android 的图形用户界面是建立在一组存在嵌套关系的视图组件之上,通过组件的id可获得组件的实例,并可进行事件的响应监听和设置属性。3.4系统实体类设计本系统设计了10个实体类,如图3-11是系统的实例类图。系统实体类名称以及其具体的描述说明见表3-9。表 3-9 实体类信息表实体类名类的描述说明budget记录对应指出类别的预算family_member记录收支的成员信息account_type记录用户财产账户的信息inaccount_type记录收入类别的信息inaccount记录用户的收入信息ouaccount_type记录支出类别的信息outaccount记录用户的支出信息project记录收支项目的信息userinfo记录默认的用户信息searchconditon记录用户在筛选过程中的筛选条件图3-11系统实体类图3.5本章小结本章主要介绍系统的整体设计,主要包括系统功能模块的设计,系统数据库的设计、界面设计、以及系统所用类结构的设计。4. 系统详细设计及实现本模块根据本设计论文前面划分的模块进行具体的设计和实现,包括系统架构开发流程和程序结构图。4.1 系统架构4.1.1 系统的开发流程本系统以activity+layout.xml+model架构为基础,每一个模块的开发流程如下所示:(1) com.alan.graduateproject.bean中创建具体的javabean类(2) 在com.alan.graduateproject.dao中创建对应的数据访问接口类。(3) 对于较为复查的模块,在com.alan.graduateproject.service中创建对应的服务接口。(4) 在res目录下的layout目录中新建布局文件,初步确定界面的布局。(5) 在values中创建所需的字符资源,尺寸资源,菜单资源等。(6) 在com.alan.graduateproject.view中创建对应的activity用于显示界面。(7) 对于较为复杂的界面空间,需要在com.alan.graduateproject.adapter创建界面解析适配器类,同时创建相应的布局文件。(8) 在activity中获取布局界面生的空间,并进行事件监听,调用对应的model或是service进行过处理和数据库操作,将结果响应到activity界面中。4.1.2 程序结构图本系统源程序包的目录结构如图4-1所示,graduatproject为项目的名称,意思是毕业设计,也是项目的根目录。目录机构分为四个主要部分:(1)res目录包含以下几个部分:l drawable目录:用于存储.png、.9.png、.jpg等图片资源l menu目录:用于存放activity界面的菜单的文件。l layout目录:存放所有关于activity控件布局的文件。l values目录:存放的则是所有xml格式的资源描述文件(2)gen:该目录下的文件全部都是adt自动生成的,一般并不需要去修改,实际上该目录下只定义了一个r.java文件,该文件相当于项目的字典,为项目中用户界面、字符串、图片等资源都会在该类中创建其惟一的id,当项目中使用这些资源时,会通过该id得到资源的引用。(3) src目录包含如下几个部分:l com.alan.graduateproject:系统上下文类存放目录l com.alan.graduateproject.bean:用于存放数据的实体类的目录。l com.alan.graduateproject.dao:用于进行数据库操作接口的目录l com.alan.graduateproject.db:存放文件操作和数据库底层接l com.alan.graduateproject.service:存放部分系统服务的接口l com.alan.graduateproject.util:存放工具类目录l com.alan.graduateproject.view:存放视图界面类activity的目录(4) androidmanifest文件:该文件为应用程序的系统控制文件,其中对应用程序的权限、应用程序中activity、service等进行声明,同时还对程序的版本进行说明。图4-1 系统目录结构图4.2 功能设计4.2.1 记录支出收入设计负责记录支出收入信息,同时提供设置收支便签的功能。如图4-2是记录支出收入的流程图。记录支出收入功能为主页上的两个按钮,用户点击几个进入对应的操作界面,进行记录。收支便签位于首界面,用户点击即可进行编辑,并显示在便签中。图4-2 支出收入流程图记录收入支出信息时,需要用户输入金额,并选择时间,收支类型,收支账户,收支成员,收支项目等信息。在选择的过程中,用户可以进行了类别如收支类型,收支账户等的添加。图4-3是记录支出收入的顺序图。图 4-3 记录支出收入的顺序图4.2.2 收支记录管理设计负责收支记录的管理,包括记录的修改,删除,记录的查询和筛选,用户点击记录列表后进入具体的记录后,即可进行修改和删除,记录的查询会根据时间和具体的查询分组条件显示记录,如:根据账户查询时,会显示所有账户在时间段内的收支情况。如图4-4是收支记录管理流程图。记录的删除和修改会导致用户账户金额的改变,用户删除记录后,会在先前增加(减少)的账户上减少(增加)删除记录的金额数,如果用户修改记录的金额和账户,则会先减少(增加)原账户的金额,再在新账户上(增加)对应的金额。用户进行筛选时,需要选择具体的收支类别,收支账户,金额,时间等。如图4-5是收支记录管理顺序图。图4-4收支记录管理流程图图4-5收支记录管理顺序图4.2.3 数据分析设计负责对收支记录进行报表分析,用户需要选择时间报表的类别:收入报表和支出报表,再选择具体的子报表,如根据账户进行支出记录的报表。如图4-6是数据分析流程图。图4-6 数据分析流程图数据分析会根据选择的时间和报表类型查询数据库并进行数据的分析,分析指定时间段内的用户收入或是支出情况,以饼状图和列表的形式展现,如图4-7是数据分析的顺序图:图4-7数据分析顺序图4.2.4 数据维护设计负责对记账系统的数据进行维护,包括用户的账号,项目,收入类别,支出类别,家庭成员,以及数据库中数据的维护,如导出excel和清空数据。如图4-8是数据维护流程图。数据维护部分对于账户类型,收入类别,支出类别,项目类别,项目类别,家庭成员的维护分为两部分:(1) 系统提供的类型可以进行修改,但不能删除(2) 用户可以添加自定义类型,对于用户自定义的,用户可以进行删除和修改。图4-8数据维护流程图在清空数据时,数据记录中有一个字段,modify,类型为boolean,在sqlite的存储形式为0和1,当modify为1时表示该记录为用户自行添加,可以删除,当modify为0时,表示该记录为系统添加,无法删除,图4-9是数据维护中清空数据功能的顺序图:图4-9数据维护清空数据顺序图4.2.5 备份恢复设计备份恢复负责对数据库数据文件db的恢复和备份。如图4-10是备份恢复功能的流程图。(1) 网络备份恢复:用户需要登录自己的百度网盘账号,并进行授权,才可以将数据存入百度网盘并进行下载后与本地数据进行合并。(2) 本地备份恢复:用户可将db文件导出到sdcard,恢复时用户需要进db文件放入指定的恢复目录,方可进行本地的备份恢复,本地的恢复分为数据的覆盖和合并,选择覆盖,则sdcard卡中的db数据将会完全替换程序的数据,如果选择合并,则会先将数据进行本地化后与程序的数据进行合并。图 4-10备份恢复流程图用户在使用网络备份和恢复时需要登录百度账号,授权,只有在用户登录百度账号授权后,才能进行网络的备份和同步,用户备份后会在用户百度网盘的根目录中生成名为“我的应用数据”文件夹,其中会有“alanzhang”的文件目录,用于存放备份的db.文件。如图4-11是网络备份的顺序图。图 4-11网络备份顺序图4.2.6 预算设置设计预算设置对应用户的支出类别,用于增加一个类别,则会增加一个对应的预算,并可以进行设置预算的数量,用于进行支出后,预算的余额会响应的减少。如图4-12是预算设置流程图。图4-12预算设置流程图当跨月后,在没有进行预算设置前,但从数据库中读取本月预算时,结果为空,此时会根据支出列表在数据库中插入本月预算信息。下面代码更加清楚的描述了这个过程:用户只能设置预算的金额,无法进行删除,用户删除支出类别后对应的预算会被级联删除。4.3 本章小结本章对系统设计的每个模块的具体实现作了具体的介绍,包括1.实现某个模块所需的类和接口,以及其之间的依赖关系;2.实现该模块的顺序图;3某些核心模块的代码介绍;4.具体的实现流程图。5. 移动记账系统的测试5.1 环境测试移动记账系统的项目是在 eclipse 与 adt 插件下开发完成的,在同样的环境配置下启动项目进行测试将会是非常简单。只需在eclipse菜单中执行run命令,并选择android application,接下来就可以选择已连接计算机的真实的手机或者启动虚拟机作为系统运行的目标设备。如果选择的是真实的手机。则首先需开启设备的 usb 调试模式(设置-应用程序-开发-usb 调试),并用数据线连接到计算机。虽然几乎所有的测试任务都可以在虚拟机上完成,但是由真实硬件运行速度较快,系统的测试和演示都在真实的手机上进行,并由截图软件完成截图。下面是测试使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甲乙合作开公司合同范本
- 空调保养维修协议合同书
- 烟酒货架转让协议书模板
- 村委临时用工劳务协议书
- 瑜伽老师安全协议书范本
- 电力照明工程承包协议书
- 自制造跑车出售合同范本
- 空调排风管清洗合同范本
- 离婚房屋公证合同协议书
- 渔网机租赁合同协议范本
- 医院用电接入方案
- 专题:阅读理解30篇 八年级英语下期期末高频易错考点专练(人教版)带参考答案详解
- 景区游客服务中心物业服务策略
- 杭州转贷基金管理办法
- 2024年期贵州省毕节市数学七上期末检测试题含解析
- 2025年医疗健康集团公立医院管理人员招聘考试笔试试题含答案
- 《六分钟步行试验临床规范应用专家共识》解读
- 维瓦尔迪《The Four Seasons四季》【春】小提琴 钢琴伴奏谱
- 铁路文物保护管理暂行办法
- 有限空间作业安全告知牌及警示标志(共21页)
- 太乙救苦天尊说拔度血湖宝忏
评论
0/150
提交评论