1、基于Android计算器的开发与测试(完整资料)(可以直接使用,可编辑 优秀版资料,欢迎下载)实 训 报 告实训项目名称基于Adrid计算器的开发与测试二 级 学 院 信息工程学院 专 业 班 级 1级 姓 名学 号日 期01411-19项目名称基于安卓计算器的开发与测试地点教136报 告 内 容在本报告中,我们主要介绍了国内目前手机系统和软件的现状和发展,针对这方面我们设计了基于Andod计算器。报告内容大致分为三个部分。第一部分首先介绍了需求分析,其中介绍了计算器最基本的功能.之后还有一些按键的设置以及计算器的基本功能。第二部分我们介绍了关于计算器的总体设计和详细设计其中我们用了两个流程图
2、来表示,分别是程序设计流程图和软件设计流程图。然后还包含了计算器模块的设计。第三部分为计算器的测试部分,其中我们对计算器进行了多方的测试。此外还有测试用例图。教师评语成绩: 教师签名: 摘 要Adroi是当今最重要的手机开发平台之一,它是建立在Jav基础之上的,能够迅速建立手机软件的解决方案。Anid的功能十分强大,成为当今软件行业的一股新兴力量。Andod基于Lux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的,应用程序可以轻松的嵌入网络、应用程序可以并行运行.而简单计算器又是手机上必备的小程序,所以此次创新实践很有意
3、义。并且具有很强的使用性。关键字:计算器,ndro,移动设备目录绪论511研究背景52游戏系统开发平台6 系统分析与设计731可行性研究73.系统的需求分析73。3系统的优势8。4系统的流程。模板设计与实现9 测试用列和结果15。1测试用列25。2测试用列展示图26 小结1参考文献6附录:171 绪论1.1 研究背景(1) 计算器背景目前手机可以说是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开始代替固定电话的通话功能,以及一些原来电脑软件上的功能了。手机上的软件也随着手机的发展变得丰富起来了,时至今日已经出现了很多专门制作手机软件的公司,虽然制
4、作的多是游戏软件,但是一些辅助性的工具软件也有了很多我们在此次系统中所做的工作主要是设计整个系统以及利用编程语言实现整个系统,使系统能够正确的运行计算功能.(2) Andrd系统简介Andrid 系统构架简介: Anid是一个基于inuxV2.6内核的交互性操作环境,同时它也是一个分层系统,Android系统架构显示如下图1。1。图1系统架构图应用层由所有的Adroid应用程序组成。其中包括电子邮件客户端,SMS程序,地图,浏览器,联系人及其他。所有的应用程序都是用Java编程语言编写的。1Activity 顾名思义,Activity就是活动。应用程序必须至少包含一个Actiity。ctiiy
5、提供了一个虚拟的用户接口,每一个Actiit都有一个默认的窗口可以用来显示用户界面,一般情况下,它是全屏的窗口。例如,影音播放软件的每个用户界面就是Aivit。 。vce Service与Activity的主要区别在于,Servie是在后台活动的,它没有用户界面。典型的应用场景是,用户选择了一个播放列表开始播放后,离开了该用户界面(ctivty),如果仍然希望歌曲不会暂停,就可以用rvce去调用播放器,而不是在Atiity中调用播放器. 3.ntent 在Aroid中,每一个行为都可以抽象为一个Intent.可以简单地把Inten理解为一个包含了数据的消息.en可以用于启动一个Acivity或
6、者ervie,可以用于进程间的通信。事实上,应用程序的启动也是通过Intent实现的。 4.Cntnt providrAnrod平台内置了一套Site数据储存机制,并包含一系列管理SLieDataase的相关方法。在应用程序中,可以通过ontet provder访问数据库。每个Coent prider都定义了一系列的方法用于访问它对应的数据库。应用程序在新建数据库时也可以定义相应的n-tent oir用于向其他应用程序共享数据。一般情况下,应用程序不直接调用Cntnt provider定义的函数,而是通过nentRelver间接调用.2游戏系统开发平台采用Ecpe开发工具,在Wid 7下进行,
7、基于Androi 4.2操作系统,使用的语言是Jav语言。环境搭建:1) J安装2) lips安装3) Andri DK安装4) AD安装创建ADDK(a Develoent Kt)是n Mrsytes针对开发员的产品.自从Java诞生以来,JK已经成为最广泛的Jaa SK。D是整个Jva的核心内容,包括了Ja运行环境、Jaa工具和Ja基础类库三部分。从Sun的DK。5开始,提供了一些非常使用的功能,其版本也不断更新,运行效率得到了非常大的提高。clipe是一个开放源代码的、基于av的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组建构建开发环境。clips附带了一个标准
8、的插件集,包括Ja开发工具(Java evlomentit,DK)。Andr DK即软件开发工具包(soare delmentkit)。被软件开发工程师用于为特定的软件包、软件架构、硬件平台、操作系统等建立应用软件工具的集合。因此Anroi SDK是Aroid专属的开发工具包。其授权协议为Ah,开发语言为Jav、需要Android操作系统的支持。23 系统分析与设计3.1 可行性研究可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的,经过最初的设计目标和进行的实时调查得出以下四
9、点的可行性分析:()技术可行性:clipse + Android AT的技术已经较为成熟,通过SUN公司(现被ORCL公司收购)推出的跨平台、动态的JA语言进行开发。()运行可行性:该系统需要Andoid虚拟机环境,Ecipse中安装ADT,DDS等Gogle Androi相关插件.其运行环境已经相当稳定,它功能丰富,包括了完备的ndroi程序的编码、调试、测试和发布功能,其中支持所有Andoid应用开发相关技术,包括SQit,Ska,3D制作,AnoiXL,能够很好的发布Andr的应用程序AK包。()法律可行性:因为是自主开发设计,所以不会构成侵权,在法律上是可行的.通过以上的可行性分析,将
10、采用Eis+Anroid ADT + S技术,运用JAVA语言进行系统的开发.3.2 系统的需求分析根据分析需求,这个系统必须实现以下的功能:(1) 实现简单的数字计算功能.作为计算器,其核心就是加减乘除。(2)能够在手机里面以良好的界面。简单计算器能够给予用户良好的人机互动界面。3.3 系统的优势noi是以Lnx为核心的手机操作平台,作为一款开放式的操作系统,随着Andrd的快速发展,如今已允许开发者使用多种编程语言来开发Anro应用程序,而不再是以前只能使用Jaa开发Anrod应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统.3.4系统的流程本程序的流程是一个开
11、机画面,开机画面之后就是计算机的主页面了所有这个简单程序的流程图如图31所示。开始显示计算机界面输入数值选择功能键判断选项加减乘除clear结束图 。1 流程图4。模板设计与实现。计算模块详细设计系统要完成整个的计算器的计算功能,那么计算模块就是整个系统的重点模块。没有计算模块系统就不能顺利的完成计算,就无法达到用户的要求。所以计算模块的设计也是本次系统设计中的重点。 系统想要能在屏幕上显示出计算器的样子要有整体的布局,在本模块中要完成布局的具体设计,使用户能够看到整个计算器的画面.同时系统想完成计算功能必须要处理用户的输入,当输入模块的监听传到计算模块中时,计算模块就要根据相应的方法进行进一
12、步的处理.这部分主要是对输入进行的逻辑判断,基本会通过if else来实现逻辑判断。4.2用户界面设计界面设计应该尽量简洁而美观,应该具有良好的交互性.当然,我们每个人可以根据自己的喜好来进行设计,根据我个人的喜好,我最终设计出来的计算器界面如图4.1所示。 图41 界面图部分代码:abeRowEditTextndoid:idd/rsult”androi:layouidth=fllparentandrid:layout_height=”pcontenndoid:bckoud=android:raal/edbo_bakrondandroi:yt_pan=4”anroi:textSize4sp”a
13、nrod:raviy=right|cener_veralandi:urriibl=asndod:diabe”fseanroid:ins=1/Tbew .3计算模块设计的实现计算模块则主要描述了计算器的整体,实现了计算器的界面,定义了用户单击的处理办法,通过定义的处理办法来完成用户的操作命令,实现用户的计算要求,这些计算要求包括了数值的输入,小数点的输入,正负号的输入,记忆相关功能的完成,加、减、乘、除等各种计算功能的完成,运算符的替换,初始化系统等等。部分代码:private class oandAction mplment nckLitener Overide pblic vod onClc
14、k(View w) Button tn = (Buton) vew; Strng inputCommand=(tring) btn。getText(); if(istFlag) / 首次输入”-”的情况 i (inpuComman.uals(”) ditText。seext(”);/显示区域的内容设置为” irstFl= false;/ 改变首次输入的标记 else if (!clarag) / 如果fla=als不需要清空显示区的值,就调用方法计算 jsp(DoublarseDouble(ditTxtgetText()。tSri());/ 保存显示区域的值,并计算 / 保存你点击的运算符 l
15、atCoand inpuoad; clearFag =ue;/因为我这里已经输入过运算符, 加、减、乘、除等各种计算功能的实现:prite vidjs(dol x) if (lastommad。qals(+”) reut + x; else if (lstCoand。qul(”-”)) eut= x; ele if (latConequs()) sult =x; le (astComn.eqal(”/) eslt / x; el if (lmma。quls(=)) rult = x; editTet.setTet(”+ rt); 5 测试用列和结果5。1测试用列通过以下的测试用例进行对游戏各功
16、能模块的测试并加以修改,如表.所示。测试编号测试输入期望结果实际结果123。3.02*202031/20。50.54/0无结果错误51(-3)40-2。6-2程序错误程序错误表51 测试用例表5。测试用列展示图1. 测试12时的状态如图所示:图5。2测试结果图2.测试12时如图5.3所示:图.3测试结果图3测试1时如图.4所示:图54测试结果图4. 测试/时如图5所示:图5.测试结果图5。测试1-(3)如图5。6所示:图.6测试结果图6测试输入-时如图。7所示: 图5。7测试结果图6小结这次项目andid计算器项目设计是在lps平台下设计,到现在为止,该系统的功能基本符合了普通计算器的要求,整
17、个系统界面简单明了,使用起来十分方便,具有普通计算器的基本功能,同时拓展了一些普通计算器上没有的部分科学计算功能。在整个开发过程中,从需求分析到总体架构的构思,到最后代码的编写我投入了大量的时间和精力,对系统中的每个功能都进行了反复的调试,修改。因为这是我是第一次系统性的进行软件的开发,不论是在知识层面、开发平台的使用层面还是经验方面都有着很大的欠缺和不足,因此本软件难免会有一些功能不完善、界面不美观等一些不尽如人意的地方,但是再短短一个星期的时间内,我已经进行了很大的努力。通过这个androd计算器项目设计,我不经巩固了我们在书本上学到和平时老师传授的知识,而且还学到了许多书本上学不到的知识
18、,并运用了网络这个平台查询一些不明白的知识点。指导老师在我软件代码编写和后期软件调试期间,给我很大的帮助。要谢谢各位帮过我的老师和同学。这次的实验让我对我的学过的知识有了深一步的了解。参考文献 刘敏.移动终端的Andod移植与应用程序设计D. 西安电子科技大学 2011 王蕾.哈尔滨招行Andri手机银行汇率换算模块的设计与实现. 吉林大学 2013 施金兰基于Android平台的网络共享研究与实现D。 华东师范大学0114 赵建勋.基于Andoid平台的移动位置服务的开发与实现J。 现代商贸工业。 2010(0) 李林涛,朱珊虹。 基于Android系统的手机游戏黑白棋的设计与实现J。 新乡
19、学院学报(自然科学版) 201(0) 6 丛秋波。 用于Andoi手机操作系统的视频引擎J 电子设计技术。 2010(07)7王丰,付明栋,冯海亮,施玉海. 智能终端图形用户界面设计与实现J. 广播电视信息。 2011(08)8温敏,艾丽蓉,王志国。 Adroid智能手机系统中文件实时监控的研究与实现J。 科学技术与工程。 200(0) 9 刘牛.基于Android平台的数字电视机顶盒模拟器的研究与开发D。 兰州大学 20120王康.Adri RIL研究及其在无线通讯模块上的实现D. 太原科技大学 2012 附录:?mversn=”1。0”ncoding=utf?ableLayoutmls:n
20、dodtt:/shemasroi.om/ap/rsnroidandid:lyo_wifilparentadro:laou_higt=”wrp_oneandrod:texSize”42sp”adid:stretchColumn=1EdtTetadroid:id=+d/ult”android:layut_width=fill_prentanroid:layou_hgt”wrp_conten”adroid:bkgound=android:drawableditbo_bckgodandoid:lyoutan=4andrd:textSiz48sanrod:viy=rigtenr_vertcadrod:c
21、ursorVsibeflse”aro:edtale=”falseadrid:lies=1/TablRwTbeRowdid:orienation=horizntalanoi:ayout_width=fill_paren”ndroi:lout_height”wrp_content”androi:textSze=”42sandroi:layouweih=”1”ttndoid:id”+id/n8”anro:lyou_wdth=l_paret”andrid:layotheg=”ra_contentandroid:extSiz=42spandri:tt”string/andoid:ayot_weight=
22、Butnandoid:id+d/num9adrod:ot_widh”fill_aenandrod:youtheigh=a_otntadoid:xtie=”42sp”ao:ext=”string/b”ndd:layot_weight=”Buonandroi:id=+id/ivide”andod:layot_widt=”fillprenno:layout_height=”wap_cnentad:teSi=”42spnrd:tet=sring/nandoid:layt_wght=1/TableRowBtonndroid:id=”+dnm4aroid:ayout_widt=”fil_paretadro
23、d:layot_hightwrap_cotent”android:tSiz=42spndrod:tx=”string/cdoi:layout_wig1/Buttonandrod:i=”+i/n”androi:laout_wdth=”fll_aren”ndoi:aout_hiht=”rp_contentanrd:textze=2s”ri:text=sting/dani:lao_weigh=”1”/Btnadid:d=idu6andid:aut_idth”fill_are”drd:laout_hgt=wr_ontetndoid:textSize=4sndid:tex=strng/eandoid:l
24、ayoutweigh=Buttonndrod:id=”+id/muliplandroid:lout_idth=”fill_preandroi:layu_height=wra_otetdrd:tetize=42p”andrid:text=srig/andrid:lau_wight=1/TabeRowTablRowandoid:rientaio=hrizontlandroid:lyou_wit=”fil_paret”adroid:lyoutheigt”r_conentadrid:txtize”2sp”anroid:layo_wigh=1Bonandroid:id=+id/um”noid:lyou_
25、widtfill_prntandro:layouteiht”wracoentado:textSize=”spndroid:tex=”strin/f”android:lotweght=1”/Butnandroi:id+i/um2”ndo:ayut_wdt=fillpaent”android:aut_eitwrap_coet”android:textSi=2spadoid:text=”sing/garoid:lyout_wgh=”1/Bttoanri:id+i/subtractanroid:layout_width=”fl_parentndrod:ayot_hegt”wraconet”andid:
26、extSi=”4spandrod:text=tri/k”android:yt_wigt=1/ablewutonandrod:id=”id/ddandroid:layout_idfil_parentnoid:layot_height=wapcontnndroi:extSe=42panroid:extsingj”adrod:lyouweight=”/Butandoi:”+id/ear”adroid:lout_widh=”fill_arentando:layot_hgt=”wa_cntn”ndi:texte”30sp”androi:ext=”sting/sndroid:laou_pan=4”droi
27、d:graviy=cener_tca|cener_horioal/TableRw/TablLayotcka co.xamle;imort androidpp.Aciit; impor adroid。osBunle;import adid。view。Vie; import adoid.vi。View.ickLstener;mportnrod.widt。Butn; iptanoid.idget。EdiText; ublc class MinActvit exteds Activty vate Buttn btnum = ew Buton1;/ 数值按钮 rivateButtobnCmmd new
28、Butto5;/符号按钮 prie ditText editTxt =null;/ 显示区域 pite ButtonbClar = ull; /cear按钮 riv Strig latommand; 用于保存运算符 private oleaclFlg; /用于判断是否清空显示区域的值,te需要,fle不需要 rvateoolen firstFlag; / 用于判断是否是首次输入,tru首次,fale不是首次 private oub reul; / 计算结果 pbli ainAtity() / 初始化各项值 slt = ; / 的值 irtFlg = true;/是首次运算 clearag =
29、als; 不需要清空 atCmmand= ”=”; /运算符 verd pulic id onCeae(unl aveInstnetat) er。onCreat(savedInantat); tContentView(Rlayouttiiy_man); /获取运算符 btnmma = (Buton) nVewy(R。id.d); tnCommand= (Bttn) findVewyd(R。i。subtract); tnoman= (utt) findewById(R。d。mltiply); bnCommand3 = (Btton) indVewById(。id.dvde); btnoman =
30、(Bu) fndViewBId(R.id。qu); / 获取数字 btnNum = (Buton) fidViewyId(R。i。nu0); btnum1 = (Butto) fnViewByd(R。iu1); btnNum2 (uto) findVewBId(。num2); btNum3 = (Buttn) findViewById(R.idnm); btnNu4= (Btton) indVieByI(Rid.num4); btnNum5 =(Btto) indeyd(。num5); btNum6 (uttn) fndVewByI(Rid。num6); btnNum7 =(Butto) ie
31、wById(Rdnm7); btnum8 = (Buttn) findViewBId(R。inum8); tum9 = (Button) fidViewy(R。d。nu9); btnNu10 (Btton) idVieB(R.id。poit); / 初始化显示结果区域 eitTt =(EdiText) ndVieBI(R。id。result); dtTt。etTex(”0。); / 实例化监听器对象 NuberAction n= e NumberAti(); CommnAtin ca=new Cmmncton(); for (Bn c : btnCommand) b。seOCikLstene(ca); for (tton : tn) c.setOnlikistener(); / clear按钮的动作 tnCear = (utton) fidViwById(Rid.clr); nCla。etOnClicLtene(new OCickListne() Overie pu
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100