




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实 训 报 告实训项目名称 基于Android计算器的开发与测试 二 级 学 院 信息工程学院 专 业 班 级 11级 姓 名 学 号 日 期 2014-11-19 项目名称基于安卓计算器的开发与测试地点教13 603报 告 内 容在本报告中,我们主要介绍了国内目前手机系统和软件的现状和发展,针对这方面我们设计了基于Android计算器。报告内容大致分为三个部分。第一部分首先介绍了需求分析,其中介绍了计算器最基本的功能。之后还有一些按键的设置以及计算器的基本功能。第二部分我们介绍了关于计算器的总体设计和详细设计其中我们用了两个流程图来表示,分别是程序设计流程图和软件设计流程图。然后还包含了计算
2、器模块的设计。第三部分为计算器的测试部分,其中我们对计算器进行了多方的测试。此外还有测试用例图。教师评语成绩: 教师签名: 摘 要Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的,应用程序可以轻松的嵌入网络、应用程序可以并行运行。而简单计算器又是手机上必备的小程序,所以此次创新实践很有意义。并且具有很强的使用性。关键字:计算器,
3、Android,移动设备目录1 绪论51.1研究背景52 游戏系统开发平台63 系统分析与设计73.1可行性研究73.2系统的需求分析73.3系统的优势83.4系统的流程84.模板设计与实现95 测试用列和结果125.1测试用列125.2测试用列展示图126 小结15参考文献16附录:171 绪论1.1 研究背景(1) 计算器背景目前手机可以说是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开始代替固定电话的通话功能,以及一些原来电脑软件上的功能了。手机上的软件也随着手机的发展变得丰富起来了,时至今日已经出现了很多专门制作手机软件的公司,虽然制作的
4、多是游戏软件,但是一些辅助性的工具软件也有了很多.我们在此次系统中所做的工作主要是设计整个系统以及利用编程语言实现整个系统,使系统能够正确的运行计算功能。(2) Android系统简介Android 系统构架简介:Android是一个基于LinuxV2.6内核的交互性操作环境,同时它也是一个分层系统,Android系统架构显示如下图1.1。图1.1系统架构图 应用层由所有的Android应用程序组成。其中包括电子邮件客户端,SMS程序,地图,浏览器,联系人及其他。所有的应用程序都是用Java编程语言编写的。 1.Activity 顾名思义,Activity就是活动。应用程序必须至少包含一个Ac
5、tivity。Activity提供了一个虚拟的用户接口,每一个Activity都有一个默认的窗口可以用来显示用户界面,一般情况下,它是全屏的窗口。例如,影音播放软件的每个用户界面就是Activity。 2.Service Service与Activity的主要区别在于,Service是在后台活动的,它没有用户界面。典型的应用场景是,用户选择了一个播放列表开始播放后,离开了该用户界面(Activity),如果仍然希望歌曲不会暂停,就可以用Service去调用播放器,而不是在Activity中调用播放器。 3.Intent 在Android中,每一个行为都可以抽象为一个Intent。可以简单地把I
6、ntent理解为一个包含了数据的消息。Intent可以用于启动一个Act-ivity或者Service,可以用于进程间的通信。事实上,应用程序的启动也是通过Intent实现的。 4.Content providers Android平台内置了一套SQLite数据储存机制,并包含一系列管理SQLite Database的相关方法。在应用程序中,可以通过Content prov-iders访问数据库。每个Content provider都定义了一系列的方法用于访问它对应的数据库。应用程序在新建数据库时也可以定义相应的Con-tent provider用于向其他应用程序共享数据。一般情况下,应用程序
7、不直接调用Content provider定义的函数,而是通过ContentResolver间接调用。2 游戏系统开发平台采用Eclipse开发工具,在Windows 7下进行,基于Android 4.2.2操作系统,使用的语言是Java语言。环境搭建:1) JDK安装2) Eclipse安装3) Android SDK安装4) ADT安装创建AVDJDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java诞生以来,JDK已经成为最广泛的Java SDK。JDK是整个Java的核心内容,包括了Java运行环境、Java工具和Jav
8、a基础类库三部分。从Sun的JDK1.5开始,提供了一些非常使用的功能,其版本也不断更新,运行效率得到了非常大的提高。Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组建构建开发环境。Eclipse附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。Android SDK即软件开发工具包(software development kit)。被软件开发工程师用于为特定的软件包、软件架构、硬件平台、操作系统等建立应用软件工具的集合。因此Android SDK是Android专属的开发工
9、具包。其授权协议为Apache,开发语言为Java、需要Android操作系统的支持。23 系统分析与设计3.1 可行性研究可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的,经过最初的设计目标和进行的实时调查得出以下四点的可行性分析:(1)技术可行性:Eclipse + Android ADT的技术已经较为成熟,通过SUN公司(现被ORCEL公司收购)推出的跨平台、动态的JAVA语言进行开发。(2)运行可行性:该系统需要Android虚拟机环境,Eclipse中安装ADT,D
10、DMS等Google Android相关插件。其运行环境已经相当稳定,它功能丰富,包括了完备的Android程序的编码、调试、测试和发布功能,其中支持所有Android应用开发相关技术,包括SQLite,Skia,3D制作,Android XML,能够很好的发布Android的应用程序APK包。(3)法律可行性:因为是自主开发设计,所以不会构成侵权,在法律上是可行的。通过以上的可行性分析,将采用Eclipse+Android ADT + DDMS技术,运用JAVA语言进行系统的开发。3.2 系统的需求分析根据分析需求,这个系统必须实现以下的功能:(1) 实现简单的数字计算功能。作为计算器,其核
11、心就是加减乘除。(2) 能够在手机里面以良好的界面。简单计算器能够给予用户良好的人机互动界面。3.3 系统的优势Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。3.4系统的流程 本程序的流程是一个开机画面,开机画面之后就是计算机的主页面了所有这个简单程序的流程图如图3.1所示。开始显示计算机界面输入数值选择功能键判断选项加减乘除clear结束图 3.1
12、流程图4.模板设计与实现 4.1计算模块详细设计系统要完成整个的计算器的计算功能,那么计算模块就是整个系统的重点模块。没有计算模块系统就不能顺利的完成计算,就无法达到用户的要求。所以计算模块的设计也是本次系统设计中的重点。 系统想要能在屏幕上显示出计算器的样子要有整体的布局,在本模块中要完成布局的具体设计,使用户能够看到整个计算器的画面。同时系统想完成计算功能必须要处理用户的输入,当输入模块的监听传到计算模块中时,计算模块就要根据相应的方法进行进一步的处理。这部分主要是对输入进行的逻辑判断,基本会通过if else来实现逻辑判断。4.2用户界面设计界面设计应该尽量简洁而美观,应该具有良好的交互
13、性。当然,我们每个人可以根据自己的喜好来进行设计,根据我个人的喜好,我最终设计出来的计算器界面如图4.1所示。 图4.1 界面图部分代码: 4.3计算模块设计的实现计算模块则主要描述了计算器的整体,实现了计算器的界面,定义了用户单击的处理办法,通过定义的处理办法来完成用户的操作命令,实现用户的计算要求,这些计算要求包括了数值的输入,小数点的输入,正负号的输入,记忆相关功能的完成,加、减、乘、除等各种计算功能的完成,运算符的替换,初始化系统等等。部分代码:private class CommandAction implements OnClickListener Override public
14、void onClick(View view) Button btn = (Button) view; String inputCommand = (String) btn.getText(); if (firstFlag) / 首次输入-的情况 if (inputCommand.equals(-) editText.setText(-);/ 显示区域的内容设置为- firstFlag = false;/ 改变首次输入的标记 else if (!clearFlag) / 如果flag=false不需要清空显示区的值,就调用方法计算 jsp(Double.parseDouble(editText
15、.getText().toString();/ 保存显示区域的值,并计算 / 保存你点击的运算符 lastCommand = inputCommand; clearFlag = true;/ 因为我这里已经输入过运算符, 加、减、乘、除等各种计算功能的实现: private void jsp(double x) if (lastCommand.equals(+) result += x; else if (lastCommand.equals(-) result -= x; else if (lastCommand.equals(*) result *= x; else if (lastCom
16、mand.equals(/) result /= x; else if (lastCommand.equals(=) result = x; editText.setText( + result); 5 测试用列和结果5.1测试用列通过以下的测试用例进行对游戏各功能模块的测试并加以修改,如表5.1所示。测试编号测试输入期望结果实际结果11+23.03.021*22.02.031/20.50.541/0无结果错误51-(-3)4.0-2.06-2程序错误程序错误表5.1 测试用例表5.2测试用列展示图1. 测试1+2时的状态如图5.2所示:图5.2测试结果图2.测试1*2时如图5.3所示:图5.
17、3测试结果图3. 测试1/2时如图5.4所示:图5.4测试结果图4. 测试1/0时如图5.5所示:图5.5测试结果图5.测试1-(-3)如图5.6所示: 图5.6测试结果图6.测试输入-2时如图5.7所示: 图5.7测试结果图6 小结 这次项目android计算器项目设计是在eclipse平台下设计,到现在为止,该系统的功能基本符合了普通计算器的要求,整个系统界面简单明了,使用起来十分方便,具有普通计算器的基本功能,同时拓展了一些普通计算器上没有的部分科学计算功能。在整个开发过程中,从需求分析到总体架构的构思,到最后代码的编写我投入了大量的时间和精力,对系统中的每个功能都进行了反复的调试,修改
18、。因为这是我是第一次系统性的进行软件的开发,不论是在知识层面、开发平台的使用层面还是经验方面都有着很大的欠缺和不足,因此本软件难免会有一些功能不完善、界面不美观等一些不尽如人意的地方,但是再短短一个星期的时间内,我已经进行了很大的努力。通过这个android计算器项目设计,我不经巩固了我们在书本上学到和平时老师传授的知识,而且还学到了许多书本上学不到的知识,并运用了网络这个平台查询一些不明白的知识点。指导老师在我软件代码编写和后期软件调试期间,给我很大的帮助。要谢谢各位帮过我的老师和同学。这次的实验让我对我的学过的知识有了深一步的了解。 参考文献1 刘敏.移动终端的Android移植与应用程序
19、设计D. 西安电子科技大学 2011 2 王蕾.哈尔滨招行Android手机银行汇率换算模块的设计与实现D. 吉林大学 2011 3 施金兰.基于Android平台的网络共享研究与实现D. 华东师范大学 2011 4 赵建勋.基于Android平台的移动位置服务的开发与实现J. 现代商贸工业. 2010(20) 5 李林涛,朱珊虹. 基于Android系统的手机游戏黑白棋的设计与实现J. 新乡学院学报(自然科学版). 2011(03) 6 丛秋波. 用于Android手机操作系统的视频引擎J. 电子设计技术. 2010(07) 7 王丰,付明栋,冯海亮,施玉海. 智能终端图形用户界面设计与实现
20、J. 广播电视信息. 2011(08)8 温敏,艾丽蓉,王志国. Android智能手机系统中文件实时监控的研究与实现J. 科学技术与工程. 2009(07) 9 刘牛.基于Android平台的数字电视机顶盒模拟器的研究与开发D. 兰州大学 2012 10 王康.Android RIL研究及其在无线通讯模块上的实现D. 太原科技大学 2012 附录: package com.example;import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.Vi
21、ew.OnClickListener; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity private Button btnNum = new Button11;/ 数值按钮 private Button btnCommand = new Button5;/ 符号按钮 private EditText editText = null;/ 显示区域 private Button btnClear = null; / clear按钮 pr
22、ivate String lastCommand; / 用于保存运算符 private boolean clearFlag; / 用于判断是否清空显示区域的值,true需要,false不需要 private boolean firstFlag; / 用于判断是否是首次输入,true首次,false不是首次 private double result; / 计算结果 public MainActivity() / 初始化各项值 result = 0; / x的值 firstFlag = true; / 是首次运算 clearFlag = false; / 不需要清空 lastCommand =
23、=; / 运算符 Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); / 获取运算符 btnCommand0 = (Button) findViewById(R.id.add); btnCommand1 = (Button) findViewById(R.id.subtract); btnCommand2 = (Button) findViewById(R.id.multiply);
24、 btnCommand3 = (Button) findViewById(R.id.divide); btnCommand4 = (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.num3); btnNum4 = (Button
25、) 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) findViewById(R.id.point); / 初始化显示
26、结果区域 editText = (EditText) findViewById(R.id.result); editText.setText(0.0); / 实例化监听器对象 NumberAction na = new NumberAction(); CommandAction ca = new CommandAction(); for (Button bc : btnCommand) bc.setOnClickListener(ca); for (Button bc : btnNum) bc.setOnClickListener(na); / clear按钮的动作 btnClear = (B
27、utton) findViewById(R.id.clear); btnClear.setOnClickListener(new OnClickListener() Override public void onClick(View view) editText.setText(0.0); / 初始化各项值 result = 0; / x的值 firstFlag = true; / 是首次运算 clearFlag = false; / 不需要清空 lastCommand = =; / 运算符 ); / 数字按钮监听器 private class NumberAction implements
28、OnClickListener Override public void onClick(View view) Button btn = (Button) view; String input = btn.getText().toString(); if (firstFlag) / 首次输入 / 一上就.,就什么也不做 if (input.equals(.) return; / 如果是0.0的话,就清空 if (editText.getText().toString().equals(0.0) editText.setText(); firstFlag = false;/ 改变是否首次输入的标记值 else String editTextStr = editText.getText().toString(); / 判断显示区域的值里面是否已经有.,如果有,输入的又是.,就什么都不做 if (editTextStr.indexOf(.) != -1 & input.equals(.) return; / 判断显示区域的值里面只有-,输入的又是.,就什么都不做 if (editTextStr.equals(-) & input.equals(.) return; / 判断显示区域的值如果是0,输入的不是.,就什么也不做 if (editTextStr.equals(0)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人工心脏辅助循环支持装置创新创业项目商业计划书
- 半通有阈构形的组合性质研究
- 临时用海管理暂行办法
- 丰城社区矫正管理办法
- 乱扔烟头垃圾管理办法
- 企业核查管理暂行办法
- 纪检监察业务知识考试题库及答案
- 价格调节基金管理办法
- 企业数据泄露管理办法
- 车用锂离子电池大功率充电方法的研究
- 医共体人事编制管理办法
- 小儿肛周脓肿护理
- 山东畜牧兽医单招考试题及答案
- 玉米杂交种子质量控制与高效制种技术的应用探索
- 2025年 北京海淀区招聘社区工作者考试笔试试卷附答案
- 商户安全生产培训课件
- 【扶臂式挡土墙迎水坡和背水坡堤防整体抗滑稳定计算案例1200字】
- 四川省广元市2024-2025学年第二学期八年级期末考试数学试卷(无答案)
- 死亡病例讨论制度落实与质控优化
- 痛经的中医护理
- DB32∕T 5048-2025 全域土地综合整治项目验收规范
评论
0/150
提交评论