




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安卓安卓应用程序设计应用程序设计 简易计算器的实现简易计算器的实现 院 系 名称 专 业 名 称 学 生 姓 名 学 生 学 号 课 程 名 称 2016 年 6 月 日 1 系统需求分析系统需求分析 Android 是以 Linux 为核心的手机操作平台 作为一款开放式的操作系统 随着 Android 的快速发展 如今已允许开发者使用多种编程语言来开发 Android 应用程序 而不 再是以前只能使用 Java 开发 Android 应用程序的单一局面 因而受到众多开发者的欢迎 成为真正意义上的开放式操作系统 计算器通过算法实行简单的数学计算从而提高了数学 计算的效率 实现计算器的界面优化 使界面更加友好 操作更加方便 基于 android 的 计算器的设计 系统具有良好的界面 必要的交互信息 简约美观的效果 使用人员能快捷 简单地进行操作 即可单机按钮进行操作 即时准确地获得需要的计算的结果 充分降低 了数字计算的难度和节约了时间 2 系统概要设计系统概要设计 2 1 计算器功能概要设计计算器功能概要设计 根据需求 符合用户的实际要求 系统应实现以下功能 计算器界面友好 方便使用 具有基本的加 减 乘 除功能 能够判断用户输入运算数是否正确 支持小数运算 具有清除功能 图 2 1 系统功能图 整个程序基于 Android 技术开发 除总体模块外主要分为输入模块 显示模块以及计算 模块这三大部分 在整个系统中总体模块控制系统的生命周期 输入模块部分负责读取用 户输入的数据 显示模块部分负责显示用户之前输入的数据以及显示最终的计算结果 计 算模块部分负责进行数据的运算以及一些其他的功能 具体的说 总体模块的作用主要是 生成应用程序的主类 控制应用程序的生命周期 输入模块主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及 响应触屏的按键 需要监听手机动作以及用指针事件处理方法处理触屏的单击动作 同时 提供了较为直观的键盘图形用户界面 显示模块描述了计算器的显示区 即该区域用于显示用户输入的数据以及最终的计算 结果 同时负责显示一些其他的信息 计算模块则主要描述了计算器的整体 实现了计算器的界面 负责计算用户输入数据 包括加 减 乘 除等各种功能 记忆数据的相关功能 清零的功能 图 2 2 三大模块 2 2 输入模块设计输入模块设计 系统如果想完成计算器中各种功能 首先用户要能进行数据输入 由于是在触屏手机 上开发计算器程序 所以要求输入可以直接使用触屏进行 所以在设计的时候就要充分的 考虑这一点 正是由于考虑到这个特殊的地方 所以在进行模块设计中 选择编写输入模 块类的时候会特意选取使用可以支持触屏输入的特殊增强型图形用户界面类 输入模块主要的任务是描述计算器键盘以及实现键盘的监听 即当用户点击按键或者 屏幕的时候监听会去调用相应的处理办法 本模块还需要为系统提供一个较为直观的键盘 图形用户界面 输入模块的功能图如图 图 2 3 输入模块 2 3 显示模块设计显示模块设计 作为手机计算器系统 显示部分也是必不可少的一部分 没有显示部分就没有办法显 示用户输入的数字是否正确 甚至不能显示计算出的结果 由此可见显示模块即包括输入 的部分 因个人技术原因不能显示表达式的形式 也包括输出的部分 显示模块主要完成的任务是描述计算器的显示区 该区域用于显示用户输入的数据以 及最终的计算结果和一些其他信息 同时本模块还将提供调用和设置显示的具体方法 总体系统 显示模块计算模块输入模块 输入模块 设置按钮 按键监听 设置监听调用设置按键监听 显示数据设置显示 图 2 4 显示模块 2 4 计算模块设计计算模块设计 系统要完成整个的计算器的功能 那么计算模块就是整个系统的重要模块 没有计算 模块系统就不能顺利的完成计算 就无法达到用户的要求 所以计算模块的设计也是本次 系统设计的重点 系统想要能在屏幕上显示出计算器的样子要有整体的布局 在本模块中要完成布局的 具体设计 使用户能够看到整个计算器的界面 同时系统想完成 计算功能必须要处理用户 的输入 当输入模块的监听传到计算模块中时 计算模块就要根据相应的方法进行进一步 的处理 图 2 5 计算模块 显示模块 显示区设置 计算模块 整体布局逻辑判断 运算输入判断数值输入判断 普通运算功能 记忆相关功能清零功能 3 设计与实现部分设计与实现部分 3 1 应用程序构成应用程序构成 Android 应用程序一般是由 Activity Serviece Content Provider Intent Intent Receiver Notification 六个组件构成 但并非每一个 Android 应用程序都包含这六个组件 1 Activity 活动 应用程序的表示层 Activity 是 Android 的基本组件 每一个 activity 代表一个单独的屏幕 每一个 activity 都是继承于 Activity 的独立类 这个 activity 类将会显示出几个 Views 控件组成的用户接口 并对事件作出响应 Android 使用了 Intent 实现在屏幕与屏幕之间跳转 Activity 跳转时只需要调用 startActivity Intent myIntent 方法 然后 系统会在所有安装的应用程序中定义的 IntentFilter 中查找 找到最匹配 myIntent 的 Intent 对应的 activity 新的 activity 接收到 myIntent 的通知后 开始启动运行 当 startActivity 方法被调用将触发解析 myIntent 的动 作 这个机制提供了两个关键的好处 能够重复利用从其他组件中以 Intent 的形式产生的 一个请求和可以在任何时候被一个具有相同 IntentFilter 的新的 startActivity 取代 2 Service 服务 Android 应用程序的后台运行组件 Service 没有用户界面的程序 服务组件在后台运行 它们可以更新数据源和可见的 Activity 并触发 Notification 它们被 用来执行一些需要在后台持续的常规处理 例如媒体播放器这个 activity 会使用 Context startService 方法 连接到一个 service 上 如果这个 service 还没有运行将启动 它 当连接到一个 service 之后 我们还可以通过 service 提供的接口与它进行通讯 3 Content Provider 内容提供器 用来管理和分享应用程序数据库 Content Provider 是在应用程序之间共享数据的首选方法 通过配置 Content Provider 允许 其他应用程序访问存储的数据 也可以使用其他应用程序提供的 Content Provider 来访问它 们存储的数据 Android 平台也提供了系统自带的 Content Provider 如联系人信息等 4 Intent 意向 Activity 之间的粘合剂 使用 Intent 可以在系统范围内向目标 活动或者服务广播消息 说明希望执行某个动作的意图 之后系统就会确定那些最适合执 行动作的目标 5 Notification 通知 一种用户通知框架 通过允许向用户发送信号 而不会过 分吸引他们的注意力或者打断他们当前的活动 它们是服务或者广播接收器吸引用户注意 的首选方法 例如 当设备接收到一个文本消息或者来电的时候 它可以通过闪灯 发出 声音 显示图标或则会显示对话框信息的方式提示用户 6 Intent Receiver 意向接收器 通过 Intent Receiver 实现应用能够对一个外部的 事件作出响应 Intent Receiver 在 AndroidManifest xml 中注册 但也可以在代码中使用 Context registerReceiver 进行注册 当一个 intent receive 被触发时 应用不必对请求调用 intent receive 系统会在需要的时候启动你的应用 各种应用还可以通过使用 Context broadcastIntent 将它们自己的 intent receive 广播给其他应用程序 3 2 功能的具体实现功能的具体实现 1 计算器布局设计 分别实用 Button 按钮操作 17 个按钮 分别是 0 9 清除按钮 以及 EditTest 的文本域 并通过代码布局调整布局 使布局更加清晰 简洁 布局方式如图所示 代码实现如下 2 计算功能实现 加法实现 从 editTest 中获取数字赋值于 num1 等待数字 num2 的输入 代码如下 case R id button13 String mystringadd edit getText toString if mystringadd equals null return num1 Double valueOf mystringadd edit setText null op 1 isClickEqu false break 减法实现 乘法实现 除法实现和加法实现大体相同 但是 op 的赋值不同分别是 2 3 4 然后进行等号的计算实现 在同时记录下文本中的 num2 的数值 然后设置 switch 方法 case 中 op 的值分别为 1 2 3 4 代表的分别加 减 乘 除 然后根据 case 选项进行相 应的加 减 乘 除运算 代码实现如下所示 case R id button12 等号 算法实现 String myStringeq edit getText toString if myStringeq equals null return num2 Double valueOf myStringeq edit setText null switch op case 0 Result num2 break case 1 Result num1 num2 break case 2 Result num1 num2 break case 3 Result num1 num2 break case 4 Result num1 num2 break edit setText String valueOf Result isClickEqu true break 4 运行界面截图运行界面截图 运行结果界面 除法 20 除以 4 的结果 乘法3 89 乘以 1 2 的结果 减法3 6 减去 0 6 除数为零 点击清除之后的效果 5 核心代码核心代码 import android app Activity import android os Bundle import android view Menu import android view View import android view View OnClickListener import android widget Button import android widget EditText import android widget Toast public class MainActivity extends Activity implements OnClickListener Button button1 button2 button3 button4 button5 button6 button7 button8 Button button9 button10 button11 button12 button13 button14 button15 button16 button17 EditText edit null double num1 0 num2 0 Result 0 boolean isClickEqu false int op 0 Override protected void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentView R layout activity main button1 Button this findViewById R id button1 button2 Button this findViewById R id button2 button3 Button this findViewById R id button3 button4 Button this findViewById R id button4 button5 Button this findViewById R id button5 button6 Button this findViewById R id button6 button7 Button this findViewById R id button7 button8 Button this findViewById R id button8 button9 Button this findViewById R id button9 button10 Button this findViewById R id button10 button11 Button this findViewById R id button11 button12 Button this findViewById R id button12 button13 Button this findViewById R id button13 button14 Button this findViewById R id button14 button15 Button this findViewById R id button15 button16 Button this findViewById R id button16 button17 Button this findViewById R id button17 edit EditText findViewById R id editText1 button1 setOnClickListener this button2 setOnClickListener this button3 setOnClickListener this button4 setOnClickListener this button5 setOnClickListener this button6 setOnClickListener this button7 setOnClickListener this button8 setOnClickListener this button9 setOnClickListener this button10 setOnClickListener this button11 setOnClickListener this button12 setOnClickListener this button13 setOnClickListener this button14 setOnClickListener this button15 setOnClickListener this button16 setOnClickListener this button17 setOnClickListener this Override public boolean onCreateOptionsMenu Menu menu Inflate the menu this adds items to the action bar if it is present getMenuInflater inflate R menu main menu return true Override public void onClick View v TODO Auto generated method stub switch v getId case R id button17 edit setText null Toast makeText MainActivity this 已经清除 Toast LENGTH LONG show break case R id button1 if isClickEqu edit setText null isClickEqu false String myString1 edit getText toString myString1 1 edit setText myString1 break case R id button2 if isClickEqu edit setText null isClickEqu false String myString2 edit getText toString myString2 2 edit setText myString2 break case R id button3 if isClickEqu edit setText null isClickEqu false String myString3 edit getText toString myString3 3 edit setText myString3 break case R id button4 if isClickEqu edit setText null isClickEqu false String myString4 edit getText toString myString4 4 edit setText myString4 break case R id button5 if isClickEqu edit setText null isClickEqu false String myString5 edit getText toString myString5 5 edit setText myString5 break case R id button6 if isClickEqu edit setText null isClickEqu false String myString6 edit getText toString myString6 6 edit setText myString6 break case R id button7 if isClickEqu edit setText null isClickEqu false String myString7 edit getText toString myString7 7 edit setText myString7 break case R id button8 if isClickEqu edit setText null isClickEqu false String myString8 edit getText toString myString8 8 edit setText myString8 break case R id button9 if isClickEqu edit setText null isClickEqu false String myString9 edit getText toString myString9 9 edit setText myString9 break case R id button10 if isClickEqu edit setText null isClickEqu false String myString10 edit getText toString myString10 0 edit setText myString10 break 点 case R id button11 if isClickEqu edit setText null isClickEqu false String myString11 edit getText toString myString11 edit setText myString11 break 加 case R id button13 String mystringadd edit getText toString if mystringadd equals null return num1 Double valueOf mystringadd edit setText null op 1 isClick
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美学全真模拟试卷及答案
- 2025承接大学食堂经营合同(标准版)
- 规划重点-饲用氨基磺酸项目建议书(立项报告)
- 2025年燃气发电机组项目策划方案报告
- 2025年文物保护修复技术资格考试试题及答案解析
- 2025年中国叔丁基甲基醚项目创业计划书
- 工贸行业安全生产培训考试试卷试题含答案
- 2025年中国丝印刮胶项目商业计划书
- 承插盘扣式满堂脚手架安全专项施工方案
- 2025年中国汽车塑料化项目创业计划书
- 2024年小学六年级语文阅读理解讲义:记叙文阅读训练
- 中建三局三公司安装分公司劳务企业定额
- DL∕T 1487-2015 单相智能电能表技术规范
- 海南省文昌市2023-2024学年八年级上学期期中检测语文试题
- 中国少年先锋队队史
- 老年临终哀伤辅导护理
- 学校人才引进方案
- 多组学数据的整合与分析
- 工余安全知识培训
- 初中英语试卷讲评课课件
- 23秋国家开放大学《液压气动技术》形考任务1-3参考答案
评论
0/150
提交评论