收藏 分销(赏)

基于安卓的计算器的设计及其实现.docx

上传人:a199****6536 文档编号:2687157 上传时间:2024-06-04 格式:DOCX 页数:28 大小:136.15KB
下载 相关 举报
基于安卓的计算器的设计及其实现.docx_第1页
第1页 / 共28页
基于安卓的计算器的设计及其实现.docx_第2页
第2页 / 共28页
基于安卓的计算器的设计及其实现.docx_第3页
第3页 / 共28页
基于安卓的计算器的设计及其实现.docx_第4页
第4页 / 共28页
基于安卓的计算器的设计及其实现.docx_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、安卓应用程序设计简易计算器实现院(系)名称专 业名 称学 生姓 名学 生 学 号课 程 名 称6月 日 1. 系统需求分析Android是以Linux为关键手机操作平台,作为一款开放式操作系统,伴随Android快速发展,现在已许可开发者使用多个编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序单一局面,所以受到众多开发者欢迎,成为真正意义上开放式操作系统。计算器经过算法实施简单数学计算从而提升了数学计算效率,实现计算器界面优化,使界面愈加友好,操作愈加方便。基于android计算器设计,系统含有良好界面;必需交互信息;简约美观效果。使用人员能快捷简单

2、地进行操作,即可单机按钮进行操作,即时正确地取得需要计算结果,充足降低了数字计算难度和节省了时间。2. 系统概要设计2.1计算器功效概要设计依据需求,符适用户实际要求,系统应实现以下功效:计算器界面友好,方便使用,含有基础加、减、乘、除功效,能够判定用户输入运算数是否正确,支持小数运算,含有清除功效。图2.1系统功效图整个程序基于Android技术开发,除总体模块外关键分为输入模块、显示模块和计算模块这三大部分。在整个系统中总体模块控制系统生命周期,输入模块部分负责读取用户输入数据,显示模块部分负责显示用户之前输入数据和显示最终计算结果,计算模块部分负责进行数据运算和部分其它功效。具体说,总体

3、模块作用关键是生成应用程序主类,控制应用程序生命周期。输入模块关键描述了计算器键盘和键盘监听即关键负责读取用户键盘输入和响应触屏按键,需要监听手机动作和用指针事件处理方法处理触屏单击动作。同时提供了较为直观键盘图形用户界面。显示模块描述了计算器显示区,即该区域用于显示用户输入数据和最终计算结果,同时负责显示部分其它信息。计算模块则关键描述了计算器整体,实现了计算器界面,负责计算用户输入数据,包含加、减、乘、除等多种功效,记忆数据相关功效,清零功效。总体系统显示模块计算模块输入模块图2.2三大模块2.2输入模块设计系统假如想完成计算器中多种功效,首先用户要能进行数据输入,因为是在触屏手机上开发计

4、算器程序,所以要求输入能够直接使用触屏进行,所以在设计时候就要充足考虑这一点。正是因为考虑到这个特殊地方,所以在进行模块设计中,选择编写输入模块类时候会特意选择使用能够支持触屏输入特殊增强型图形用户界面类。输入模块关键任务是描述计算器键盘和实现键盘监听,即当用户点击按键或屏幕时候监听会去调用对应处理措施,本模块还需要为系统提供一个较为直观键盘图形用户界面。输入模块功效图图输入模块设置按钮按键监听设置按键监听设置监听调用图2.3输入模块2.3显示模块设计作为手机计算器系统,显示部分也是必不可少一部分。没有显示部分就没有措施显示用户输入数字是否正确,甚至不能显示计算出结果,由此可见显示模块即包含输

5、入部分(因个人技术原因不能显示表示式形式)也包含输出部分。显示模块关键完成任务是描述计算器显示区,该区域用于显示用户输入数据和最终计算结果和部分其它信息。同时本模块还将提供调用和设置显示具体方法显示模块显示区设置显示数据设置显示图2.4显示模块2.4计算模块设计系统要完成整个计算器功效,那么计算模块就是整个系统关键模块。没有计算模块系统就不能顺利完成计算,就无法达成用户要求。所以计算模块设计也是此次系统设计关键。系统想要能在屏幕上显示出计算器样子要有整体布局。在本模块中要完成布局具体设计,使用户能够看到整个计算器界面。同时系统想完成计算功效必需要处理用户输入,当输入模块监听传到计算模块中时,计

