基于Android计算器的开发及测试_第1页
基于Android计算器的开发及测试_第2页
基于Android计算器的开发及测试_第3页
基于Android计算器的开发及测试_第4页
基于Android计算器的开发及测试_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、-. z.实 训 报 告实训工程名称基于Android计算器的开发与测试二 级 学 院 信息工程学院 专 业 班 级 11级 姓 名学 号日 期2014-11-19工程名称基于安卓计算器的开发与测试地点教13 603报 告 容在本报告中,我们主要介绍了国内目前手机系统和软件的现状和开展,针对这方面我们设计了基于Android计算器。报告内容大致分为三个局部。第一局部首先介绍了需求分析,其中介绍了计算器最根本的功能。之后还有一些按键的设置以及计算器的根本功能。第二局部我们介绍了关于计算器的总体设计和详细设计其中我们用了两个流程图来表示,分别是程序设计流程图和软件设计流程图。然后还包含了计算器模块

2、的设计。第三局部为计算器的测试局部,其中我们对计算器进展了多方的测试。此外还有测试用例图。教师评语成绩: 教师签名: 摘 要Android是当今最重要的手机开发平台之一,它是建立在Java根底之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。Android基于Linu*平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创立的,应用程序可以轻松的嵌入网络、应用程序可以并行运行。而简单计算器又是手机上必备的小程序,所以此次创新实践很有意义。并且具有很强的使用性。关键字:计算器,And

3、roid,移动设备目录TOC o 1-3 h u HYPERLINK l _Toc4045211901 绪论 PAGEREF _Toc404521190 h 5HYPERLINK l _Toc4045211911.1研究背景 PAGEREF _Toc404521191 h 5HYPERLINK l _Toc4045211922 游戏系统开发平台 PAGEREF _Toc404521192 h 6HYPERLINK l _Toc4045211933 系统分析与设计 PAGEREF _Toc404521193 h 7HYPERLINK l _Toc4045211943.1可行性研究 PAGEREF

4、 _Toc404521194 h 7HYPERLINK l _Toc4045211953.2系统的需求分析 PAGEREF _Toc404521195 h 7HYPERLINK l _Toc4045211963.3系统的优势 PAGEREF _Toc404521196 h 8HYPERLINK l _Toc4045211973.4系统的流程 PAGEREF _Toc404521197 h 8HYPERLINK l _Toc4045211984.模板设计与实现 PAGEREF _Toc404521198 h 9HYPERLINK l _Toc4045211995 测试用列和结果 PAGEREF

5、_Toc404521199 h 12HYPERLINK l _Toc4045212005.1测试用列 PAGEREF _Toc404521200 h 12HYPERLINK l _Toc4045212015.2测试用列展示图 PAGEREF _Toc404521201 h 12HYPERLINK l _Toc4045212026小结 PAGEREF _Toc404521202 h 15HYPERLINK l _Toc404521203参考文献 PAGEREF _Toc404521203 h 16HYPERLINK l _Toc404521204附录: PAGEREF _Toc404521204

6、 h 17-. z.1 绪论研究背景计算器背景目前手机可以说是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开场代替固定的通话功能,以及一些原来电脑软件上的功能了。手机上的软件也随着手机的开展变得丰富起来了,时至今日已经出现了很多专门制作手机软件的公司,虽然制作的多是游戏软件,但是一些辅助性的工具软件也有了很多.我们在此次系统中所做的工作主要是设计整个系统以及利用编程语言实现整个系统,使系统能够正确的运行计算功能。Android系统简介Android 系统构架简介:Android是一个基于Linu*V2.6内核的交互性操作环境,同时它也是一个分层系

7、统,Android系统架构显示如下列图1.1。图1.1系统架构图应用层由所有的Android应用程序组成。其中包括电子客户端,SMS程序,地图,浏览器,联系人及其他。所有的应用程序都是用Java编程语言编写的。1.Activity 顾名思义,Activity就是活动。应用程序必须至少包含一个Activity。Activity提供了一个虚拟的用户接口,每一个Activity都有一个默认的窗口可以用来显示用户界面,一般情况下,它是全屏的窗口。例如,影音播放软件的每个用户界面就是Activity。 2.Service Service与Activity的主要区别在于,Service是在后台活动的,它没

