Android应用案例课程设计_第1页
Android应用案例课程设计_第2页
Android应用案例课程设计_第3页
Android应用案例课程设计_第4页
Android应用案例课程设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

应用案例课程设计文件状态:[]草稿[√]正式发布[]正在修改项目名称:我的云账本文件标识:1当前版本:1作者:魏燕学号:小组成员:魏燕、潘正杰、赵德祥指导教师:史梦安完成日期:2015.7.2淮安信息职业技术学院计算机与通信工程学院版本历史版本/状态作者参与者起止日期备注1.0.1魏燕马子璇2015.6.25代码完成1.魏燕马子璇2015.6.27修改云存储的功能1.2.1魏燕马子璇2015.6.27优化界面以及功能1.3.1魏燕马子璇2015.7.2修改报告中的图表格名称各功能开发表序号功能子功能开发人员1主界面控制层(事件等)魏燕2显示层马子璇3账信息添加数据层(层)马子璇4界面控制层魏燕5显示层马子璇6服务端魏燕7账信息查询统计数据层(层)魏燕8界面控制层马子璇9显示层魏燕10服务端马子璇11账类型查看及修改数据层(层)马子璇12界面控制层魏燕13显示层马子璇14服务端魏燕15账信息删除数据层(层)魏燕16界面控制层马子璇17显示层魏燕18服务端马子璇19关于魏燕、马子璇一、前言 记账软件记录着各种数据,如果软件一不小心删掉,所有数据就没有,就会觉得很可惜。现在云盘普遍都支持接入应用。本系统主要用于账信息的存储,主要通过移动数据网络或者,实现客户与服务端的云存储。客户可以通过登录查询自己的账户信息。二、系统分析2.1系统开发遵循的标准或规范2.1.1移动端开发使用4.3.2;服务端开发采用4.3.2;移动端数据库开发采用。2.1.2统一技术规范总体上采用语言进行客户端及服务端的开发,移动客户端开发端采用开发技术规范,系统静态及动态建模原则上要求使用技术规范。2.2“云备忘录”功能设计2.2.1本地备忘信息管理模块通过该模块的,用户可以完成对备忘信息的管理,主要功能包括:1.备忘信息添加,用户使用该功能可以完成对备忘信息的添加;2.备忘信息查询及统计,用户通过该功能完成对特定条件下的备忘信息的查询及统计工作,3.备忘信息查看及修改,用户通过该功能可以查看特定账信息的明细并可对其进行修改;4.备忘信息信息删除,用户可以删除特定账信息内容(只做逻辑删除,不做数据库层的物理删除,修改对应记录的列数据,0表示不可用,1表示可用)5.备忘信息提醒,用户添加完信息设置是否提醒,使用这个功能,用户可以在通知栏上看到提醒的信息。6.备忘信息更新,点击更新按钮,用户可以更新状态,进行联网,使信息同步到数据库中。2.2.1.1系统顶层用例图如图2.1:图2.1系统用例图2.2.1.2消费信息模型类类图如图2.2:图2.2账信息类图2.2.2.信息的云存储的静态模型图智能手机通过或者移动数据访问服务器,完成服务器与客户端的数据传输。通过联网登录系统,添加信息,修改、删除信息,把信息发送到服务端,进行信息传输。如图5—1网络拓扑图。图5-1网络拓扑图联网以后,用户可以添加、查询、修改、删除、更新备忘信息,即使本地信息删除了,服务端还存有以前的信息,此功能可以防止信息的误删方便用户的使用,详细图解参照下图图2-2系统用例图。图2.2系统活动图三、系统设计3.1系统采用的异步通信框架在2.3.3版本以后,所有联网操作不能在线程中进行。必须在新建线程里进行网络连接,否则将会抛出“”异常。而在系统中只能在主线程(线程)中对组件进行控制,如果通过子线程启动网络连接并对控件进行修改,这就需要与线程进行通信。可以使用类实现子线程与主线程的通信,为提高程序的健壮性,降低代码的耦合度,设计类(见附件1-6)处理异步通信请求。3.2系统初始化系统采用数据库记录备忘信息,在移动端启动前需要进行数据库及数据表等的初始化。3.1系统初始化的动态模型启动程序后,获取备忘信息,生成备忘信息对象,存储在本地。如果联网后,把信息序列化之后发送给服务端,服务端接收后,反序列化存储到云端,通过客户端解析响应判断有没有存储成功。相关活动图如图3.1系统活动图:图3.1系统活动图3.2数据库设计 系统采用关系型数据库进行数据库设计,由系统对象关系分析可知,系统数据存储结构如表一所示。表1备忘信息表表名列名数据类型非空描述主键外键主键,自增Y(50)Y默认备忘名称(50)Y日期(50)Y内容Y成功失败Y0标识不可用,1标识可用3.3主界面设计 由于采用移动手持终端作为应用程序载体,为提高人机交互效果,主界面宜采用扁平化设计。可以更加简单直接的将信息和事物的工作方式展示出来,减少认知障碍的产生。主界面设计如图3.4所示。图3.4主界面设计3.5云同步设计由于用户在未联网状态时,账信息保存在本地数据库中,服务器是收不到任何数据,所以我们设计云同步功能,该功能主要是把本地数据与服务端同步,以便用户后期管理。3.5.1采用的协议采用网络通信协议,运用第三方辅助工具包,对数据序列化反序列化进行传输。利用类控制各种数据传输。类见图3.5.图3.5类图3.5.2云同步动态模型获取本地数据库数据,对每条数据进行序列化,将序列化字符串发送到服务器,服务器接收字符串,进行反序列化解析,并且与服务器中数据进行对比,如果此条数据在服务器中没有体现,则保存在数据库中,整个数据遍历完毕,响应本次操作,客户端接收响应,同步完成。动态图如下图3.5.2。图3.5.2云同步动态模型3.5.3序列化反序列化关键代码序列化:<>=<>(); =; =; =""; ()();反序列化:<>=(,<<>>(){}); =; ("接收请求:")由于不知道何种请求,首选将字符串反序列化为<>对象判断请求类型,根据不同的请求类型,重新反序列化字符串四、系统实现4.1数据库存储系统的实现 本存储系统利用的关系型数据库存储系统实现。其数据表字段及数据表创建等核心代码如下所示: 数据存储代码:客户端:账信息数据表相关字段 1=""; 1_1=""; 2_1=""; 3_1=""; 4_1=""; 5_1=""; 6_1=""账信息类型,1表示入账1表示出账 7_1=""记录状态,1表示可用,0表示不可用 账信息数据表相关字段 2=""; 1_2=""; 2_2=""; 3_2=""录入到数据库中的时间 4_2=""账类型信息对应的类型1表示消费(出账),1表示收入(入账) 5_2=""记录状态("" +1+"("++"," +1_1+","+2_1+"," +3_1+","4_1+"," +5_1+","6_1+","7_1+")"); ("" +2+"("++"," +1_2+","+2_2+"," +3_2+","+4_2+","+5_2+")"); ();服务端:(){ ()("(?,?,?,?,?,?,?,?,?)", []{ , ()(), (), ()+"", (), ()(), (), (), ()}); ; }4.2系统功能实现 4.2.1本地账类型管理用户登陆后可进行在已有的账类型基础下可以添加账信息。点击主界面的查询按钮弹出对话框,可以按查询条件查询账类型对应的账项目信息,选择查看可以查看具体信息,并对他进行修改。点击删除可进行删除。点击添加按钮可以添加账项目。4.2.1.1账类型管理显示效果用户登录后可以添加信息如4.1添加显示效果,可以点击主页面的查询按钮弹出对话框,在对话框里进行查询和修改如4.1查询显示效果和4.1修改显示效果。 4.1添加显示效果4.1查询显示效果4.1修改显示效果 4.2.1.2相关核心代码((){ (0){ =()()(); (("出账")){ =(<>)() (-1); (); }(("入账")){ =(<>)() (1); (); } } }); 添加按钮事件 ((){ (0){ ()(); } }); ((){ (<?>0,1, ,3){ =; (){ (0,){ (0,); =(); =()[]; (("查看")){ (){ (0){ (); }; }(); }(("删除")){ ()("确认删除") ("确定"设置确定按钮,第二个参数是传事件对象 (){ (){ 删除操作 (()<7){ (,"删除失败,默认类型无法删除",)(); }{ ()(()); (,"删除成功")(); } } })("取消",)(); } (); } }(); ; } }); } 4.2.2用户注册及登录功能 将用户的信息添加到数据库中,先进行用户注册,把用户信息添加到数据库中,注册时若数据数据库中没有数据则注册,然后点击菜单中的登陆按钮,就可以显示登陆成功。然后就可以进行用户的信息添加查询之类的操作。4.2.2.1用户登录动态模型打开主页面的菜单,点击菜单中的注册按钮,就可以使用用户注册的功能,注册成功之后,返回,点击菜单中的登陆按钮,就可以成功的登陆。接着就可以添加信息,修改信息,生成请求对象,序列化反序列化之后,可以存储到服务端。服务端通过客户端的响应判断是否同步到服务端。如下图,图4.2.2.1用户登录动态图。活动动态图:图4.2.2.1用户登录动态图4.2.2.2登录界面效果 1.进入主页面,打开注册系统,先进行注册,注册成功之后点击登陆按钮就可以登陆了。如图2-2-1所示。图2-2-1主界面菜单图2-2-2注册窗口图2-2-3登录窗口相4.2.2.3关核心代码 发送登录请求的编码如下所示: 获取用户数据,封装成,发送 =()()(); =()()(); =(); (); (); <>=<>(); =; =; =""; =()(); ();处理用户登录响应的编码如下所示=(){ (){ (); =()(); <>=(,<<>>(){}); (("")){ =; ("用户:"()); (); }(("")){ ("用户名、密码错误!"); } } }; 服务端关键代码:(()){ . <>=(,<<>>(){}); =(); =(); ("用户名:""密码:"); =(,); (){合法用户 <>=<>(); =; =; =""; (,)将合法用户记录下来 ()(); }{ <>=<>(); u=(); (-1);("");();(); =; =u; =""; ()(); } }2、输入用户名和密码后,可进入本用户对应的系统。用户名和密码如表1所示,第一个为默认的用户,软件自动添加该用户名信息,用户名和密码区分大小写:表1系统初始用户名密码序号身份用户名密码 1 默认用户1232普通用户用户名密码4.2 这个功能主要是用户出入账信息的管理,点击主界面的添加按钮,打开出入账信息添加对话框,选择账类型(出账还是入账)及账目项,输入金额、出入账日期以及备注等信息后点击“添加”按钮将信息录入数据库中。当录入成功后“添加”按钮不能用,点击“继续添加”按钮,就可以继续添加数据。查询功能主要实现数据的查询,点击主界面的查询按钮,选择查询条件,出(如)账,日期,类型,查询方式,点击查询按钮,长按查询的信息可以出现一个对话框,点击查看弹出对话框可以查看信息的主要内容,并可以点击修改按钮对信息进行修改。点击删除可以对数据进行删除。4.2.3.1账信息管理效果图1.账信息添加用户可自己进行信息的添加,添加操作方式在主界面中点击添加图片按钮如图3-1-1所示,进入添加界面,如图3-1-2所示,输入数据,添加成功后会显示“添加成功”,如图3-1-3所示。图3-1-1主界面按钮图3-1-2添加对话框图3-1-3添加成功2.账信息查询查询界面,点击查询按钮,如图3-2-1所示,查询符合条件的数据,查询结果进入如图3-2-2所示。图3-2-2主界面图3-2-2查询图3-2-3查询结果3.账类型设置点击主界面设置按钮,如图3-3-1所示,进入账类型管理界面,点查询按钮查询账类,查询结果为3-3-2所示。图3-3-1主界面图3-3-2账类型查询结果4.2.3.2核心代码:((){ (v){ 获取账信息 =()(); =()(); =(()())()出入账类型 =()()(); =()()(); =()()(); (()0){ (,"信息不完整",)(); ; } =(); ();(); ((())); ();(1); (()("出账")){ (-1); (()()); (); }(()("入账")){ (1); (()()); (); } 生成账信息本地(移动端) =()(); (){ (,"信息添加成功",)(); (); (); (); (); 判断当前用户是否登录,网络是否连通 (()){ ("1")修改防止服务端解析异常 (); ()添加手持设备号 (); <>=<>(); =; =; =""; =()(); (); } } } });账信息查询:((){ (v){ =()()查询日期 =()查询方式,查询的日期方式 =()()()选择的是出账、入账还是所有 (("所有")){("","-"); =()(,); ("",""); (); }(("出账")){ =()(); =(); =()(,,,-1); ("",()); (); }(("入账")){ =()(); =(); =()(,,,1); (); } =0.0; (0<()){ =(i); =(()); ("",""); ()*; } ("总计:"); } });账信息查看修改:((){ (<?>0,1, ,3){ 设置公共数据区的选中账信息对象 =()(); ("",()); (){ (0,){ (0,); =()[]; (("查看")){ (){ (){ /*******************************/ =()()查询日期 =()查询方式 =()()()选择的是出账、入账还是所有 (("所有")){ =()(,); (); }(("出账")){ =()(); =(); =()(,,,-1); (); }(("入账")){ =()(); =(); =()(,,,1); (); } =0.0; (0<()){ =(i); =(()); ("",""); ()*; } ("总计:"); /*******************************/ }; }(); }(("删除")){ ()(()); } (); } }(); ; } }); } 服务端关键代码:<T>{ ; T; ;}{ ([]){ ="{\"\":{\"\":1,\"\":\"\",\"\":\"123\"},\"\":\"\"}"; <>=(,<<>>(){}); <>= (,<<>>(){}); (()); }}账信息添加:(){ ()("(?,?,?,?,?,?,?,?,?)", []{ , ()(), (), ()+"", (), ()(), (), (), ()}); ; }账信息查询:<>() { <>=<>(); <>=() ("*",); (0<()){ =(); ((((i)(1)()))); ((i)(2)()); ((i)(3)()); ((i)(4)()); ((i)(6)()); ((i)(7)()); (((i)(8)())); (); } ; }() { =(); <>=()("*?",[]{}); (()>0){ ((0)(1)()); ((0)(3)()); ((0)(2)()); (((0)(0)())); (((0)(5)())); (((0)(4)())); }{如果没有数据 (); } ; }4.2.3“关于”图4-2-3为该软件相关的信息,包括制作人、版本信息等。图4-2-3五、软件系统测试1.1测试目的软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望做的事情,另一方面是确认软件以正确的方式来做了这个事情。第二是提供信息,比如提供给开发人员或程序经理的回馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件软件产品本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此,软件测试的第三个目的是保证整个软件开发过程是高质量的。1.2测试对象及测试范围表1测试范围测试项测试内容系统初始化本地数据库是否能正常初始化登陆界面测试是否能正常弹出登陆界面的窗口用户登录及注册联网后可以进行用户信息注册和登陆云存储用户的信息是否录入服务器云同步同步本地、服务器数据云查询查询云端数据各功能整合各功能之间切换及数据传递是否正常表2测试对象测试对象:我的云记账本实施人员:魏燕报告撰写人员:魏燕执行用例数:15问题发现总数:5解决问题总数:51.3测试环境表3测试环境客户端软件:、、服务端软件:、客户端设备:7572服务器端设备:网络环境:局域网()1.4.系统功能测试表5测试结果测试项发现问题数解决数系统初始化00登陆界面测试00用户登录及注册11云存储00云同步11云查询001.4.1系统初始化功能测试表6系统初始化测试测试方式:灰盒测试测试内容1:界面是否友好测试用例1:界面按钮测试测试内容2:系统数据库及数据表是否能正常初始化测试用例2:添加控制台调试语句,检查数据库表是否存在。测试结果:良好解决情况:无1.4.2登陆页面功能测试表7登录页面功能测试测试方式:灰盒测试测试内容1:测试登陆对话框是否正常显示测试用例1:点击按钮测试 测试结果:正常解决情况:无1.4.3用户登录及注册功能测试表8用户登录及注册功能测试测试方式:灰盒测试测试内容1:是否可以登陆测试用例1:输入用户名、密码测试测试内容2:注册测试测试用例2:注册新用户然后登陆 测试结果:正常解决情况:无1.5云存储功能测试表9云存储功能测试测试方式:灰盒测试测试内容1:数据发送测试用例1:输入数据检测测试内容2:数据接收测试用例2:服务器收到数据反馈回来测试结果:正常解决情况:无1.5.1云同步功能测试表10云同步功能测试测试方式:灰盒测试测试内容1:数据同步测试用例1:本地信息与服务器数据同步测试结果:正常解决情况:无1.5.2云查询功能测试 表11云查询功能测试测试方式:灰盒测试测试内容1:查询本地数据测试用例1:根据所查询的方式查询本地数据测试内容2:服务器数据查询测试用例2:将查询的信息发送到服务器,查询服务器的数据测试结果:正常解决情况:无1.6功能整合测试表12系统功能整合测试测试内容测试情况处理结果查询功能整合正常良好用户登录与注册功能整合正常良好发现问题数:2解决问题数:2测试方式:灰盒测试六、课程设计总结每一次的实验对我来说都是一种历练,因为实验中总能学到很多东西,但是,也往往会遇到一些困难,这需要我们不断的调试程序并且改正,每一次出现的问题,对我来说都是一个新的挑战,与此同时,这些问题可以使我更好的提升自己。这次实验做的是我的云账本,与上个学期所做的实验不同,这学期的实验新增添了几个功能,需要联网进行操作,需要编写客户端代码和服务端代码,首先数据库增添了一个用户信息表,在联网的操作下,可以注册用户信息,然后登陆,服务端也可以检测的到,登陆之后,可以对账信息进行添加查询修改,修改的信息可以在服务端显示,还有云同步。在这次实验中我学到了很多东西:1.我学会了用来画流程图以及用例图。2.学会了编程,客户端服务端,使服务端可以接收到客户端的信息。3.学会了用来发送信息到服务端。4.学会了编写服务端数据库。5.学会了同步的方法。在这次实验中,我也出现了各种错误,比如:联网之后接收不到信息,客户端和本地的没法同步到服务端之类的,我也调试了好久,一开始,没有耐心,后来调试也就习惯了,出现的问题多,了解到的知识点也多。同时我对用也越来越熟悉了。很感谢学校和老师给我们这次实训的机会,让我们掌握了这么多的知识。这次实训真是获益匪浅。附件1:服务器数据访问层类1-1、账信息数据访问层;{ /** *添加账信息的数据访问层 * * */ (){ ()("(?,?,?,?,?,?,?,?,?)", []{ , ()(), (), ()+"", (), ()(), (), (), ()}); ; } (){ ()("?" +"?", []{ , ()(), (), (), (), ()}); ; } (){ ()("(?,?,?,?,?,?,?,?,?)", []{(),(),(),(),(), (),1,()()(),()}); ; } /** *查询所有账信息 * */ <>() { <>=<>(); <>=() ("*",); (0<()){ =(); ((((i)(1)()))); ((i)(2)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论