6、算模块就要依据对应方法进行深入处理。计算模块逻辑判定整体布局数值输入判定运算输入判定一般运算功效清零功效记忆相关功效图2.5计算模块3.设计和实现部分3.1应用程序组成Android应用程序通常是由Activity、Serviece、ContentProvider、Intent、IntentReceiver、Notification六个组件组成。但并非每一个Android应用程序全部包含这六个组件。(1)Activity(活动):应用程序表示层。Activity是Android基础组件。每一个activity代表一个单独屏幕。每一个activity全部是继承于Activity独立类。这个act

7、ivity类将会显示出多个Views控件组成用户接口,并对事件作出响应。Android使用了Intent,实现在屏幕和屏幕之间跳转。Activity跳转时只需要调用startActivity(IntentmyIntent)方法。然后,系统会在全部安装应用程序中定义IntentFilter中查找,找到最匹配myIntentIntent对应activity。新activity接收到myIntent通知后,开始开启运行。当startActivity方法被调用将触发解析myIntent动作,这个机制提供了两个关键好处:能够反复利用从其它组件中以Intent形式产生一个请求和能够在任何时候被一个含有相同

8、IntentFilter新startActivity替换。(2)Service(服务):Android应用程序后台运行组件。Service没有用户界面程序。服务组件在后台运行,它们能够更新数据源和可见Activity,并触发Notification。它们被用来实施部分需要在后台连续常规处理。比如媒体播放器这个activity会使用Context.startService()方法,连接到一个service上(假如这个service还没有运行将开启它)。当连接到一个service以后,我们还能够经过service提供接口和它进行通讯。(3)ContentProvider(内容提供器):用来管理和分

9、享应用程序数据库。ContentProvider是在应用程序之间共享数据首选方法。经过配置ContentProvider许可其它应用程序访问存放数据,也能够使用其它应用程序提供ContentProvider来访问它们存放数据。Android平台也提供了系统自带ContentProvider,如联络人信息等。(4)Intent(意向):Activity之间粘合剂。使用Intent,能够在系统范围内向目标活动或服务广播消息,说明期望实施某个动作意图。以后系统就会确定那些最适合实施动作目标。(5)Notification(通知):一个用户通知框架。经过许可向用户发送信号,而不会过分吸引她们注意力或打

10、断她们目前活动。它们是服务或广播接收器吸引用户注意首选方法。比如,当设备接收到一个文本消息或来电时候,它能够经过闪灯、发出声音、显示图标或则会显示对话框信息方法提醒用户。(6)IntentReceiver(意向接收器):经过IntentReceiver实现应用能够对一个外部事件作出响应,IntentReceiver在AndroidManifest.xml中注册,但也能够在代码中使用Context.registerReceiver()进行注册。当一个intentreceive被触发时,应用无须对请求调用intentreceive,系统会在需要时候开启你应用。多种应用还能够经过使用Context.

11、broadcastIntent()将它们自己intentreceive广播给其它应用程序。3.2功效具体实现(1)计算器布局设计:分别实用Button按钮操作17个按钮,分别是+、*、/、=、0-9、清除按钮,和EditTest文本域,并经过代码布局调整布局,使布局愈加清楚,简练。布局方法图所表示:代码实现以下: (2)计算功效实现加法实现:从editTest中获取数字赋值于num1,等候数字num2输入。代码以下:case R.id.button13: String mystringadd = edit.getText().toString(); if(mystringadd.equals(

12、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=ed

13、it.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; b

14、reak; 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.widge

15、t.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;Edit

16、Text edit=null;double num1 = 0, num2 = 0 ,Result =0;boolean isClickEqu = false;int op = 0; Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button1=(Button)this.findViewById(R.id.button1);button2=(Button)this. findVi

17、ewById(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

18、(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. findViewB

19、yId(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.setOnClic

20、kListener(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.setOnClic

21、kListener(this);button13.setOnClickListener(this);button14.setOnClickListener(this);button15.setOnClickListener(this);button16.setOnClickListener(this);button17.setOnClickListener(this);Overridepublic boolean onCreateOptionsMenu(Menu menu) / Inflate the menu; this adds items to the action bar if it

22、is present.getMenuInflater().inflate(R.menu.main, menu);return true;Overridepublic void onClick(View v) / TODO Auto-generated method stubswitch(v.getId()case R.id.button17: edit.setText(null); Toast.makeText(MainActivity.this, 已经清除, Toast.LENGTH_LONG).show(); break;case R.id.button1:if(isClickEqu) e

23、dit.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.bu

24、tton3: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;

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服