8、有用户界面。典型的应用场景是,用户选择了一个播放列表开场播放后,离开了该用户界面(Activity),如果仍然希望歌曲不会暂停,就可以用Service去调用播放器,而不是在Activity中调用播放器。 3.Intent 在Android中,每一个行为都可以抽象为一个Intent。可以简单地把Intent理解为一个包含了数据的消息。Intent可以用于启动一个Act-ivity或者Service,可以用于进程间的通信。事实上,应用程序的启动也是通过Intent实现的。 4.Content providers Android平台内置了一套SQLite数据储存机制,并包含一系列管理SQLite D

9、atabase的相关方法。在应用程序中,可以通过Content prov-iders访问数据库。每个Content provider都定义了一系列的方法用于访问它对应的数据库。应用程序在新建数据库时也可以定义相应的Con-tent provider用于向其他应用程序共享数据。一般情况下,应用程序不直接调用Content provider定义的函数,而是通过ContentResolver间接调用。2 游戏系统开发平台采用Eclipse开发工具,在Windows 7下进展,基于Android 操作系统,使用的语言是Java语言。环境搭建:JDK安装Eclipse安装Android SDK安装ADT

10、安装创立AVDJDKJava Development Kit是Sun Microsystems针对Java开发员的产品。自从Java诞生以来,JDK已经成为最广泛的Java SDK。JDK是整个Java的核心内容,包括了Java运行环境、Java工具和Java根底类库三局部。从Sun的JDK1.5开场,提供了一些非常使用的功能,其版本也不断更新,运行效率得到了非常大的提高。Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组效劳,用于通过插件组建构建开发环境。Eclipse附带了一个标准的插件集,包括Java开发工具Java Development

11、 Kit,JDK。Android SDK即软件开发工具包software development kit。被软件开发工程师用于为特定的软件包、软件架构、硬件平台、操作系统等建立应用软件工具的集合。因此Android SDK是Android专属的开发工具包。其授权协议为Apache,开发语言为Java、需要Android操作系统的支持。23 系统分析与设计可行性研究可行性研究是为了弄清楚系统开发的工程是不是可以实现和值得进展研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进展可执行性的分析是非常必要的,也是很重要的,经过最初的设计目标和进展的实时调查得出以下四点的可行性分析:1技

12、术可行性:Eclipse + Android ADT的技术已经较为成熟,通过SUN公司现被ORCEL公司收购推出的跨平台、动态的JAVA语言进展开发。2运行可行性:该系统需要Android虚拟机环境,Eclipse中安装ADT,DDMS等Google Android相关插件。其运行环境已经相当稳定,它功能丰富,包括了完备的Android程序的编码、调试、测试和发布功能,其中支持所有Android应用开发相关技术,包括SQLite,Skia,3D制作,Android *ML,能够很好的发布Android的应用程序APK包。3法律可行性:因为是自主开发设计,所以不会构成侵权,在法律上是可行的。通过

13、以上的可行性分析,将采用Eclipse+Android ADT + DDMS技术,运用JAVA语言进展系统的开发。系统的需求分析根据分析需求,这个系统必须实现以下的功能:(1) 实现简单的数字计算功能。作为计算器,其核心就是加减乘除。(2) 能够在手机里面以良好的界面。简单计算器能够给予用户良好的人机互动界面。系统的优势Android是以Linu*为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速开展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢送,成为真正意义上的开

14、放式操作系统。3.4系统的流程本程序的流程是一个开机画面,开机画面之后就是计算机的主页面了所有这个简单程序的流程图如图3.1所示。开场显示计算机界面输入数值选择功能键判断选项加减乘除clear完毕图 3.1 流程图4.模板设计与实现4.1计算模块详细设计系统要完成整个的计算器的计算功能,则计算模块就是整个系统的重点模块。没有计算模块系统就不能顺利的完成计算,就无法到达用户的要求。所以计算模块的设计也是本次系统设计中的重点。 系统想要能在屏幕上显示出计算器的样子要有整体的布局,在本模块中要完成布局的具体设计,使用户能够看到整个计算器的画面。同时系统想完成计算功能必须要处理用户的输入,当输入模块的

