安卓计算器开发实验报告
安卓计算器开发实验报告
嵌入式WebOS应用开发实验报告实验名称:使用An droid Developer SDK开发应用程序专业:_________________________姓名:__________________________________班级:_______________________________学号:______________________________一、作品的运行环境及安卓SDK基础操作SDK An droid Developer 是一款在windows系统上运行的针对An droid应用开发的谷歌官方软件(需要JAVA环境支持)。
1、导入工程2、建立虚拟机在运行虚拟机是为保证机器的顺畅运行建议选择分辨率较低的虚拟机,但是其RAM最好设为512MB因为部分程序如果调用资源过大会导致虚拟机无法运行。
3、虚拟机界面二、作品介绍我的应用是一个计算器。
能实现包括小数的加减乘除运算,结果过大会自动用科学记数法表示,另外还有退格跟清屏功能键。
加应用图标 1.首先在我的桌面上添加你应 用的图标以及文字,双击图标后项中自行进行挑选;也可以添加自己的图片,只要将图片放到对应的文件夹之下在刷新就可 以,但不建议放分辨率 过高图片可能会出现超 出界面的等错误。
要在xml 界面中添加排版:xml 代码首末的 </AbsoluteLayout> 格式较为自由可以直接在界面中拖动图标位置以及修改大小,而其他layout 则更会自动排列, 各有优劣。
三、 编程以及运行调试(一)、在MyDesktop 主界面中添 fin^_ok,prig 世IF it launchiWipng32E img'O.png jdE im^il.png] 3Eimg?.pHg 血 imql.pngi 32E img4.png 血 im^S.pngi Tn? imgg.png JJL -mgT.pngj ..1. imy^.png..1. uiHiprxg就可以看见对应的代码, 可直接在代码中进行修改图片文字的 大小颜色等等。
android开发——简易计算器的设计报告
简易计算机的设计摘要:Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。
Android的功能十分强大,成为当今软件行业的一股新兴力量。
Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的、应用程序可以轻松的嵌入网络、应用程序可以并行运行。
一、实训目的1、了解Android系统,学会Android开发环境的搭建。
2、了解E clipse,学会用E clipse和Java 开发一个Android程序。
3、进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,能够熟练的应用面向对象的思想和设计方法解决实际问题的能力。
4、巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。
二、实训任务1、Activity的相关知识简单理解Activity 代表一个用户所能看到的屏幕,Activity 主要是处理一个应用的整体性工作。
Activity是最基本的Android 应用程序组件,应用程序中,一个活动通常就是一个单独的屏幕。
每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口,并对事件做出响应。
大多数的应用是由多个屏幕显示组成,因而要用到多个Activity。
(1)Activity的相关方法及相关函数:void onCreate(Bundle)首次启动时调用,接受参数:Null or savedInstanceState(保存的以前某些状态信息);void onStart() 说明了将要显示给用户的活动;void onRestart()将处于停止状态的活动重新显示给用户;void onResume()用户可以开始与活动进行交互时调用。
安卓实验报告
安卓实验报告Android是目前全球最为流行的操作系统之一,其强大的应用程序生态系统和广泛的设备兼容性使得安卓成为开发者和用户的首选。
本文将介绍我在安卓实验中进行的一系列任务和实验结果。
实验一:安装开发环境在进行安卓开发之前,我们首先需要安装必要的开发环境。
我使用的是Android Studio,这是谷歌官方提供的开发工具,具有强大的功能和友好的用户界面。
通过安装Android Studio,我成功搭建了安卓开发环境,并进行了一些基本的配置。
实验二:创建第一个安卓应用程序根据老师的指导,我按照步骤成功创建了我的第一个安卓应用程序。
我选择了一个简单的计算器应用程序作为开始,它可以实现基本的加法和减法功能。
通过这个实验,我学会了使用Android Studio的界面设计工具和编写基本的Java代码。
实验三:UI设计和布局在这个实验中,我学习了安卓应用程序的用户界面设计和布局。
我使用了安卓提供的各种布局方式,如线性布局、相对布局和帧布局等,来设计和展示应用程序的不同界面。
通过这个实验,我对安卓界面设计的原则和技巧有了更深入的理解。
实验四:应用程序调试与测试在开发过程中,调试和测试是非常重要的环节。
通过Android Studio提供的调试工具,我能够针对应用程序中的问题进行定位和修复。
我还学会了使用模拟器和真机进行应用程序的测试,以确保应用程序的功能和稳定性。
实验五:数据库操作在这个实验中,我学习了如何在安卓应用程序中使用数据库。
我使用了SQLite数据库来存储和管理应用程序的数据。
通过编写SQL语句,我能够进行数据的插入、查询、更新和删除等操作。
这为我今后的应用程序开发提供了非常有用的技能。
总结:。
安卓计算器开发试验报告
上海电力学院应用开发嵌入式WebOS 实验报告Android Developer SDK开发应用程序实验名称:使用专业:姓名:班级:学号:作品的运行环境及安卓SDK基础操作一、SDK Android Developer是一款在windows系统上运行的针对Android 应用开发的谷歌官方软件(需要JAVA环境支持)。
1、导入工程2、建立虚拟机在运行虚拟机是为保证机器的顺畅运行建议选择分辨率较低的虚拟机,但是其RAM最好设为512MB,因为部分程序如果调用资源过大会导致虚拟机无法运行。
.3、虚拟机界面二、作品介绍我的应用是一个计算器。
能实现包括小数的加减乘除运算,结果过大会自动用科学记数法表示,另外还有退格跟清屏功能键。
三、编程以及运行调试(一)、在MyDesktop主界面中添加应用图标. 首先在我的桌面上添加你应用的图标以及文字,双击1图标后就可以看见对应的代码,可直接在代码中进行修改图片文字的大小颜色等等。
以下是对应图像图标的代码图片可以在左侧的选;项中自行进行挑选也可以添加自己的图片,只要将图片放到对应的文件夹之下在刷新就可以,但不建议放分辨率过高图片可能会出现超出界面的等错误。
由于计算器的按钮很多,,.xml(二)、在res/layout目录下新建文件界面中添加排版:要在xml</AbsoluteLayout> xml代码首末的格式较为自由可以直接在界面中拖动图标位置以及修改大小,而其他layout则更会自动排列,各有优劣。
计算器的按钮,文件.java目录下新建src/weibo.test.ui、在)三( 算法等都在此实现。
工程名、声明(三)1、在应用中有三处需要声明,首先是在AndroidManifest.xmlMainActivity.java2、然后是在代码展示四、界面代码、.xml(一)?>encoding=甥晴?=<?xml version??\xmlns:android=<LinearLayout晜汩彬慰敲瑮android:layout_width= 晜汩彬慰敲瑮android:layout_height=>癜牥楴慣屬android:orientation=<TableLayoutandroid:id=?椫層琯扡敬慌潹瑵就android:layout_width=浜瑡档灟牡湥屴android:layout_height=睜慲彰潣瑮湥屴android:collapseColumns=?><TableRowandroid:id=?椫層琯扡敬潒彷瑥android:layout_width=晜汩彬慰敲瑮android:layout_height=晜汩彬慰敲瑮><EditTextandroid:id=?椫層支屴晜汩彬慰敲瑮=android:layout_widthandroid:layout_height=晜汩彬慰敲瑮android:layout_span=?android:focusable=晜污敳android:gravity=牜杩瑨android:inputType=瑜硥屴android:singleLine=瑜畲履></EditText></TableRow><TableRowandroid:id=?椫層琯扡敬潒?android:layout_width=晜汩彬慰敲瑮android:layout_height=晜汩彬慰敲瑮><Buttonandroid:id=?椫層戯彴尷android:layout_width=?瀰屸android:layout_height=?瀰屸android:text=?/><Buttonandroid:id=?椫層戯彴尸android:layout_width=?瀰屸android:layout_height=?瀰屸android:text=?/><Buttonandroid:id=?椫層戯彴尹android:layout_width=?硰android:layout_height=?瀰屸android:text=?/><Buttonandroid:id=?椫層戯彴慢正android:layout_width=?瀰屸android:layout_height=?瀰屸android:text=扜捡屫/></TableRow><TableRowandroid:id=?椫層琯扡敬潒?android:layout_width=晜汩彬慰敲瑮android:layout_height=晜汩彬慰敲瑮><Buttonandroid:id=?椫層戯彴尴android:layout_width=?瀰屸android:layout_height=?瀰屸android:text=?/><Buttonandroid:id=?椫層戯彴尵android:layout_width=?瀰屸android:layout_height=?瀰屸android:text=?/><Buttonandroid:id=?椫層戯彴尶android:layout_width=?瀰屸android:layout_height=?瀰屸android:text=?/><Buttonandroid:id=?椫層戯彴楤楶敤android:layout_width=?瀰屸android:layout_height=?瀰屸android:text=屜尯/></TableRow><TableRowandroid:id=?椫層琯扡敬潒?android:layout_width=晜汩彬慰敲瑮android:layout_height=晜汩彬慰敲瑮><Buttonandroid:id=?椫層戯彴就android:layout_width=?瀰屸android:layout_height=?瀰屸android:text=?/><Buttonandroid:id=?椫層戯彴尲android:layout_width=?瀰屸android:layout_height=?瀰屸android:text=?/><Button?椫層戯彴尳=android:idandroid:layout_width=?瀰屸android:layout_height=?瀰屸android:text=?/><Buttonandroid:id=?椫層戯彴畭瑬灩祬android:layout_width=?瀰屸android:layout_height=?瀰屸android:text=?/></TableRow><TableRowandroid:id=?椫層琯扡敬潒?android:layout_width=晜汩彬慰敲瑮android:layout_height=晜汩彬慰敲瑮><Buttonandroid:id=?椫層戯彴尰android:layout_width=?瀰屸android:layout_height=?瀰屸android:text=ぜ/><Buttonandroid:id=?椫層戯彴潰湩屴android:layout_width=?瀰屸android:layout_height=?瀰屸android:text=?/><Buttonandroid:id=?椫層戯彴摡層android:layout_width=?瀰屸android:layout_height=?瀰屸android:text=?/><Buttonandroid:id=?椫層戯彴畳屢android:layout_width=?瀰屸android:layout_height=?瀰屸android:text=?/></TableRow><TableRowandroid:id=?椫層琯扡敬潒?晜汩彬慰敲瑮=android:layout_widthandroid:layout_height=晜汩彬慰敲瑮><Buttonandroid:id=?椫層戯彴煥慵屬android:layout_width=晜汩彬慰敲瑮android:layout_height=晜汩彬慰敲瑮android:layout_span=?android:text=?/><Buttonandroid:id=?椫層戯彴汣慥屲android:layout_width=?瀰屸android:layout_height=?瀰屸android:text=捜敬牡/></TableRow></TableLayout></LinearLayout>(二)、.java功能代码package weibo.test.ui;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener; import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import weibo.lixiaodaoaaa.ui.R;import android.app.Activity;import android.content.Intent;import android.content.pm.PackageManager; import android.os.Bundle;import android.view.KeyEvent;import android.view.View;import android.view.View.OnClickListener; import android.widget.Button;import android.widget.ListView;import com.zsy.flipper.AppInfUtil;import com.zsy.flipper.AppInfo;public class fffActivity extends Activity {private Button bt_1;private Button bt_2;private Button bt_3;private Button bt_4;private Button bt_5;private Button bt_6;private Button bt_7;private Button bt_8;private Button bt_9;private Button bt_0;private Button bt_add;private Button bt_sub; // 减private Button bt_multiply; // 乘private Button bt_divide; // 除private Button bt_back;private Button bt_equal; // 等于private Button bt_point; // 点private Button bt_clear; // 清除private EditText et_play; // 显示private String str_oper = +; // 运算符private StringBuffer str_display = new StringBuffer();; // 显示private String str_result; // 结果显示private double num1;private double num2;private boolean flag = true; // 小数点个数开关控制;private boolean b_sub, b_mul, b_div; // 运算符开关控制@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(yout.activity_fff);bt_0 = (Button) findViewById(R.id.bt_0);bt_1 = (Button) findViewById(R.id.bt_1);bt_2 = (Button) findViewById(R.id.bt_2);bt_3 = (Button) findViewById(R.id.bt_3);bt_4 = (Button) findViewById(R.id.bt_4);bt_5 = (Button) findViewById(R.id.bt_5);bt_6 = (Button) findViewById(R.id.bt_6);bt_7 = (Button) findViewById(R.id.bt_7);bt_8 = (Button) findViewById(R.id.bt_8);bt_9 = (Button) findViewById(R.id.bt_9);bt_add = (Button) findViewById(R.id.bt_add);bt_sub = (Button) findViewById(R.id.bt_sub);bt_multiply = (Button) findViewById(R.id.bt_multiply);bt_divide = (Button) findViewById(R.id.bt_divide);bt_back = (Button) findViewById(R.id.bt_back);bt_equal = (Button) findViewById(R.id.bt_equal);bt_point = (Button) findViewById(R.id.bt_point);bt_clear = (Button) findViewById(R.id.bt_clear);et_play = (EditText) findViewById(R.id.et);et_play.setText(bt_0.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display.append(et_play.setText(str_display.toString());}});bt_1.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display.append();et_play.setText(str_display.toString());}bt_2.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display.append();et_play.setText(str_display.toString());}});bt_3.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display.append( );et_play.setText(str_display.toString());}});bt_4.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display.append();et_play.setText(str_display.toString());}});bt_5.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display.append(_x0005_);et_play.setText(str_display.toString());}});bt_6.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display.append();et_play.setText(str_display.toString());}});bt_7.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display.append(_x0007_);et_play.setText(str_display.toString());}});bt_8.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display.append(8);et_play.setText(str_display.toString());}});bt_9.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display.append(9);et_play.setText(str_display.toString());}});bt_point.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){if (flag){str_display.append(.);flag = false;}});bt_back.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){if (str_display.length() != 0){str_display.deleteCharAt(str_display.length() - 1); et_play.setText(str_display.toString());}}});bt_add.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_oper = +;if (!(str_display.toString() == \)){num1 += Double.parseDouble(str_display.toString());str_display = new StringBuffer(\);}if (!(str_result == null)){num1 = Double.parseDouble(str_result);str_result = null;et_play.setText(String.valueOf(num1));flag = true;}});bt_sub.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_oper = -;if (!b_sub && !(str_display.toString() == \)){num1 = Double.parseDouble(str_display.toString());et_play.setText(String.valueOf(num1));str_display = new StringBuffer(\);b_sub = true;} else{if (!(str_display.toString() == \)){-=num1Double.parseDouble(str_display.toString());str_display = new StringBuffer(\);}if (!(str_result == null)){num1 = Double.parseDouble(str_result);str_result = null;}et_play.setText(String.valueOf(num1));}flag = true;}});bt_multiply.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_oper = *;if (!b_mul && !(str_display.toString() == \)){num1 = Double.parseDouble(str_display.toString());et_play.setText(String.valueOf(num1));str_display = new StringBuffer(\);b_mul = true;} else{if (!(str_display.toString() == \)){*=num1Double.parseDouble(str_display.toString());str_display = new StringBuffer(\);}if (!(str_result == null)){num1 = Double.parseDouble(str_result);str_result = null;}et_play.setText(String.valueOf(num1));}flag = true;}});bt_divide.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_oper = \/;if (!b_div && !(str_display.toString() == \)){num1 = Double.parseDouble(str_display.toString());et_play.setText(String.valueOf(num1));str_display = new StringBuffer(\);b_div = true;} else{if (!(str_display.toString() == \)){== (Double.parseDouble(str_display.toString()) if0){Toast.makeText(fffActivity.this,!,能除数不为0Toast.LENGTH_LONG).show();} else{num1/=Double.parseDouble(str_display.toString());str_display = new StringBuffer(\);}}if (!(str_result == null)){num1 = Double.parseDouble(str_result);str_result = null;}et_play.setText(String.valueOf(num1));}flag = true;}});bt_clear.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_oper = +;str_display = new StringBuffer(\);str_result = null;num1 = 0;num2 = 0;flag = true;b_sub = false;b_mul = false;b_div = false;et_play.setText(}});bt_equal.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){if (str_oper.equals(+)){num2 = Double.parseDouble(str_display.toString()); str_result = String.valueOf((num1 + num2));et_play.setText(str_result);str_display = new StringBuffer(\);}if (str_oper.equals(-)){num2 = Double.parseDouble(str_display.toString()); str_result = String.valueOf((num1 - num2));et_play.setText(str_result);str_display = new StringBuffer(\);}if (str_oper.equals(*)){num2 = Double.parseDouble(str_display.toString()); str_result = String.valueOf((num1 * num2));et_play.setText(str_result);str_display = new StringBuffer(\);}if (str_oper.equals(\/)){num2 = Double.parseDouble(str_display.toString());if (!(num2 == 0)){str_result = String.valueOf((num1 / num2));et_play.setText(str_result);} else{Toast.makeText(fffActivity.this,除数不能为 , Toast.LENGTH_LONG).show();0 !}str_display = new StringBuffer(\);}}});}}五、实验小结通过此次Android应用的开发,使我学会了很多在其他理论课上所无法学到的东西。
Android课程实验报告
Android课程实验报告实验题目:实现一个简单的Android计算器应用实验目的:通过实现一个简单的Android计算器应用,掌握Android 应用的开发流程和常用控件的使用方法。
一、实验要求1. 实现一个包含加减乘除四则运算功能的Android计算器应用。
2.应用界面至少包含一个显示结果的文本框和15个按钮(包括数字按钮0-9、小数点按钮“.”、加减乘除按钮和等号按钮“=”)。
3. 按钮点击事件的处理采用Lambda表达式实现。
二、实验过程1. 创建一个新的Android项目,并在activity_main.xml文件中添加一个显示结果的文本框(TextView)和15个按钮(Button)。
2. 在MainActivity.java文件中,通过findViewById(方法获取文本框和按钮的实例。
3. 使用Lambda表达式为按钮注册点击事件的处理程序,在处理程序中根据按钮的ID执行相应的操作。
4. 使用StringBuilder类来拼接用户输入的数字和运算符,并将结果显示在文本框中。
三、实验代码1. activity_main.xml```xmlandroid:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"><TextViewandroid:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginTop="10dp" android:textSize="20sp"android:textStyle="bold"android:textAlignment="center" /><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content" android:layout_weight="1"android:text="0" /><!--其他按钮的布局与此类似,省略--> <Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:text="." /><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:text="=" /></RelativeLayout>```2. MainActivity.java```javaprivate TextView resultTextView;private StringBuilder expression;protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(yout.activity_main); resultTextView = findViewById(R.id.resultTextView);Button btn0 = findViewById(R.id.btn0);Button btn1 = findViewById(R.id.btn1);//其他按钮的初始化与此类似,省略Button btnDot = findViewById(R.id.btnDot);Button btnEq = findViewById(R.id.btnEq);expression = new StringBuilder(;btn0.setOnClickListener(v -> expression.append("0"));btn1.setOnClickListener(v -> expression.append("1"));//其他按钮的点击事件注册与此类似,省略btnDot.setOnClickListener(v -> expression.append(".")); btnEq.setOnClickListener(v ->double result = evaluateExpression(expression.toString(); resultTextView.setText(String.valueOf(result));});}private double evaluateExpression(String exp)//解析并计算表达式的值//省略}```四、实验结果和分析通过运行实验代码,可以在模拟器或真机上打开一个包含加减乘除四则运算功能的Android计算器应用。
安卓计算器设计报告
数学与信息技术学院嵌入式系统课程设计报告设计题目:数字计算器的设计与实现班级:学号:姓名:指导教师:完成日期:成绩:目录1 绪论 (1)1.2 研究的范围及达到的技术要求 (1)1.3 解决的主要问题 (1)1.4 设计的指导思想 (1)2 需求分析 (2)2.1 设计需求分析 (2)2.2 系统目标 (2)2.3 主体功能 (2)2.4 开发环境 (2)3 总体设计 (3)3.1 程序流程和系统功能设计 (3)3.1.1 程序流程设计 (3)3.3 程序设计的基本思路 (4)3.3.2 总体布局 (5)3.3.3 按钮事件处理 (6)4 详细设计 (6)4.1 输入模块详细设计 (6)4.2 显示模块详细设计 (7)4.3 计算模块详细设计 (7)5 编码 (8)5.1 用户界面代码设计 (8)5.1.1 activity_main.xml布局文件 (8)5.1.2 MainActivity.java主要功能文件 (9)6 结论 (12)6.1 实现的功能 (12)6.2 主要的问题 (12)数字计算器的设计与实验1 绪论1.1 设计的目的及意义(1)本课程设计的目的是通过开发一个数字计算机器,了解嵌入式产品开发的主要步骤,包括需求分析、系统结构设计、图形界面设计、驱动设计、功能优化、系统测试等,培养独立完成比较复杂的实际设计的能力。
(2)本课程设计主要是实现Android计算器,用于Android系统的用户的使用,本计算器可以实现加、减、乘、除、开方、平方等运算功能,方便了用户对于一些简单数据的计算,节省了用户的时间。
1.2 研究的范围及达到的技术要求本课程设计主要研究计算器的实现方法,应达到计算器界面友好,方便使用,具有基本的加、减、乘、除功能,支持小数运算,具有退格功能,能够删除最后一个输入,具有清除功能,即“C”。
1.3解决的主要问题随着信息时代的步伐加快,日常生活的开支、大额数字、多倍小数等的计算都需要计算器的帮助,处理数字的开方、平方同样也离不开计算器。
科学计算器安卓实训报告
一、实训背景随着科技的发展,移动设备已经成为我们日常生活中不可或缺的一部分。
为了提高学习效率,许多学生选择使用科学计算器进行数学、物理、化学等科目的学习。
然而,市场上的科学计算器功能单一,无法满足不同用户的需求。
为了解决这个问题,本实训项目旨在开发一款功能强大、操作简便的科学计算器安卓应用程序。
二、实训目标1. 掌握Android开发环境搭建与配置;2. 熟悉Android应用程序开发流程;3. 学习科学计算器功能模块的设计与实现;4. 提高编程能力和团队协作能力。
三、实训内容1. 环境搭建与配置(1)安装Android Studio:下载并安装Android Studio,配置Android SDK和NDK。
(2)创建新项目:打开Android Studio,创建一个名为“Scientific Calculator”的新项目,选择“Empty Activity”模板。
2. 功能模块设计(1)主界面设计:设计一个简洁明了的主界面,包含数字键、运算符键、功能键等。
(2)计算器核心功能实现:实现加、减、乘、除等基本运算,以及科学计算器特有的三角函数、指数、对数等运算。
(3)单位转换:实现长度、质量、面积、体积、温度、速度等常用单位的转换。
(4)概率计算:实现概率分布、期望、方差等概率计算功能。
(5)历史记录:记录用户最近的计算结果,方便用户查阅。
3. 界面交互设计(1)按键震动反馈:当用户按下按键时,计算器产生震动反馈,提高用户体验。
(2)输入提示:当用户输入错误时,计算器提供输入提示,帮助用户纠正错误。
4. 优化与调试(1)优化代码:对代码进行优化,提高程序运行效率。
(2)调试程序:使用调试工具,查找并修复程序中的错误。
四、实训成果1. 完成科学计算器安卓应用程序的开发,具备基本运算、单位转换、概率计算等功能。
2. 实现了主界面、计算核心、功能模块、界面交互等方面的设计。
3. 提高了编程能力和团队协作能力。
基于Android计算器的开发与测试
实训报告实训项目名称基于Android计算器的开发与测试二级学院信息工程学院专业班级 11级姓名学号日期 2014—11-19摘要Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。
Android的功能十分强大,成为当今软件行业的一股新兴力量。
Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的,应用程序可以轻松的嵌入网络、应用程序可以并行运行。
而简单计算器又是手机上必备的小程序,所以此次创新实践很有意义.并且具有很强的使用性。
关键字:计算器,Android,移动设备目录1 绪论 (5)1.1 研究背景 (5)2 游戏系统开发平台 (6)3 系统分析与设计 (7)3.1 可行性研究 (7)3.2 系统的需求分析 (7)3.3 系统的优势 (8)3。
4系统的流程 (8)4。
模板设计与实现 (9)5 测试用列和结果 (12)5.1测试用列 (12)5。
2测试用列展示图 (12)6 小结 (15)参考文献 (16)附录: (17)1 绪论1.1研究背景(1)计算器背景目前手机可以说是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开始代替固定电话的通话功能,以及一些原来电脑软件上的功能了。
手机上的软件也随着手机的发展变得丰富起来了,时至今日已经出现了很多专门制作手机软件的公司,虽然制作的多是游戏软件,但是一些辅助性的工具软件也有了很多.我们在此次系统中所做的工作主要是设计整个系统以及利用编程语言实现整个系统,使系统能够正确的运行计算功能。
(2)Android系统简介Android 系统构架简介:Android是一个基于Linux®V2。
6内核的交互性操作环境,同时它也是一个分层系统,Android系统架构显示如下图1.1。
安卓计算器开发实验报告
上海电力学院嵌入式WebOS应用开发实验报告实验名称:使用Android Developer SDK开发应用程序专业:姓名:班级:学号:一、作品的运行环境及安卓SDK基础操作SDK Android Developer是一款在windows系统上运行的针对Android应用开发的谷歌官方软件(需要JAVA环境支持)。
1、导入工程2、建立虚拟机在运行虚拟机是为保证机器的顺畅运行建议选择分辨率较低的虚拟机,但是其RAM最好设为512MB,因为部分程序如果调用资源过大会导致虚拟机无法运行。
3、虚拟机界面二、作品介绍我的应用是一个计算器。
能实现包括小数的加减乘除运算,结果过大会自动用科学记数法表示,另外还有退格跟清屏功能键。
三、编程以及运行调试(一)、在MyDesktop主界面中添加应用图标1. 首先在我的桌面上添加你应用的图标以及文字,双击图标后就可以看见对应的代码,可直接在代码中进行修改图片文字的大小颜色等等。
以下是对应图像图标的代码图片可以在左侧的选项中自行进行挑选;也可以添加自己的图片,只要将图片放到对应的文件夹之下在刷新就可以,但不建议放分辨率过高图片可能会出现超出界面的等错误。
(二)、在res/layout目录下新建.xml文件,由于计算器的按钮很多,要在xml界面中添加排版:xml代码首末的</AbsoluteLayout>格式较为自由可以直接在界面中拖动图标位置以及修改大小,而其他layout则更会自动排列,各有优劣。
(三)、在src/weibo.test.ui目录下新建.java文件,计算器的按钮算法等都在此实现。
(三)、声明工程名1、在应用中有三处需要声明,首先是在AndroidManifest.xml2、然后是在MainActivity.java四、代码展示(一)、.xml界面代码<?xml version="1.0"encoding="utf-8"?><LinearLayout xmlns:android=""android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TableLayoutandroid:id="@+id/tableLayout1"android:layout_width="match_parent"android:layout_height="wrap_content"android:collapseColumns="4"><TableRowandroid:id="@+id/tableRow_et"android:layout_width="fill_parent"android:layout_height="fill_parent"><EditTextandroid:id="@+id/et"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_span="4"android:focusable="false"android:gravity="right"android:inputType="text"android:singleLine="true"></EditText></TableRow><TableRowandroid:id="@+id/tableRow1"android:layout_width="fill_parent"android:layout_height="fill_parent"><Buttonandroid:id="@+id/bt_7"android:layout_width="80px"android:layout_height="80px"android:text="7"/><Buttonandroid:id="@+id/bt_8"android:layout_width="80px"android:layout_height="80px"android:text="8"/><Buttonandroid:id="@+id/bt_9"android:layout_width="1px"android:layout_height="80px"android:text="9"/><Buttonandroid:id="@+id/bt_back"android:layout_width="80px"android:layout_height="80px"android:text="back"/></TableRow><TableRowandroid:id="@+id/tableRow2"android:layout_width="fill_parent"android:layout_height="fill_parent"><Buttonandroid:id="@+id/bt_4"android:layout_width="80px"android:layout_height="80px"android:text="4"/><Buttonandroid:id="@+id/bt_5"android:layout_width="80px"android:layout_height="80px"android:text="5"/><Buttonandroid:id="@+id/bt_6"android:layout_width="80px"android:layout_height="80px"android:text="6"/><Buttonandroid:id="@+id/bt_divide"android:layout_width="80px"android:layout_height="80px"android:text="/"/></TableRow><TableRowandroid:id="@+id/tableRow3"android:layout_width="fill_parent"android:layout_height="fill_parent"><Buttonandroid:id="@+id/bt_1"android:layout_width="80px"android:layout_height="80px"android:text="1"/><Buttonandroid:id="@+id/bt_2"android:layout_width="80px"android:layout_height="80px"android:text="2"/><Buttonandroid:id="@+id/bt_3"android:layout_width="80px"android:layout_height="80px"android:text="3"/><Buttonandroid:id="@+id/bt_multiply"android:layout_width="80px"android:layout_height="80px"android:text="*"/></TableRow><TableRowandroid:id="@+id/tableRow4"android:layout_width="fill_parent"android:layout_height="fill_parent"><Buttonandroid:id="@+id/bt_0"android:layout_width="50px"android:layout_height="80px"android:text="0"/><Buttonandroid:id="@+id/bt_point"android:layout_width="50px"android:layout_height="80px"android:text="."/><Buttonandroid:id="@+id/bt_add"android:layout_width="50px"android:layout_height="80px"android:text="+"/><Buttonandroid:id="@+id/bt_sub"android:layout_width="50px"android:layout_height="80px"android:text="-"/></TableRow><TableRowandroid:id="@+id/tableRow4"android:layout_width="fill_parent"android:layout_height="fill_parent"><Buttonandroid:id="@+id/bt_equal"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_span="3"android:text="="/><Buttonandroid:id="@+id/bt_clear"android:layout_width="50px"android:layout_height="80px"android:text="clear"/></TableRow></TableLayout></LinearLayout>(二)、.java功能代码package weibo.test.ui;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import weibo.lixiaodaoaaa.ui.R;import android.app.Activity;import android.content.Intent;import android.content.pm.PackageManager;import android.os.Bundle;import android.view.KeyEvent;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ListView;import com.zsy.flipper.AppInfUtil;import com.zsy.flipper.AppInfo;public class fffActivity extends Activity{private Button bt_1;private Button bt_2;private Button bt_3;private Button bt_4;private Button bt_5;private Button bt_6;private Button bt_7;private Button bt_8;private Button bt_9;private Button bt_0;private Button bt_add;private Button bt_sub; // 减private Button bt_multiply; // 乘private Button bt_divide; // 除private Button bt_back;private Button bt_equal; // 等于private Button bt_point; // 点private Button bt_clear; // 清除private EditText et_play; // 显示private String str_oper = "+"; // 运算符private StringBuffer str_display = new StringBuffer();; // 显示private String str_result; // 结果显示private double num1;private double num2;private boolean flag = true; // 小数点个数开关控制;private boolean b_sub, b_mul, b_div; // 运算符开关控制@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(yout.activity_fff);bt_0 = (Button) findViewById(R.id.bt_0);bt_1 = (Button) findViewById(R.id.bt_1);bt_2 = (Button) findViewById(R.id.bt_2);bt_3 = (Button) findViewById(R.id.bt_3);bt_4 = (Button) findViewById(R.id.bt_4);bt_5 = (Button) findViewById(R.id.bt_5);bt_6 = (Button) findViewById(R.id.bt_6);bt_7 = (Button) findViewById(R.id.bt_7);bt_8 = (Button) findViewById(R.id.bt_8);bt_9 = (Button) findViewById(R.id.bt_9);bt_add = (Button) findViewById(R.id.bt_add);bt_sub = (Button) findViewById(R.id.bt_sub);bt_multiply = (Button) findViewById(R.id.bt_multiply); bt_divide = (Button) findViewById(R.id.bt_divide);bt_back = (Button) findViewById(R.id.bt_back);bt_equal = (Button) findViewById(R.id.bt_equal);bt_point = (Button) findViewById(R.id.bt_point);bt_clear = (Button) findViewById(R.id.bt_clear);et_play = (EditText) findViewById(R.id.et);et_play.setText("0");bt_0.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display.append("0");et_play.setText(str_display.toString());}});bt_1.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display.append("1");et_play.setText(str_display.toString());}});bt_2.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v)str_display.append("2");et_play.setText(str_display.toString());}});bt_3.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v){str_display.append("3");et_play.setText(str_display.toString());}});bt_4.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v){str_display.append("4");et_play.setText(str_display.toString());}});bt_5.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v){str_display.append("5");et_play.setText(str_display.toString());}});bt_6.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v){str_display.append("6");et_play.setText(str_display.toString());}bt_7.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display.append("7");et_play.setText(str_display.toString());}});bt_8.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display.append("8");et_play.setText(str_display.toString());}});bt_9.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display.append("9");et_play.setText(str_display.toString());}});bt_point.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v){if (flag){str_display.append(".");flag = false;}}});bt_back.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){if (str_display.length() != 0){str_display.deleteCharAt(str_display.length() - 1);et_play.setText(str_display.toString());}}});bt_add.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_oper = "+";if (!(str_display.toString() == "")){num1 += Double.parseDouble(str_display.toString());str_display = new StringBuffer("");}if (!(str_result == null)){num1 = Double.parseDouble(str_result);str_result = null;}et_play.setText(String.valueOf(num1));flag = true;}});bt_sub.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_oper = "-";if (!b_sub && !(str_display.toString() == "")){num1 = Double.parseDouble(str_display.toString());et_play.setText(String.valueOf(num1));str_display = new StringBuffer("");b_sub = true;} else{if (!(str_display.toString() == "")){num1 -= Double.parseDouble(str_display.toString());str_display = new StringBuffer("");}if (!(str_result == null)){num1 = Double.parseDouble(str_result);str_result = null;}et_play.setText(String.valueOf(num1));}flag = true;}});bt_multiply.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_oper = "*";if (!b_mul && !(str_display.toString() == "")){num1 = Double.parseDouble(str_display.toString());et_play.setText(String.valueOf(num1));str_display = new StringBuffer("");b_mul = true;} else{if (!(str_display.toString() == "")){num1 *= Double.parseDouble(str_display.toString());str_display = new StringBuffer("");}if (!(str_result == null)){num1 = Double.parseDouble(str_result);str_result = null;}et_play.setText(String.valueOf(num1));}flag = true;}});bt_divide.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_oper = "/";if (!b_div && !(str_display.toString() == "")){num1 = Double.parseDouble(str_display.toString());et_play.setText(String.valueOf(num1));str_display = new StringBuffer("");b_div = true;} else{if (!(str_display.toString() == "")){if (Double.parseDouble(str_display.toString()) == 0){Toast.makeText(fffActivity.this,"除数不能为0!", Toast.LENGTH_LONG).show();} else{num1 /= Double.parseDouble(str_display.toString());str_display = new StringBuffer("");}}if (!(str_result == null)){num1 = Double.parseDouble(str_result);str_result = null;}et_play.setText(String.valueOf(num1));}flag = true;}});bt_clear.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_oper = "+";str_display = new StringBuffer("");str_result = null;num1 = 0;num2 = 0;flag = true;b_sub = false;b_mul = false;b_div = false;et_play.setText("0");}});bt_equal.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){if (str_oper.equals("+")){num2 = Double.parseDouble(str_display.toString());str_result = String.valueOf((num1 + num2));et_play.setText(str_result);str_display = new StringBuffer("");}if (str_oper.equals("-")){num2 = Double.parseDouble(str_display.toString());str_result = String.valueOf((num1 - num2));et_play.setText(str_result);str_display = new StringBuffer("");}if (str_oper.equals("*")){num2 = Double.parseDouble(str_display.toString());str_result = String.valueOf((num1 * num2));et_play.setText(str_result);str_display = new StringBuffer("");}if (str_oper.equals("/")){num2 = Double.parseDouble(str_display.toString());if (!(num2 == 0)){str_result = String.valueOf((num1 / num2));et_play.setText(str_result);} else{Toast.makeText(fffActivity.this,"除数不能为0!", Toast.LENGTH_LONG).show();}str_display = new StringBuffer("");}}});}}五、实验小结通过此次Android应用的开发,使我学会了很多在其他理论课上所无法学到的东西。
Android实验格式简易计算器实验报告
实验报告
2013-2014 学年第2学期
课程名称:嵌入式操作系统
实验题目:简易计算器的设计与实现
专业:计算机科学与技术、信息处理(是什么专业,写什么专业)班级:计算本1101(按自己班级填写)
日期填写2014年4月8日
实验题目:简易计算器的设计与实现
实验类型:上机实验
一、实验目的及要求
1. 掌握线性布局的应用;
2. 掌握表格布局的应用;
3. 掌握数组的应用;
4. 掌握如何Button组件的使用;
5. 掌握代码中访问布局组件的方法;
6. 掌握特定组件的事件设计方法。
二、实验仪器设备与软件环境
1、电脑。
2、Android集成开发工具adt-bundle。
三、实验过程
1、布局设计
…这部分自己填
2. 程序设计
…这部分自己填。
安卓计算器设计报告
硬件综合课程设计实验日志指导教师实验时间:2014年12月12日学院计算机学院专业信息安全班级0441103 学号2011211774 姓名张轶实验室信科402实验题目:智能终端----计算器程序实验目的:该课程设计的目的主要是锻炼学生利用已学习的各种语言及计算机综合知识来设计一个与具体类IT产品相关的一个硬件、软件综合系统,并在其系统上开发一定的应用程序,实际调试运行通过,达到提高实际动手能力的作用,尤其是软硬结合的能力。
实验要求:任务:利用键盘输入数字及运算符,在LCD屏幕上显示计算结果。
要求:1)熟悉开发板环境;2)熟悉LCD驱动原理,键盘驱动原理;3)设置各个按键,使其代表一定的数字及运算符,实现加减乘除运算。
主要代码:布局<RelativeLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><EditTextandroid:text="TextView"android:id="@+id/textView1"android:textSize="25sp"android:textColor="#000000"android:layout_gravity="center"android:gravity="left"android:cursorVisible="false"android:editable = "false"android:layout_height="wrap_content"android:layout_width="fill_parent"android:layout_marginLeft="4dip"android:layout_marginRight="4dip"android:layout_marginTop="4dip" android:layout_weight="1.5"></EditText><TableLayoutandroid:id="@+id/tablelayout"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_margin="4dip" android:layout_weight="10"><LinearLayoutandroid:id="@+id/linearlayout02"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"><Buttonandroid:layout_width="50dip"android:layout_height="fill_parent"android:layout_weight="1"android:textSize="25sp" android:id="@+id/buttonc" android:text="@string/shan"></Button><Buttonandroid:layout_width="50dip"android:layout_height="fill_parent"android:layout_weight="1"android:textSize="25sp" android:id="@+id/buttonce" android:text="@string/shanchu"></Button></LinearLayout><TableRowandroid:id="@+id/row0"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_weight="1"><Buttonandroid:layout_width="40dip"android:layout_height="fill_parent"android:layout_weight="1"android:textSize="25sp" android:text="@string/one" android:id="@+id/button1"></Button><Buttonandroid:layout_width="40dip"android:layout_height="fill_parent"android:layout_weight="1"android:textSize="25sp" android:text="@string/two" android:id="@+id/button2"></Button><Buttonandroid:layout_width="40dip"android:layout_height="fill_parent"android:layout_weight="1"android:textSize="25sp" android:text="@string/three" android:id="@+id/button3"></Button><Buttonandroid:layout_width="40dip"android:layout_height="fill_parent"android:layout_weight="1"android:textSize="25sp" android:text="@string/jia" android:id="@+id/button01"></Button></TableRow><TableRowandroid:id="@+id/row1"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_weight="1"><Buttonandroid:layout_width="40dip"android:layout_height="fill_parent"android:layout_weight="1"android:textSize="25sp" android:text="@string/fore" android:id="@+id/button4"></Button><Buttonandroid:layout_width="40dip"android:layout_height="fill_parent"android:layout_weight="1"android:textSize="25sp" android:text="@string/five" android:id="@+id/button5"></Button><Buttonandroid:layout_height="fill_parent"android:layout_weight="1"android:textSize="25sp" android:text="@string/six" android:id="@+id/button6"></Button><Buttonandroid:layout_width="40dip"android:layout_height="fill_parent"android:layout_weight="1"android:textSize="25sp" android:text="@string/jian" android:id="@+id/button02"></Button></TableRow><TableRowandroid:id="@+id/row2"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_weight="1"><Buttonandroid:layout_width="40dip"android:layout_height="fill_parent"android:layout_weight="1"android:textSize="25sp" android:text="@string/seven" android:id="@+id/button7"></Button><Buttonandroid:layout_width="40dip"android:layout_height="fill_parent"android:layout_weight="1"android:textSize="25sp" android:text="@string/eight" android:id="@+id/button8"></Button><Buttonandroid:layout_width="40dip"android:layout_height="fill_parent"android:layout_weight="1"android:textSize="25sp" android:text="@string/nine" android:id="@+id/button9"></Button><Buttonandroid:layout_width="40dip"android:layout_height="fill_parent"android:textSize="25sp" android:text="@string/cheng" android:id="@+id/button03"></Button></TableRow><TableRowandroid:id="@+id/row3"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_weight="1"><Buttonandroid:layout_width="40dip"android:layout_height="fill_parent"android:layout_weight="1"android:textSize="25sp" android:text="@string/zero" android:id="@+id/button0"></Button><Buttonandroid:layout_width="40dip"android:layout_height="fill_parent"android:layout_weight="1"android:textSize="25sp" android:id="@+id/button06" android:text="@string/dihao"></Button><Buttonandroid:layout_width="40dip"android:layout_height="fill_parent"android:layout_weight="1"android:textSize="25sp" android:text="@string/dengyu" android:id="@+id/button05"></Button><Buttonandroid:layout_width="40dip"android:layout_height="fill_parent"android:layout_weight="1"android:textSize="25sp" android:text="@string/chu" android:id="@+id/button04"></Button></TableRow><LinearLayoutandroid:id="@+id/tableRow1"android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_weight="1"><Buttonandroid:textSize="25sp"android:layout_height="fill_parent"android:layout_width="50dp" android:layout_weight="1" android:text="@string/zhengfu" android:id="@+id/zheng"></Button><Buttonandroid:id="@+id/pingfang"android:textSize="25sp"android:layout_height="fill_parent"android:layout_width="50dp" android:layout_weight="1" android:text="@string/ping"></Button><Buttonandroid:id="@+id/kaifang"android:textSize="25sp"android:layout_height="fill_parent"android:layout_width="50dp" android:layout_weight="1" android:text="@string/kai"></Button></LinearLayout></TableLayout></RelativeLayout>算法package com.zy.jsq;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.EditText;public class MainActivity extends Activity {String str="";EditText et;int c=0,flag=0;double b=0.0,g=0.0,f=0.0;View vi;public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stubmenu.add(0, 1, 1, "退出");return super.onCreateOptionsMenu(menu);}@Overridepublic boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stubif(item.getItemId()==1){finish();}return super.onOptionsItemSelected(item);}//计算方法public double calculater(){switch(c){case 0:f=g;break;case 1:f=b+g;break;case 2:f=b-g;break;case 3:f=b*g;break;case 4:f=b/g;break;}b=f;c=0;return f;}@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(yout.activity_main);//获得按键final Button number[]=new Button[10];final Button fuhao[]=new Button[11];fuhao[0]=(Button)findViewById(R.id.button01);fuhao[1]=(Button)findViewById(R.id.button02);fuhao[2]=(Button)findViewById(R.id.button03);fuhao[3]=(Button)findViewById(R.id.button04);fuhao[4]=(Button)findViewById(R.id.button05);fuhao[5]=(Button)findViewById(R.id.button06);fuhao[6]=(Button)findViewById(R.id.buttonce);fuhao[7]=(Button)findViewById(R.id.buttonc);fuhao[8]=(Button)findViewById(R.id.zheng);fuhao[9]=(Button)findViewById(R.id.kaifang);fuhao[10]=(Button)findViewById(R.id.pingfang);number[0]=(Button)findViewById(R.id.button0);number[1]=(Button)findViewById(R.id.button1);number[2]=(Button)findViewById(R.id.button2);number[3]=(Button)findViewById(R.id.button3);number[4]=(Button)findViewById(R.id.button4);number[5]=(Button)findViewById(R.id.button5);number[6]=(Button)findViewById(R.id.button6);number[7]=(Button)findViewById(R.id.button7);number[8]=(Button)findViewById(R.id.button8);number[9]=(Button)findViewById(R.id.button9);et=(EditText) findViewById(R.id.textView1);et.setText(str);fuhao[6].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubstr="";et.setText(str);vi=v;}});fuhao[7].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubb=0.0;c=0;g=0.0;str="";et.setText(str);}});fuhao[8].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(vi!=fuhao[5]&&str!=""){char ch=str.charAt(0);if(ch=='-')str=str.replace("-","");elsestr="-"+str;et.setText(str);}}});fuhao[9].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(str!=""){double a=Double.parseDouble(str);str=Math.sqrt(a)+"";et.setText(str);}}});fuhao[10].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(str!=""){double a=Double.parseDouble(str);str=""+a*a;et.setText(str);}}});//设定数字按键number[0].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(flag==1){str="";str+=0;et.setText(str);flag=0;}else{char ch1[];ch1=str.toCharArray();if(!(ch1.length==1&&ch1[0]=='0')){str+=0;et.setText(str);}}vi=v;}});number[1].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(flag==1){str="";str+=1;et.setText(str);flag=0;}else{str+=1;et.setText(str);}vi=v;}});number[2].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(flag==1){str="";str+=2;et.setText(str);flag=0;}else{str+=2;et.setText(str);}vi=v;}});number[3].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(flag==1){str="";str+=3;et.setText(str);flag=0;}else{str+=3;et.setText(str);}vi=v;}});number[4].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(flag==1){str="";str+=4;et.setText(str);flag=0;}else{str+=4;et.setText(str);}vi=v;}});number[5].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(flag==1){str="";str+=5;et.setText(str);flag=0;}else{str+=5;et.setText(str);}vi=v;}});number[6].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(flag==1){str="";str+=6;et.setText(str);flag=0;}else{str+=6;et.setText(str);}vi=v;}});number[7].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(flag==1){str="";str+=7;et.setText(str);flag=0;}else{str+=7;et.setText(str);}vi=v;}});number[8].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(flag==1){str="";str+=8;et.setText(str);flag=0;}else{str+=8;et.setText(str);}vi=v;}});number[9].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(flag==1){str="";str+=9;et.setText(str);flag=0;}else{str+=9;et.setText(str);}vi=v;}});//设定符号键//加fuhao[0].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(str!=""){if(vi==fuhao[0]||vi==fuhao[1]||vi==fuhao[2]||vi==fuhao[3]){ c=1;}else{g=Double.parseDouble(str);calculater();str=""+f;et.setText(str);c=1;flag=1;vi=v;}}}});//减fuhao[1].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(str!=""){if(vi==fuhao[0]||vi==fuhao[1]||vi==fuhao[2]||vi==fuhao[3]){ c=2;}g=Double.parseDouble(str);calculater();str=""+f;et.setText(str);c=2;flag=1;vi=v;}}}});//乘fuhao[2].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(str!=""){if(vi==fuhao[0]||vi==fuhao[1]||vi==fuhao[2]||vi==fuhao[3]){ c=3;}else{g=Double.parseDouble(str);calculater();str=""+f;et.setText(str);c=3;flag=1;vi=v;}}}});//除fuhao[3].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(str!=""){if(vi==fuhao[0]||vi==fuhao[1]||vi==fuhao[2]||vi==fuhao[3]){ c=4;}g=Double.parseDouble(str);calculater();str=""+f;et.setText(str);c=4;flag=1;vi=v;}}}});//等号fuhao[4].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(str!=""&&vi!=fuhao[0]&&vi!=fuhao[1]&&vi!=fuhao[2]&&vi!=fuhao[3]){ g=Double.parseDouble(str);calculater();str=""+f;et.setText(str);flag=1;vi=v;}}});//小数点fuhao[5].setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubif(str==""){str+=".";et.setText(str);}else{char ch1[];int x=0;ch1=str.toCharArray();for(int i=0;i<ch1.length;i++)if(ch1[i]=='.')x++;if(x==0){str+=".";et.setText(str);}}}});}}实验结果:1、软件界面2、软件计算结果心得体会:通过这次实验,熟悉了Android的开发环境,时间虽短,任务虽轻,但是里面也遇到了不少的问题,遇到问题基本上都是各种查质料,然后分享结果,共同研究,深深地体会到查询资料的重要性。
基于android的计算器毕业设计报
基于Android的计算器毕业设计报告一、引言随着移动设备的普及,人们对于计算器的需求已经不再局限于桌面电脑。
特别是在Android平台上,由于其开放性和灵活性,使得开发人员可以方便地为其开发各种应用。
本次毕业设计就是开发一款基于Android平台的计算器应用,以满足人们在移动设备上进行基本数学计算的需求。
二、系统分析1.功能需求:本计算器应用需要满足基本数学计算需求,包括加减乘除四则运算,以及括号、百分比、平方、立方等特殊运算。
同时,还需要提供清除、撤销等便捷操作。
2.性能需求:为了保证应用的流畅性和稳定性,需要保证应用的响应速度和计算准确性。
同时,考虑到移动设备的电池寿命,还需要优化电量消耗。
3.用户界面需求:界面需要简洁明了,易于操作。
色彩和图标设计也需要符合Android平台的规范和用户习惯。
三、系统设计1.界面设计:采用Material Design风格,主界面包括数字按键区和操作符选择区。
为了方便用户操作,还添加了滑动输入功能,用户可以通过滑动数字或运算符来选择所需的数字或运算符。
2.算法设计:为了保证计算的准确性,我们采用了双精度浮点数存储数据,并使用Java的BigDecimal类进行运算。
这样既可以保证计算的精度,又可以避免由于浮点数运算产生的误差。
3.数据库设计:为了保存用户的计算历史记录,我们使用了Android的SQLite数据库来存储数据。
每个记录包括计算式和计算结果两个字段。
四、系统实现1.界面实现:我们使用了Android的原生开发方式,通过XML布局文件定义界面结构,通过Java代码实现界面逻辑。
同时,为了提高用户体验,我们还添加了一些动画效果和音效。
2.算法实现:我们使用了Java的BigDecimal类进行数学运算。
通过BigDecimal的multiply()和divide()方法可以实现乘法和除法运算,通过add()和subtract()方法可以实现加法和减法运算。
Android 简单计算器应用
2.完成MainActivity,实现以下功能:
(1)当输入数字1和2选择+-/*中的某一运算符后,点击“计算”按钮,能够显示计算结果。
(2)未输入数字或格式无效时,点“计算”按钮时,显示如下错误信息对话框:
operatorSpinner = (Spinner) findViewById(R.id.operator_spinner);
computeButton = (Button) findViewById(pute_text);
valueTextView = (TextView) findViewById(R.id.value_text);
public class MainActivity extends Activity {
private EditText number1EditText;
private EditText number2EditText;
private Spinner operatorSpinner;
private Button computeButton;
adapter.setDropDownViewResource(yout.simple_spinner_item);
operatorSpinner.setAdapter(adapter);
computeButton.setOnClickListener(new View.OnClickListener()
实验预习20%
实验过程20%
实验结果30%
实验报告30%
成绩
4.掌握AlertDialog的使用方法;
android开发计算器设计开发报告
a n d r o i d开发计算器设计开发报告Revised by Petrel at 2021《安卓开发》程序设计报告题目简单计算器开发专业(班级)网工111班姓名张波波学号指导教师赵(老师)日期2014.5.7目录一、设计说明: (4)1.设计内容:Android简单应用程序开发,简单计算器。
(4)2程序说明: (4)二、开发环境: (4)三、概要设计: (4)3.1系统的总体 (4)四、程序流程和系统功能设计 (5)4.1程序流程设计 (5)4.2.系统功能设计 (6)4.3基于Android平台系统具体设计 (6)4.3.1总体模块详细设计 (6)4.3.2输入模块详细设计 (6)4.3.3显示模块详细设计 (7)4.3.4计算模块详细设计 (7)五、计算器系统实现 (8)5.1Android应用程序构成 (8)六、截图说明 (9)1、图标 (9)2界面 (9)3运算界面 (9)4错误输入 (9)5设计平台界面 (9)6签名导出apk (9)七、总结 (9)课程设计任务书一、设计说明:1.设计内容:Android简单应用程序开发,简单计算器。
2程序说明:1、计算器界面友好,方便使用。
2、具有基本的加、减、乘、除功能,还有+—、开方、平方功能。
3、能够判断用户输入运算数是否正确。
4、4、支持小数运算。
5、具有退格功能,能够删除最后一个输入,ce。
6、具有清除功能,删除所有,c。
7、具有结果存储功能,能够显示存储器状态,支持触屏手机。
8、9、支持最低版本2.0,最高版本4.4。
开发时为4.2二、开发环境:开发环境:本系统是采用Eclipse+EclipseMe+JDK+ADT作为开发平台。
事实上为了节约时间就直接用Google公司安给的直接绑定好的adt-bundle-windows-x86_64开发,只需要配置下环境变量,无需要关联等操作。
三、概要设计:3.1系统的总体整个程序基于android技术开发,出总体模块外主要分为输入模块、显示模块以及计算模块(包括一些其她功能)这三大部分。
安卓计算器实验报告
安卓计算器实验报告一、实验目的本次实验的目的是开发一款功能齐全、操作便捷的安卓计算器应用程序,以满足用户在日常生活和工作中对基本计算和科学计算的需求。
二、实验环境1、操作系统:Windows 102、开发工具:Android Studio3、编程语言:Java 和 XML4、测试设备:安卓手机(型号:_____ ,操作系统版本:_____ )三、实验步骤(一)需求分析在开始开发之前,对计算器的功能需求进行了详细的分析。
确定了以下主要功能:1、基本四则运算(加、减、乘、除)2、百分比计算3、平方根计算4、幂运算5、括号优先级计算6、历史记录功能7、清除和撤销操作(二)界面设计使用 XML 布局文件设计计算器的用户界面。
界面包括数字按钮、运算符按钮、等号按钮、清除按钮、撤销按钮和显示计算结果和表达式的文本框。
(三)功能实现1、数字和运算符的点击事件处理为每个数字按钮和运算符按钮设置点击事件监听器。
当用户点击数字按钮时,将数字添加到表达式中;点击运算符按钮时,根据当前的计算状态进行相应的处理。
2、计算逻辑使用 Java 中的数学运算方法实现四则运算、百分比计算、平方根计算和幂运算。
根据运算符的优先级进行计算,确保计算结果的准确性。
3、括号处理通过栈数据结构来处理括号,确保括号内的表达式先计算。
4、历史记录使用数据库来存储计算的历史记录,包括表达式和结果。
用户可以查看历史记录,并重新使用其中的表达式进行计算。
5、清除和撤销操作实现清除按钮的功能,将表达式和结果清空;撤销按钮的功能则是回退上一步的操作。
(四)测试与优化1、功能测试对计算器的各项功能进行了全面的测试,包括基本运算、复杂表达式计算、括号计算、历史记录查看等。
确保每个功能都能正常工作,计算结果准确无误。
2、性能测试对计算器的响应速度进行了测试,优化了计算算法和数据结构,提高了计算的效率。
3、兼容性测试在不同型号和操作系统版本的安卓手机上进行了测试,确保计算器应用在各种设备上都能正常运行,界面布局合理。
基于android的计算器毕业设计报告
基于android的计算器毕业设计报告1. 引言计算器是一种常用的电子设备,用于进行各种数学计算和运算,如加减乘除、平方根、百分比等。
随着智能手机的普及,人们越来越倾向于使用手机上的计算器应用进行数学计算,因此开发一款基于Android平台的计算器应用成为一项有意义的毕业设计。
2. 设计目标本计算器应用的设计目标是满足用户对于高效、准确计算需求的同时,具备友好的用户界面和良好的用户体验。
3. 功能设计3.1 基本计算功能用户可以通过输入数字和运算符,进行基本的加减乘除运算。
计算器应能正确解析用户输入的表达式,并给出准确的结果。
3.2 科学计算功能计算器还应该具备科学计算功能,如平方根、立方根、指数运算、对数运算等。
用户可以通过在界面上选择相应的按钮进行科学计算。
3.3 历史记录功能计算器应能保存用户的历史计算记录,以便用户可以回顾之前的计算过程和结果。
用户可以随时查看特定的历史记录,并可以清除历史记录。
3.4 单位转换功能计算器还应该具备单位转换功能,如长度单位之间的转换,重量单位之间的转换等。
用户可以在界面上选择需要进行的单位转换,并输入相应的数值,计算器将给出转换后的结果。
4. 用户界面设计4.1 主界面主界面应该简洁清晰,并具备直观明了的操作按钮,供用户选择进行不同的计算。
4.2 科学计算界面科学计算界面应该设计为可选展示的,用户可以通过选择按钮在主界面和科学计算界面之间切换。
4.3 历史记录界面历史记录界面应该能够展示用户之前的计算过程和结果,并提供删除历史记录的功能。
4.4 单位转换界面单位转换界面应该设计为可选展示的,用户可以通过选择按钮在主界面和单位转换界面之间切换。
5. 开发技术和工具本计算器应用基于Android平台进行开发,开发工具可选用Android Studio。
开发语言选择Java,使用Android SDK进行开发。
设计界面可以使用XML或者Android布局进行设计。
基于Android计算器的开发与测试
实训报告实训项目名称基于Android计算器的开发与测试二级学院信息工程学院专业班级 11级姓名学号日期 2014-11-19 项目基于安卓计算器的开发与测试名称教13 603地点摘要Android就是当今最重要的手机开发平台之一,它就是建立在Java基础之上的,能够迅速建立手机软件的解决方案。
Android的功能十分强大,成为当今软件行业的一股新兴力量。
Android基于Linux平台,由操作系统、中间件、用户界面与应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序就是在平等条件下创建的,应用程序可以轻松的嵌入网络、应用程序可以并行运行。
而简单计算器又就是手机上必备的小程序,所以此次创新实践很有意义。
并且具有很强的使用性。
关键字:计算器,Android,移动设备目录1 绪论 (4)1、1研究背景42 游戏系统开发平台 (5)3 系统分析与设计 (6)3、1可行性研究63、2系统的需求分析63、3系统的优势63、4系统的流程 (6)4、模板设计与实现 (7)5 测试用列与结果 (9)5、1测试用列 (9)5、2测试用列展示图 (10)6 小结 (12)参考文献 (13)附录: (13)1 绪论1.1研究背景(1)计算器背景目前手机可以说就是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开始代替固定电话的通话功能,以及一些原来电脑软件上的功能了。
手机上的软件也随着手机的发展变得丰富起来了,时至今日已经出现了很多专门制作手机软件的公司,虽然制作的多就是游戏软件,但就是一些辅助性的工具软件也有了很多、我们在此次系统中所做的工作主要就是设计整个系统以及利用编程语言实现整个系统,使系统能够正确的运行计算功能。
(2)Android系统简介Android 系统构架简介:Android就是一个基于Linux®V2、6内核的交互性操作环境,同时它也就是一个分层系统,Android系统架构显示如下图1、1。
基于安卓开发的计算器课程设计报告
大庆师范学院《ANDROID应用设计》课程设计报告题目:简易计算器专业班级:计算机科学与技术一班设计者:\\\\\\\\\\\\\\\\\\\\\\\\\\\\指导老师:P’P’P’P’设计时间:2016-2017(1)报告完成日期2016 年12月30日1 设计任务及要求设计一款基于Android系统下的计算器,实现一般计算器可以进行的加减乘除算法,以及清零操作。
本人学习Android有近半年的时间。
由于不同的Android 手机有着不同的分辨率,将不同分辨率的图标图片放置在相应位置。
Drawable-hdpi中放置分辨率最高的图标,drawable--ldpi中放置分辨率中等的图标,drawable-mdpi中放置在分辨率最低的图标。
界面设计应该就尽量简洁而美观,应该具有良好的交互性。
在整个过程中,首先应该对输入进行容错处理,这样有利于提高用户体验。
对于用户的按键输入,需要及时的现实在第一个EditView中。
用户在输入过程中,肯定会存在一定的错误,程序设计过程中需要对应用程序进行容错处理。
容错设计比如:在输入过程中小数的话只能有一个小数点,操作符不能连续输入,整数数据的开头不能出现0等等。
在程序设计过程中,需要设计数据结构来存储数字、操作符和容错标记,在本文中使用了栈,对这些数据进行了存储。
2设计原理及总体框图将表达式转为字符串类进行存储。
将表达式的字符串进行处理,将数字和运算符分别存放在两个栈中(也可以使用队列,理论上使用队列更为合理,在这我使用栈来实现)。
由于栈是后进先出的,所以先将两个栈进行逆序。
设计方法来处理两个栈从而得到相应的计算结果。
原理:将操作符设计优先级,乘除优先级设置为2,加减优先级设置为1。
一、从操作符栈中弹出两个操作符,假设为symbol1和symbol2,比较两个操作付的优先级,如果symbol1的优先级大于等于symbol2的则执行二,否则执行三。
二、从数字栈中弹出两个数字,计算这两个数字在操作符symbol1下的运算结果,结束后将结果压入数字栈,将symbol2压入操作符栈,最后返回一。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上海电力学院嵌入式WebOS应用开发实验报告实验名称: 使用Android Developer SDK开发应用程序专业:姓名:班级:学号:一、作品的运行环境及安卓SDK基础操作SDK Android Developer就是一款在windows系统上运行的针对Android应用开发的谷歌官方软件(需要JAVA环境支持)。
1、导入工程2、建立虚拟机在运行虚拟机就是为保证机器的顺畅运行建议选择分辨率较低的虚拟机,但就是其RAM最好设为512MB,因为部分程序如果调用资源过大会导致虚拟机无法运行。
3、虚拟机界面二、作品介绍我的应用就是一个计算器。
能实现包括小数的加减乘除运算,结果过大会自动用科学记数法表示,另外还有退格跟清屏功能键。
三、编程以及运行调试(一)、在MyDesktop主界面中添加应用图标1、首先在我的桌面上添加您应用的图标以及文字,双击图标后就可以瞧见对应的代码,可直接在代码中进行修改图片文字的大小颜色等等。
以下就是对应图像图标的代码图片可以在左侧的选项中自行进行挑选;也可以添加自己的图片,只要将图片放到对应的文件夹之下在刷新就可以,但不建议放分辨率过高图片可能会出现超出界面的等错误。
(二)、在res/layout目录下新建、xml文件,由于计算器的按钮很多,要在xml界面中添加排版:xml代码首末的</AbsoluteLayout>格式较为自由可以直接在界面中拖动图标位置以及修改大小,而其她layout则更会自动排列,各有优劣。
(三)、在src/weibo、test、ui目录下新建、java文件,计算器的按钮算法等都在此实现。
(三)、声明工程名1、在应用中有三处需要声明,首先就是在AndroidManifest、xml2、然后就是在MainActivity、java四、代码展示(一)、、xml界面代码<?xml version="1、0"encoding="utf-8"?><LinearLayout xmlns:android=""android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TableLayoutandroid:id="@+id/tableLayout1"android:layout_width="match_parent"android:layout_height="wrap_content"android:collapseColumns="4"><TableRowandroid:id="@+id/tableRow_et"android:layout_width="fill_parent"android:layout_height="fill_parent"><EditTextandroid:id="@+id/et"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_span="4"android:focusable="false"android:gravity="right"android:inputType="text"android:singleLine="true"> </EditText></TableRow><TableRowandroid:id="@+id/tableRow1"android:layout_width="fill_parent"android:layout_height="fill_parent"> <Buttonandroid:id="@+id/bt_7"android:layout_width="80px"android:layout_height="80px"android:text="7"/><Buttonandroid:id="@+id/bt_8"android:layout_width="80px"android:layout_height="80px"android:text="8"/><Buttonandroid:id="@+id/bt_9"android:layout_width="1px"android:layout_height="80px"android:text="9"/><Buttonandroid:id="@+id/bt_back"android:layout_width="80px"android:layout_height="80px"android:text="back"/></TableRow><TableRowandroid:id="@+id/tableRow2"android:layout_width="fill_parent"android:layout_height="fill_parent"> <Buttonandroid:id="@+id/bt_4"android:layout_width="80px"android:layout_height="80px"android:text="4"/><Buttonandroid:id="@+id/bt_5"android:layout_width="80px"android:layout_height="80px"android:text="5"/><Buttonandroid:id="@+id/bt_6"android:layout_width="80px"android:layout_height="80px"android:text="6"/><Buttonandroid:id="@+id/bt_divide"android:layout_width="80px"android:layout_height="80px"android:text="/"/></TableRow><TableRowandroid:id="@+id/tableRow3"android:layout_width="fill_parent"android:layout_height="fill_parent"> <Buttonandroid:id="@+id/bt_1"android:layout_width="80px"android:layout_height="80px"android:text="1"/><Buttonandroid:id="@+id/bt_2"android:layout_width="80px"android:layout_height="80px"android:text="2"/><Buttonandroid:id="@+id/bt_3"android:layout_width="80px"android:layout_height="80px"android:text="3"/><Buttonandroid:id="@+id/bt_multiply"android:layout_width="80px"android:layout_height="80px"android:text="*"/></TableRow><TableRowandroid:id="@+id/tableRow4"android:layout_width="fill_parent"android:layout_height="fill_parent"> <Buttonandroid:id="@+id/bt_0"android:layout_width="50px"android:layout_height="80px"android:text="0"/><Buttonandroid:id="@+id/bt_point"android:layout_width="50px"android:layout_height="80px"android:text="、"/><Buttonandroid:id="@+id/bt_add"android:layout_width="50px"android:layout_height="80px"android:text="+"/><Buttonandroid:id="@+id/bt_sub"android:layout_width="50px"android:layout_height="80px"android:text="-"/></TableRow><TableRowandroid:id="@+id/tableRow4"android:layout_width="fill_parent"android:layout_height="fill_parent"><Buttonandroid:id="@+id/bt_equal"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_span="3"android:text="="/><Buttonandroid:id="@+id/bt_clear"android:layout_width="50px"android:layout_height="80px"android:text="clear"/></TableRow></TableLayout></LinearLayout>(二)、、java功能代码package weibo、test、ui;import java、util、ArrayList;import java、util、List;import android、app、Activity;import android、os、Bundle;import android、view、View;import android、view、View、OnClickListener; import android、widget、Button;import android、widget、EditText;import android、widget、Toast;import weibo、lixiaodaoaaa、ui、R;import android、app、Activity;import android、content、Intent;import android、content、pm、PackageManager;import android、os、Bundle;import android、view、KeyEvent;import android、view、View;import android、view、View、OnClickListener;import android、widget、Button;import android、widget、ListView;import com、zsy、flipper、AppInfUtil;import com、zsy、flipper、AppInfo;public class fffActivity extends Activity{private Button bt_1;private Button bt_2;private Button bt_3;private Button bt_4;private Button bt_5;private Button bt_6;private Button bt_7;private Button bt_8;private Button bt_9;private Button bt_0;private Button bt_add;private Button bt_sub; // 减private Button bt_multiply; // 乘private Button bt_divide; // 除private Button bt_back;private Button bt_equal; // 等于private Button bt_point; // 点private Button bt_clear; // 清除private EditText et_play; // 显示private String str_oper = "+"; // 运算符private StringBuffer str_display = new StringBuffer();; // 显示private String str_result; // 结果显示private double num1;private double num2;private boolean flag = true; // 小数点个数开关控制;private boolean b_sub, b_mul, b_div; // 运算符开关控制@Overridepublic void onCreate(Bundle savedInstanceState){super、onCreate(savedInstanceState);setContentView(R、layout、activity_fff);bt_0 = (Button) findViewById(R、id、bt_0);bt_1 = (Button) findViewById(R、id、bt_1);bt_2 = (Button) findViewById(R、id、bt_2);bt_3 = (Button) findViewById(R、id、bt_3);bt_4 = (Button) findViewById(R、id、bt_4);bt_5 = (Button) findViewById(R、id、bt_5);bt_6 = (Button) findViewById(R、id、bt_6);bt_7 = (Button) findViewById(R、id、bt_7);bt_8 = (Button) findViewById(R、id、bt_8);bt_9 = (Button) findViewById(R、id、bt_9);bt_add = (Button) findViewById(R、id、bt_add);bt_sub = (Button) findViewById(R、id、bt_sub);bt_multiply = (Button) findViewById(R、id、bt_multiply); bt_divide = (Button) findViewById(R、id、bt_divide);bt_back = (Button) findViewById(R、id、bt_back);bt_equal = (Button) findViewById(R、id、bt_equal);bt_point = (Button) findViewById(R、id、bt_point);bt_clear = (Button) findViewById(R、id、bt_clear);et_play = (EditText) findViewById(R、id、et);et_play、setText("0");bt_0、setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display、append("0");et_play、setText(str_display、toString());}});bt_1、setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display、append("1");et_play、setText(str_display、toString());}});bt_2、setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display、append("2");et_play、setText(str_display、toString());}});bt_3、setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v){str_display、append("3");et_play、setText(str_display、toString());}});bt_4、setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v){str_display、append("4");et_play、setText(str_display、toString());}});bt_5、setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v){str_display、append("5");et_play、setText(str_display、toString());}});bt_6、setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v){str_display、append("6");et_play、setText(str_display、toString());}});bt_7、setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v){str_display、append("7");et_play、setText(str_display、toString());}});bt_8、setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display、append("8");et_play、setText(str_display、toString());}});bt_9、setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_display、append("9");et_play、setText(str_display、toString());}});bt_point、setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){if (flag){str_display、append("、");flag = false;}}});bt_back、setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){if (str_display、length() != 0){str_display、deleteCharAt(str_display、length() - 1);et_play、setText(str_display、toString());}}});bt_add、setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_oper = "+";if (!(str_display、toString() == "")){num1 += Double、parseDouble(str_display、toString());str_display = new StringBuffer("");}if (!(str_result == null)){num1 = Double、parseDouble(str_result);str_result = null;}et_play、setText(String、valueOf(num1));flag = true;}});bt_sub、setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_oper = "-";if (!b_sub && !(str_display、toString() == "")){num1 = Double、parseDouble(str_display、toString());et_play、setText(String、valueOf(num1));str_display = new StringBuffer("");b_sub = true;} else{if (!(str_display、toString() == "")){num1 -= Double、parseDouble(str_display、toString());str_display = new StringBuffer("");}if (!(str_result == null)){num1 = Double、parseDouble(str_result);str_result = null;}et_play、setText(String、valueOf(num1));}flag = true;}});bt_multiply、setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_oper = "*";if (!b_mul && !(str_display、toString() == "")){num1 = Double、parseDouble(str_display、toString());et_play、setText(String、valueOf(num1));str_display = new StringBuffer("");b_mul = true;} else{if (!(str_display、toString() == "")){num1 *= Double、parseDouble(str_display、toString());str_display = new StringBuffer("");}if (!(str_result == null)){num1 = Double、parseDouble(str_result);str_result = null;}et_play、setText(String、valueOf(num1));}flag = true;}});bt_divide、setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_oper = "/";if (!b_div && !(str_display、toString() == "")){num1 = Double、parseDouble(str_display、toString());et_play、setText(String、valueOf(num1));str_display = new StringBuffer("");b_div = true;} else{if (!(str_display、toString() == "")){if (Double、parseDouble(str_display、toString()) == 0){Toast、makeText(fffActivity、this,"除数不能为0!", Toast、LENGTH_LONG)、show();} else{num1 /= Double、parseDouble(str_display、toString());str_display = new StringBuffer("");}}if (!(str_result == null)){num1 = Double、parseDouble(str_result);str_result = null;}et_play、setText(String、valueOf(num1));}flag = true;}});bt_clear、setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){str_oper = "+";str_display = new StringBuffer("");str_result = null;num1 = 0;num2 = 0;flag = true;b_sub = false;b_mul = false;b_div = false;et_play、setText("0");}});bt_equal、setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){if (str_oper、equals("+")){num2 = Double、parseDouble(str_display、toString());str_result = String、valueOf((num1 + num2));et_play、setText(str_result);str_display = new StringBuffer("");}if (str_oper、equals("-")){num2 = Double、parseDouble(str_display、toString());str_result = String、valueOf((num1 - num2));et_play、setText(str_result);str_display = new StringBuffer("");}if (str_oper、equals("*")){num2 = Double、parseDouble(str_display、toString());str_result = String、valueOf((num1 * num2));et_play、setText(str_result);str_display = new StringBuffer("");}if (str_oper、equals("/")){num2 = Double、parseDouble(str_display、toString());if (!(num2 == 0)){str_result = String、valueOf((num1 / num2));et_play、setText(str_result);} else{Toast、makeText(fffActivity、this,"除数不能为0!", Toast、LENGTH_LONG)、show();}str_display = new StringBuffer("");}}});}}五、实验小结通过此次Android应用的开发,使我学会了很多在其她理论课上所无法学到的东西。