《JSP新闻发布系统毕业论文.doc》由会员分享,可在线阅读,更多相关《JSP新闻发布系统毕业论文.doc(41页珍藏版)》请在课桌文档上搜索。
1、设计论文1. 引言1.1项目研究背景随着移动设备的迅速发展,特别是以基于Android操作系统的移动设备占据了半壁江山,开发一款基于Android系统的个人记账系统,不仅能很好的应用Android系统的优势,可以在不同的小型手持设备上安装该软件。与此同时,手持设备的便于携带性也大大提高了软件的使用价值,不仅可以随时随地记账,还能从另一方面解决人们不善于管理个人财务的习惯,帮助大家实现自主理财.在4G通信即将来临的同时,移动设备上网速度大大提高,而基于Android的移动记账能紧跟时代的步伐,将用户的数据联网进行同步和备份,实时保护用户数据的安全性。基于Android系统手机的移动记账系统,设计
2、清新,使用简单,在当前的高速发展的社会经济条件下,非常方便的帮助我们这一代不会理财的年轻人轻松实现自主理财,设计这样一款个人记账系统是非常有意义和利用价值的。1.2目前国内外发展状况自Google公司宣布Android系统上市以来,在短短几年之间的到了飞速的发展。在国外已经有很多已经非常成熟的技术进行基于Android平台下的软件开发。短短几年间,成千上万的基于Android系统的应用发布在安卓市场上,加上Android系统的开源性,使得他在国外的到了广大学者的深爱,各大厂商也纷纷加入到使用Android系统的行列。Android自09年进入中国市场以来,也得到了飞速的发展,大到成百上千人的大
3、公司,小到几个人的个体公司都在使用Android系统进行软件开发. 在这几年中,飞速的发展,现在已经超过了过去看似很完美的塞班系统,成为全球最大的手机及手持设备系统之一。Android操作系统凭借着自己开放的平台允许任何移动终端厂商加入到Android联盟中,从而使得越来越多的用户倾向于选择操作系统为Android的终端设备。选择设计基于Android平台的软件,毫无疑问能覆盖更多的受众,等到各大厂商的青睐。Android平台的移动设备大有取代传统PC的趋势。而随着经济社会的高速发展,人们的生活水平也在飞速的提高,同时人们的收入和消费水平也得到了很大的提升,也从过去的单一输入和消费变成了今天的
4、多元化收入和消费模式。而作为当今社会消费主力军的80,90后甚至是00后在生活水平不断提高的同时,理财的观念却不尽人意,不能很好的理财,这给我们的物质生活带来了不少的麻烦。尽管目前市场上已经出现了部分理财记账的软件,但是大多都过于专业化,作为普通的用户,使用起来并不方便,PC端的记账系统使用起来具有一定的局限性,无法随时的进行跨地域的使用。1.3项目解决的主要问题与实际的任务开发一款移动记账系统,是为了方便记录家庭的收入和支出的情况,从报表当中了解家庭的经济状况,为对将来的决策提供依据。同时对个人或小型个体企业也适用。移动记账的主要功能分为:记录收入支出,收支记录管理,数据分析,数据维护,备份
5、恢复,预算设置。(1)记录收入支出此功能包括对收入和支出的记录功能,为最基本最重要的功能,用户可以设置收支便签。l 记录收入:用户记录收入信息,需要选择收入的金额,收入的账户,收入的成员,收入的项目,收入的时间,收入的类别,对于收入金额为0的情况不做记录,对于上述字段用户可以进行添加。l 记录支出:用户记录住处信息,需要选择支出的金额,支出的账户,支出的成员,支出的项目,支出的金额,支出的类别,对于金额为0的情况不做记录,用户可以添加自定义的字段。支出记录会响应的减少预算的余额。(2) 收支记录管理:该功能为本系统的重要的功能l 记录查询:系统默认为用户查询出本月的所有收入支出情况,用户可以根
6、据时间(月份为单位),收入支出的属性如账户,项目,成员等进行分类查询。l 记录修改:用户可以对查询出来的数据进行修改,并行性保存,用户的修改时间将会被记录,用户修改支出金额和账户后,账户的余额以及预算的月会响应的改变,对收入的修改改变账户的余额。l 记录删除:用户可以对查询出的数据进行删除,删除后,会对账户的余额进行改变,删除支出信息,对应的账户会恢复到支出添加前的金额数,删除收入信息,对应的账户余额也会作对应的更改。l 记录筛选:用户可以根据具体的时间范围如周,月进行查询,同时可以设定筛选条件,如具体的成员,项目,收支类别,账户,同时可以根据金额的范围进行筛选。(3)数据分析:包括支出报表和
7、收入报表l 支出报表:支出报表由支出类别,成员支出,项目支出,账户支出报表组成,用户根据时间和子报表类型进行报表查看,报表会显示所选报表的条目名称,支出的金额,以及百分比,以及总金额数。l 收入报表:收入报表由类别收入,账户收入,成员收入,项目收入组成,用户根据时间和收入报表的子报表类型进行查看,报表会显示所选的报表的条目名称,收入的金额,已经百分比,以及总金额数。(4).数据维护:数据维护包括对用户自定义账户类型、家庭成员、项目,收入类型,支出类型的设置,以及清空数据,导出EXCEL。l 账户类型,家庭成员,项目,收入类型,支出类型的设置。用户可以修改系统的类型,自定义类型并进行修改删除,当
8、进行删除自定义的类型时,对应的记录项将有“其他”来代替。l 清空数据:用户选择清空数据,将会使数据回到初始化状态,收支信息全部删除,系统自定义的“项目”,“收入类别”等将保留,其他由用户自定义的数据将会删除,预算和账户金额也会清零。l 导出EXCEL:用户选择导出EXCEL,将会根据时间戳命名对应的EXCEL文件,文件存放在系统定义的路径下。(5). 备份恢复:备份包括网络备份和离线备份。l 网络备份:该功能需要用户所设备联网,并且注册百度账号,用户注册并登陆授权后,尽可以对数据进行备份和同步。用户在线备份时,会将db文件上传至百度云,同步至本地时会将数据域本地db文件合并。l 离线备份:利用
9、备份用户可以进db文件导出到系统设定的路径,用户通过导出数据进行数据备份,也可以导出到sdcard后,放进其它手机的该系统中导入,做到数据合并。(6).预算设置:该功能提供对各种支出的预算,每增加一个支出类别,会对应的增加该支出的预算,预算的初始值为0,没删除一个支出类别,对应的支出也会删除.1.4用户的特点 本系统针对的用户为使用操作系统为Android的移动设备的用户。客户应基本具备手机操作以及手机键盘打字基础,对网络知识有一定的了解。2.背景知识2.1所用的主要技术2.1.1 XML文件布局布局是针对用户界面的一个Activity的结构。它定义布局的结构并持有显示给用户的所有元素。在XM
10、L文件中声明UI元素。Android提供了一个简单的XML词汇表,用来对应View类和子类。你能够在XML文件中声明应用程序默认的布局,包括将要在布局中显示的屏幕元素和属性。然后你能够在应用程序中添加代码在运行时来修改屏幕对象的状态,包括那些在XML文件中声明的属性。在XML文件中声明应用程序的UI的优点是它能更好的把应用程序的表现跟控制它们行为的代码分离。Xml文件布局的UI在应用程序代码外部描述,这就意味着开发人员不用修改代码和重新编译就能够修改和调整UI。例如:能够给不同的屏幕方向、不同的设备屏幕尺寸、和不同语言创建XML布局文件。另外,在XML文件中声明布局使得更容易看清UI的结构,以
11、便更容易调试问题。2.1.2 Android的开发组件 Android应用程序由一些零散的有联系的组件组成,通过一个工程manifest绑定在一起。在manifest中,描述了每一个组件以及组件的作用,图2-1是Android的核心组件关系图,整体应有6个组件,它们是Android应用程序的基石:图2-1android核心组建关系图(1) Activities(活动):应用程序的显示层。每一个画面对应于你的应用程序,将会是Activity类的扩展。Activity使用Views去构建UI来显示信息和响应用户的行为。一个Activity通常展现为一个可视化的用户界面。(2) Services(服
12、务):Android应用程序中不可见的“工人”。 Service组件运行时不可见,但它负责更新的数据源和可见的Activity,以及触发通知。它们常用来执行一些需要持续运行的处理,当你的 Activity已经不处于激活状态或不可见。Service没有用户界面,但它会在后台一直运行。(3) Content(内容):提供共享的数据存储。Content Provider(内容提供器)用来管理和共享应用程序的数据库。在应用程序间,Content Provider是共享数据的首选方式。(4) Intents(意图):简单的消息传递框架。使用Intent,你可以在整个系统内广播消息或者给特定的Activi
13、ty或者服务来执行你的行为意图。系统会决定那个(些)目标来执行适当的行为。(5) Broadcast Receivers(广播接收器):Intent广播的“消费者”。通过创建和注册一个Broadcast Receiver,应用程序可以监听符合特定条件的广播的Intent。Broadcast Receiver 会自动的启动你的Android应用程序去响应新来的Intent。Broadcast Receiver是事件驱动程序的理想手段。(6) Notifications(通知):用户通知的框架。Notification用来在不需要焦点或不中断它们当前Activity的情况下提示用户。它们是Serv
14、ice或 Broadcast Receiver获得用户注意的首选方式。2.1.3百度个人云存储PCSPCS(Personal Cloud Storage, 个人云存储)是百度2012年推出的针对个人数据的云存储服务。开发者可以利用PCS的开放接口存储用户个人数据,进而使开发者能够以最低的成本、最高的效率开发运营用户产品。如图2-2是百度PCS结构示意图。图 2-2百度PCS结构示意图通过使用PCS服务,开发者无需考虑设计复杂的海量存储系统,可以在百度的平台上借用5亿用户和数据来快速开发出有创意的应用。开发者无需考虑用户存储相关的细节,把更多的精力花在业务逻辑和用户体验等方面,利用pcs接口,打
15、通应用之间的数据,实现更加强大的功能:(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
16、好处:从用户的角度出发,用户可以根据自己的需求,选择自己合适的浏览数据的方式。从开发者的角度,MVC把应用程序的逻辑层与界面是完全分开的,最大的好处是:界面设计人员可以直接参与到界面开发,程序员就可以把精力放在逻辑层上。在Eclipse工具中开发Android采用了更加简单的方法,设计人员在DroidDraw中设计界面,以XML方式保存,在Eclipse中直接打开就可以看到设计人员设计的界面,如图2-3是AndroidMVC的结构示意图。图2-3AndroidMVC结构图Android中界面部分也采用了当前比较流行的MVC框架,在Android中:(1)视图层(View):一般采用XML文件进
17、行界面的描述,使用的时候可以非常方便的引入。当然,如何你对Android了解的比较的多了话,就一定可以想到在Android中也可以使用JavaScript+HTML等的方式作为View层。(2)控制层(Controller):Android的控制层的重任通常落在了众多的Activity的肩上,这句话也就暗含了不要在Activity中写代码,要通过Activity交割Model业务逻辑层处理,如果耗时的操作放在这里,程序就很容易被回收掉。(3)模型层(Model):对数据库的操作、对网络等的操作都应该在Model里面处理,当然对业务计算等操作也是必须放在的该层的。就是应用程序中二进制的数据。在A
18、ndroid 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 de
19、velopment 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等等主流的操作系统,同时能够跟很多程
20、序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起MySQL、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。2.2.3 集成
21、开发工具EclipseEclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具
22、功能在哪里结束,而另一个工具功能在哪里开始。2.2.4Android 操作系统Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由Google开发,后由开放手持设备联盟(Open Handset Alliance)开发。Android平台几大优势特色:(1) 开放性:在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。(2) 挣脱运营商的束缚:在过去很长的一段时间,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从Android上市,用户可以更加方
23、便地连接网络,运营商的制约减少。(3) 不受任何限制的开发商:Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。(4) 无缝结合的Google应用:从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务2.3本章小结本章主要介绍设计该系统所采用的技术和开发平台的特点的介绍,技术方面包括主流的Android开发组件的特点介绍,以及页NVC技术等;开发平台列举了常用的开发软件包括等开发工具的简单介绍以及其特点
24、。3.系统设计3.1系统功能模块设计移动记账系统的主要功能模块分为:记录收入支出模块,收支记录管理模块,数据分析模块,数据维护模块,备份恢复模块,预算设置模块。如图3-1是系统的功能模块图。图3-1 系统功能模块构图图3-2系统用例图如图3-2是系统总体用例图,系统的参与者为移动记账系统使用者,用例为记录支出收入,收支记录管理,数据分析,数据维护,备份恢复,预算设置。3.1.1 记录支出收入模块记录收入支出:此功能包括对收入和支出的记录功能,为最基本最重要的功能,用户可以设置收支便签,以便于用户进行收入或是消费的行为。图3-3是记录支出收入功能模块的用例图,下面是本模块的描述:(1) 记录收入
25、:用户记录收入信息,需要选择收入的金额,收入的账户,收入的成员,收入的项目,收入的时间,收入的类别,对于收入金额为0的情况不做记录,对于上述字段用户可以进行添加。(2)记录支出:用户记录住处信息,需要选择支出的金额,支出的账户,支出的成员,支出的项目,支出的金额,支出的类别,对于金额为0的情况不做记录,用户可以添加自定义的字段。支出记录会响应的减少预算的余额。(3)本模块提供添加便签的功能,用户可以设计便签提醒用户进行消费或是收入图3-3 记录支出收入用例图3.1.2 收支记录管理收支记录管理:该功能为本系统的重要的功能。图3-4是收支记录管理功能模块用例图,下面是对泵模块的具体描述:(1)记
26、录查询:系统默认为用户查询出本月的所有收入支出情况,用户可以根据时间(月份为单位),收入支出的属性如账户,项目,成员等进行分类查询。(2)记录修改:用户可以对查询出来的数据进行修改,并行性保存,用户的修改时间将会被记录,用户修改支出金额和账户后,账户的余额以及预算的月会响应的改变,对收入的修改改变账户的余额。(3)记录删除:用户可以对查询出的数据进行删除,删除后,会对账户的余额进行改变,删除支出信息,对应的账户会恢复到支出添加前的金额数,删除收入信息,对应的账户余额也会做对应的更改。(4)记录筛选:用户可以根据具体的时间范围如周,月进行查询,同时可以设定筛选条件,如具体的成员,项目,收支类别,
27、账户,同时可以根据金额的范围进行筛选。图3-4 收支记录管理用例图3.1.3 数据分析数据分析:包括支出报表和收入报表。图3-5是数据分析功能模块的用例图,下面是对本模块的具体描述:(1)支出报表:支出报表由支出类别,成员支出,项目支出,账户支出报表组成,用户根据时间和子报表类型进行报表查看,报表会显示所选报表的条目名称,支出的金额,以及百分比,以及总金额数。(2)收入报表:收入报表由类别收入,账户收入,成员收入,项目收入组成,用户根据时间和收入报表的子报表类型进行查看,报表会显示所选的报表的条目名称,收入的金额,已经百分比,以及总金额数。图3-5 数据分析用例图3.1.4 数据维护 数据维护
28、:数据维护包括对用户自定义账户类型、家庭成员、项目,收入类型支出类型的设置,以及清空数据,导出EXCEL。如图 3-6 数据维护用例图,下面是对本模块的具体描述:图3-6 数据维护用例图(1)账户类型,家庭成员,项目,收入类型,支出类型的设置。用户可以修改系统的类型,自定义类型并进行修改删除,当进行删除自定义的类型时,对应的记录项将有“其他”来代替。(2)清空数据:用户选择清空数据,将会使数据回到初始化状态,收支信息全部删除,系统自定义的“项目”,“收入类别”等将保留,其他由用户自定义的数据将会删除,预算和账户金额也会清零。(3)导出EXCEL:用户选择导出EXCEL,将会根据时间戳命名对应的
29、EXCEL文件,文件存放在系统定义的路径下。3.1.5 备份恢复备份恢复:备份包括网络备份和离线备份。图3-7是备份恢复功能模块的用例图,下面是对本模块的具体描述:(1)网络备份:该功能需要用户所设备联网,并且注册百度账号,用户注册并登陆授权后,尽可以对数据进行备份和同步。用户在线备份时,会将db文件上传至百度云,同步至本地时会将数据域本地db文件合并。(2)离线备份:利用备份用户可以进db文件导出到系统设定的路径,用户通过导出数据进行数据备份,也可以导出到sdcard后,放进其它手机的该系统中导入,做到数据合并或是覆盖。图3-7 备份恢复用例图3.1.6 预算设置预算设置:该功能提供对各种支
30、出的预算,每增加一个支出类别,会对应的增加该支出的预算,预算的初始值为0,没删除一个支出类别,对应的支出也会删除.图3-8是预算设置功能模块的用例图。图38-预算设置用例图3.2系统数据库设计3.2.1数据库整体设计本系统采用SQLite数据库,数据库名为graduateproject.db,数据库系统中包括9张数据表。如图3-9显示系统整体E-R图。图3-9系统ER图该数据库有账户信息表、支出类别信息表、收入类别信息表、项目信息表、收入信息表、支出信息表、家庭成员信息表、默认用户信息表和预算表,其中预算表依赖于支出类别表,支出信息表分别依赖于账户信息表,支出类别信息表,项目信息表,项目信息表
31、,家庭成员信息表,默认用户信息表,收入信息表分别依赖于账户信息表,收入类别信息表,项目信息表,项目信息表,家庭成员信息表,默认用户信息表。3.2.2 数据库表的设计【表名】: tb_inaccount【逻辑名称】:收入信息表【中文说明】:该表存储用户收入的信息,如金额,账户,类别等信息 表3-1收入信息表字段名字段类型主/外键是否可以为空说明idVARCHAR (32)PKN记录IDmoneyfloatN收入金额account_idintegerFKN收入账户IDinaccount_idintegerFKN收入类别IDproject_idintegerFKN收入项目IDfamily_membe
32、r_idintegerFKN收入成员IDusernameVARCHAR (20)FKN默认了用户名createtimelongN创建时间modifytimeLongN修改时间commentVARCHAR (50)Y备注【表名】: tb_outaccount【逻辑名称】:支出信息表【中文说明】:该表存储用户支出的信息,如金额,账户,类别等信息表3-2支出信息表字段名字段类型主/外键是否可以为空说明idVARCHAR (32)PKN记录IDmoneyfloatN支出金额account_idintegerFKN支出账户IDinaccount_idintegerFKN支出类别IDproject_idi
33、ntegerFKN支出项目IDfamily_member_idintegerFKN支出成员IDusernameVARCHAR (20)FKN默认用户名createtimelongN创建时间modifytimeLongN修改时间commentVARCHAR (50)Y备注【表名】: tb_inaccount_type【逻辑名称】:收入类别信息表【中文说明】:该表存储收入类别的信息,如名称,是否是系统定义表3-3收入类别信息表字段名字段类型主/外键是否可以为空说明idVARCHAR (32)PKN记录IDnameVARCHAR(50)N收入类别名称createtimelongN创建时间modify
34、timelongN修改时间modifyboolean N是否为系统定义【表名】: tb_outaccount_type【逻辑名称】:支出类别信息表【中文说明】:该表存储指出类别的信息,如名称,是否是系统定义表3-4支出类别信息表字段名字段类型主/外键是否可以为空说明idVARCHAR (32)PKN记录IDnameVARCHAR(50)N支出类别名称createtimelongN创建时间modifytimelongN修改时间modifyboolean N是否为系统定义【表名】: tb_project【逻辑名称】:收支项目信息表【中文说明】:该表存储收支项目的信息,如名称,是否是系统定义表3-5
35、收支项目信息表字段名字段类型主/外键是否可以为空说明idVARCHAR (32)PKN记录IDnameVARCHAR(50)N项目名称createtimelongN创建时间modifytimelongN修改时间modifyboolean N是否为系统定义【表名】: tb_family_member【逻辑名称】:收支家庭成员信息表【中文说明】:该表存储收支家庭成员的信息,如名称,是否是系统定义表3-6收支家庭成员信息表字段名字段类型主/外键是否可以为空说明idVARCHAR (32)PKN记录IDnameVARCHAR(50)N成员名称createtimelongN创建时间modifytimel
36、ongN修改时间modifyboolean N是否为系统定义【表名】: tb_account_type【逻辑名称】:收支账户信息表【中文说明】:该表存储收收支账户的信息,如名称,是否是系统定义,金额表3-7收支家庭成员信息表字段名字段类型主/外键是否可以为空说明idVARCHAR (32)PKN记录IDnameVARCHAR(50)N账户名称categoryVARCHAR(50)N账户类别名createtimelongN创建时间modifytimelongN修改时间modifyboolean N是否为系统定义【表名】: tb_account_type【逻辑名称】:收支账户信息表【中文说明】:该
37、表存储收支账户的信息,如名称,是否是系统定义,金额表3-8收支账户信息表字段名字段类型主/外键是否可以为空说明idVARCHAR (32)PKN记录IDnameVARCHAR(50)N账户名称categoryVARCHAR(50)N账户类别名createtimelongN创建时间modifytimelongN修改时间modifyboolean N是否为系统定义【表名】: tb_userinfo【逻辑名称】:用户信息表【中文说明】:该表存储用户的信息,如名称,用户名,联系方式,表3-9用户信息表字段名字段类型主/外键是否可以为空说明usernameVARCHAR (32)PKN用户名,唯一nam
38、eVARCHAR(50)N用户姓名emailVARCHAR(50)N用户邮箱tellongN用户电话sexlongN用户性别特此说明,此表目前仅仅用于标志用户,暂无功能上的引用,设计此表是为了以后能够更好地扩展用户功能,获取自己的平台的用户。3.3界面设计3.3.1界面设计的原则在计算机软件技术中,用户界面已经发展成为一个重要的分支;在Android手机上设计界面,要充分的利用屏幕的利用率,以便于能把数据充分的展现给用户。在设计界面的过程中遵循以下部分原则:(1)以用户为中心用户界面设计从中文层面上来讲,有用户才有后面的界面和设计。正如俗话所说的“以人为本”。本系统提供了相对较多的功能和操作,
39、而屏幕的有限,因此,用户进入系统时,将使用频率更高的功能展现在首页,方便用户更快找到需要的功能。以用户中心为首要原则的APP才能在浩如烟海的APP中脱颖而出,成为用户的至爱。本原则贯穿了整个界面设计的原则。(2) 符合用户常用模式用户界面的设计应该是符合用户常用模式的,而不是简单的实现软件。通俗的来说:就是把本来很抽象的东西放到手机的设计上来符合人们在日常生活中的交流和使用方式。软件设计的越符合用户的需求,设计出来的APP 就越优秀。通过大量的使用图标来辅助显示功能和菜单的意思,使用户能直观的分辨出说要选择的功能,更加便于系统和用户的交互。(3) 禁止水平滚动由于将导致非常恶劣的客户体验,尽可
40、能禁止手机屏幕水平滚动操作,Android手机屏幕的宽度十分有限,水平滚动容易来带及其不变的用户体验,根据大多数人的使用习惯,尽量减少水平滚动而多使用垂直滚动。(4) 便于点击用户所能接触到的屏幕大小有限,而且本系统的功能更多地是在点击和选择的过程中完成的,便于点击的界面极大的方便了用户的使用,节省用户的时间,同时带来良好的用户体验。Button可以做的小一点,但做成切片的时候要切的大一点,给用户的手指与屏幕的接触的范围变的大一些。控件与控件之间的距离间隔要适中。间隔太大影响美观,太小容易产生误点击。以简洁,易用使用的形式排列空间和用户交互元素有助于用户花最少的精力来准确的进行触控操作。(5)
41、 合理的布局不同的平台,有不同的布局风格。即使相同的平台上,布局也百花争艳。但是,总得来说布局应当合理。系统使用风格相同的顶部导航栏和底部导航栏,使用列表时,尽量使用统一的上、下、左、右、内、外边距使系统的界面显示更加的和谐和合理,也更加方便其他功能的扩展。(6) 适当的反馈当用户在系统里操作时,用户不仅仅要得到结果,不需要得知系统给予的操作相应。以及在漫长的操作进行中的实时状态。通过使用适当的过度效果给用户更好的体验,同时能让用户更加正确的把握系统的状态,防止用户因重复操作而带来意外的错误。(7) 简洁的表达信息当用户界面中的直接信息并且间接提供时,用户能够快速理解。因此,找出最重要的信息,
42、用最简洁的语言描述,并且在最显著的位置展示。这样,用户就不用阅读过多的文字来判断信息对用户的价值。3.3.2主要界面设计系统界面,设计上采用了简约实用的风格。顶部和底部是统一的标题栏和导航栏,中间其余的空间用于显示列表内容。如图3-10是通用风格的界面实例。以下是对各功能部件的介绍:(1) 后退功能键。用于返回、取消等后退操作(2) 标题栏。用于说明当前界面的功能。(3) 导航栏。用于显示可以提供的功能。(4) 列表区域。显示主要内容,用户可以轻松使用手指上下滑动列表。图3-10通用风格的界面图例界面上的图形元素,简单如按钮、复杂如支持滑动的列表都是视图类(View)的子类。Android 的
43、图形用户界面是建立在一组存在嵌套关系的视图组件之上,通过组件的ID可获得组件的实例,并可进行事件的响应监听和设置属性。3.4系统实体类设计本系统设计了10个实体类,如图3-11是系统的实例类图。系统实体类名称以及其具体的描述说明见表3-9。表 3-9 实体类信息表实体类名类的描述说明Budget记录对应指出类别的预算Family_member记录收支的成员信息Account_type记录用户财产账户的信息Inaccount_type记录收入类别的信息Inaccount记录用户的收入信息Ouaccount_type记录支出类别的信息Outaccount记录用户的支出信息Project记录收支项目
44、的信息Userinfo记录默认的用户信息SearchConditon记录用户在筛选过程中的筛选条件图3-11系统实体类图3.5本章小结本章主要介绍系统的整体设计,主要包括系统功能模块的设计,系统数据库的设计、界面设计、以及系统所用类结构的设计。4. 系统详细设计及实现本模块根据本设计论文前面划分的模块进行具体的设计和实现,包括系统架构开发流程和程序结构图。4.1 系统架构4.1.1 系统的开发流程本系统以activity+layout.xml+model架构为基础,每一个模块的开发流程如下所示:(1) com.alan.graduateproject.bean中创建具体的JavaBean类(2
45、) 在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目录:存放所有关于a