15、监听传到计算模块中时,计算模块就要根据相应的方法进展进一步的处理。这局部主要是对输入进展的逻辑判断,根本会通过if else来实现逻辑判断。4.2用户界面设计界面设计应该尽量简洁而美观,应该具有良好的交互性。当然,我们每个人可以根据自己的喜好来进展设计,根据我个人的喜好,我最终设计出来的计算器界面如图4.1所示。 图4.1 界面图局部代码: 4.3计算模块设计的实现计算模块则主要描述了计算器的整体,实现了计算器的界面,定义了用户单击的处理方法,通过定义的处理方法来完成用户的操作命令,实现用户的计算要求,这些计算要求包括了数值的输入,小数点的输入,正负号的输入,记忆相关功能的完成,加、减、乘、除

16、等各种计算功能的完成,运算符的替换,初始化系统等等。局部代码:private class mandAction implements OnClickListener Override public void onClick(View view) Button btn = (Button) view; String inputmand = (String) btn.getTe*t(); if (firstFlag) / 首次输入-的情况 if (inputmand.equals(-) editTe*t.setTe*t(-);/ 显示区域的内容设置为- firstFlag = false;/ 改变

17、首次输入的标记 else if (!clearFlag) / 如果flag=false不需要清空显示区的值,就调用方法计算 jsp(Double.parseDouble(editTe*t.getTe*t().toString();/ 保存显示区域的值,并计算 / 保存你点击的运算符 lastmand = inputmand; clearFlag = true;/ 因为我这里已经输入过运算符, 加、减、乘、除等各种计算功能的实现: private void jsp(double *) if (lastmand.equals(+) result += *; else if (lastmand.eq

18、uals(-) result -= *; else if (lastmand.equals(*) result *= *; else if (lastmand.equals(/) result /= *; else if (lastmand.equals(=) result = *; editTe*t.setTe*t( + result); 5 测试用列和结果5.1测试用列通过以下的测试用例进展对游戏各功能模块的测试并加以修改,如表5.1所示。测试编号测试输入期望结果实际结果11+23.03.021*22.02.031/20.50.541/0无结果错误51-34.0-2.06-2程序错误程序错

19、误表5.1 测试用例表5.2测试用列展示图1. 测试1+2时的状态如图5.2所示:图5.2测试结果图2.测试1*2时如图5.3所示:图5.3测试结果图3. 测试1/2时如图5.4所示:图5.4测试结果图测试1/0时如图5.5所示:图5.5测试结果图5.测试1-3如图5.6所示:图5.6测试结果图6.测试输入-2时如图5.7所示: 图5.7测试结果图6小结这次工程android计算器工程设计是在eclipse平台下设计,到现在为止,该系统的功能根本符合了普通计算器的要求,整个系统界面简单明了,使用起来十分方便,具有普通计算器的根本功能,同时拓展了一些普通计算器上没有的局部科学计算功能。在整个开发

20、过程中,从需求分析到总体架构的构思,到最后代码的编写我投入了大量的时间和精力,对系统中的每个功能都进展了反复的调试,修改。因为这是我是第一次系统性的进展软件的开发,不管是在知识层面、开发平台的使用层面还是经历方面都有着很大的欠缺和缺乏,因此本软件难免会有一些功能不完善、界面不美观等一些不尽如人意的地方,但是再短短一个星期的时间内,我已经进展了很大的努力。通过这个android计算器工程设计,我不经稳固了我们在书本上学到和平时教师传授的知识,而且还学到了许多书本上学不到的知识,并运用了网络这个平台查询一些不明白的知识点。指导教师在我软件代码编写和后期软件调试期间,给我很大的帮助。要谢谢各位帮过我

21、的教师和同学。这次的实验让我对我的学过的知识有了深一步的了解。参考文献1 *敏.移动终端的Android移植与应用程序设计D. *电子科技大学 2011 2 王蕾.*招行Android手机银行汇率换算模块的设计与实现D. *大学 2011 3 施金兰.基于Android平台的网络共享研究与实现D. 华东师*大学 2011 4 赵建勋.基于Android平台的移动位置效劳的开发与实现J. 现代商贸工业. 2010(20) 5 李林涛,朱珊虹. 基于Android系统的手机游戏黑白棋的设计与实现J. *学院学报(自然科学版). 2011(03) 6 丛秋波. 用于Android手机操作系统的视频引

22、擎J. 电子设计技术. 2010(07) 7 王丰,付明栋,冯海亮,施玉海. 智能终端图形用户界面设计与实现J. 播送电视信息. 2011(08)8 温敏,艾丽蓉,王志国. Android智能手机系统中文件实时监控的研究与实现J. 科学技术与工程. 2009(07) 9 *牛.基于Android平台的数字电视机顶盒模拟器的研究与开发D. *大学 2012 10 王康.Android RIL研究及其在无线通讯模块上的实现D. *科技大学 2012 附录:package .e*ample;import android.app.Activity; import android.os.Bundle;

23、import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditTe*t; public class MainActivity e*tends Activity private Button btnNum = new Button11;/ 数值按钮 private Button btnmand = new Button5;/ 符号按钮 private EditTe*t editTe*t = null;/ 显示区域

24、 private Button btnClear = null; / clear按钮 private String lastmand; / 用于保存运算符 private boolean clearFlag; / 用于判断是否清空显示区域的值,true需要,false不需要 private boolean firstFlag; / 用于判断是否是首次输入,true首次,false不是首次 private double result; / 计算结果 public MainActivity() / 初始化各项值 result = 0; / *的值 firstFlag = true; / 是首次运算

25、 clearFlag = false; / 不需要清空 lastmand = =; / 运算符 Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); / 获取运算符 btnmand0 = (Button) findViewById(R.id.add); btnmand1 = (Button) findViewById(R.id.subtract); btnmand2 = (Button

26、) findViewById(R.id.multiply); btnmand3 = (Button) findViewById(R.id.divide); btnmand4 = (Button) findViewById(R.id.equal); / 获取数字 btnNum0 = (Button) findViewById(R.id.num0); btnNum1 = (Button) findViewById(R.id.num1); btnNum2 = (Button) findViewById(R.id.num2); btnNum3 = (Button) findViewById(R.id.

27、num3); btnNum4 = (Button) findViewById(R.id.num4); btnNum5 = (Button) findViewById(R.id.num5); btnNum6 = (Button) findViewById(R.id.num6); btnNum7 = (Button) findViewById(R.id.num7); btnNum8 = (Button) findViewById(R.id.num8); btnNum9 = (Button) findViewById(R.id.num9); btnNum10 = (Button) findViewB

28、yId(R.id.point); / 初始化显示结果区域 editTe*t = (EditTe*t) findViewById(R.id.result); editTe*t.setTe*t(0.0); / 实例化监听器对象 NumberAction na = new NumberAction(); mandAction ca = new mandAction(); for (Button bc : btnmand) bc.setOnClickListener(ca); for (Button bc : btnNum) bc.setOnClickListener(na); / clear按钮的动

29、作 btnClear = (Button) findViewById(R.id.clear); btnClear.setOnClickListener(new OnClickListener() Override public void onClick(View view) editTe*t.setTe*t(0.0); / 初始化各项值 result = 0; / *的值 firstFlag = true; / 是首次运算 clearFlag = false; / 不需要清空 lastmand = =; / 运算符 ); / 数字按钮监听器 private class NumberAction

30、 implements OnClickListener Override public void onClick(View view) Button btn = (Button) view; String input = btn.getTe*t().toString(); if (firstFlag) / 首次输入 / 一上就.,就什么也不做 if (input.equals(.) return; / 如果是0.0的话,就清空 if (editTe*t.getTe*t().toString().equals(0.0) editTe*t.setTe*t(); firstFlag = false;/ 改变是否首次输入的标记值 else String editTe*tStr = editTe*t.getTe*t().toString(); / 判断显示区域的值里面是否已经有.,如果有,输入的又是.,就什么都不做 if (editTe*tStr.inde*Of(.) != -1 & input.equals(.) return; / 判断显示区域的值里面只有-,输入的又是.,就什么都不做 if (editTe*tStr.eq

温馨提示

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

最新文档

评论

0/150

提交评论