安卓计算器开发实验报告
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. 掌握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. 提高了编程能力和团队协作能力。
BMI计算器android 开放实验项目总结报告

1、学生理解Android平台的体系结构;
2、熟悉Android应用程序的构建过程;
3、掌握Android SDK开发工具的使用,Android应用程序发布的一般步骤;
4、熟练使用Android开发的集成开发环境ADT或Android Studio;
5、掌握如何合理运用Android应用框架API开发出相对较完整的工具类应用
5.选择layout文件夹,打开activity_main.xml配置文件。界面如图4
6.选择src文件夹,打开MainActivity.java,界面如图5
7.鼠标右击BMICalculator项目,runas该android项目如图6
8.将该android项目在模拟器上运行,界面如7.8
4.开放实验项目的心得与收获(可多页)
通过开放实验我初步接触到了客户端开发的知识,认识到
附录:
截图界面
图1
图2
图3
图4
图5
图6
图7
图8
3.开放实验项目的内容(可多页)
实验内容:
本次实选择运行BMI计算器
实验过程及截图
1.首先选择Eclipse作为本次实验的IDE
2.在电脑上配置jdk与jre配置过程如图1,2
3.打开Eclipse导入下载androidSDK并,配置ADT
4.将BMICalculator项目import到项目空间中,界面如图3。
淮海工学院计算机工程学院
开放实验报告
实验项目:Android应用开发
学生姓名:学号:
专业班级:
系(院):
起止日期:2016年10月10日-11月25日
开放实验室:专业实验室
基于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应用的开发,使我学会了很多在其他理论课上所无法学到的东西。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式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就可以看见对应的代码, 可直接在代码中进行修改图片文字的 大小颜色等等。
以下是对应图像图标的代码图片可以在左侧的选(二)、在 res/layout 目录下新建.xml 文件,由于计算器的按钮很多, TIF charfrc起 ch^tfrorn_bg_ipTW5&d !S'.pflg~l <+i«,kbnif^M口.股 ch«kbojco#f bsckgrourid^na SEchfkb rn (」]n.hewlcgin 口unci 岱n 评 弧 tlwr^na TTF de^ r o 1 .pnq(三)、在src/目录下新建.java 文件,计算器的按钮算法等都在此实 现。
(三)、声明工程名1、在应用中有三处需要声明,首先是在2、然后是在四、代码展示(一)、.xml 界面代码v? xml version ="" encoding ="utf-8" ?> an droid:layout_width ="fill_pare nt"vTableLayoutan droid:id= "@+id/tableLayout1" an droid:layout_widthan droid:layout_height an droid:collapseColu mns vTableRow</ TableRow > vTableRowan droid:id ="@+id/tableRow1"an droid:layout_width ="fill_pare nt" an droid:layout_height ="fill_pare nt"< Butt onan droid:id ="@+id/bt_7" android:layout width="80px"<Lin earLayout xmln s:a ndroidan droid:layout_height = "fill_pare nt" an droid:orie ntatio n 「vertical" >="match_pare nt" = "wrap_c on tent"="4" >an droid:id an droid:layout_width an droid:layout_height <EditTextan droid:id"@+id/tableRow_et" ="@+id/et"an droid:layout_width an droid:layout_height an droid:layout_spa n an droid:focusable an droid:gravity an droid:inputType an droid:s in gleL ine </ EditText > = "fill_pare nt" ="fill_pare nt"= "fill_pare nt" ="fill_pare nt' "4" = "false" = "right" = "text"= "true" >an droid:layout height ="80px"an droid:text ="7" />< Butt onan droid:id ="@+id/bt_8"an droid:layout width ="80px"an droid:layout height ="80px"an droid:text ="8" />< Butt onan droid:id ="@+id/bt_9"an droid:layout_width = "1px"an droid:layout height ="80px"an droid:text ="9" />< Butt onan droid:id ="@+id/bt_back"an droid:layout width ="80px"an droid:layout height ="80px"an droid:text ="back" /></ TableRow ><TableRowan droid:id ="@+id/tableRow2"an droid:layout_width ="fill. _paren t"an droid:layout_height ="fill_pare nt"< Butt onan droid:id ="@+id/bt_4"an droid:layout width ="80px"android:layout height ="80px"an droid:text ="4" />< Butt onan droid:id ="@+id/bt_5"an droid:layout width ="80px"android:layout height ="80px"an droid:text ="5" />< Butt onan droid:id ="@+id/bt_6"an droid:layout width ="80px"android:layout height ="80px"an droid:text ="6" />< Butt onan droid:id ="@+id/bt_divide"android:layout width ="80px"android:layout height ="80px" an droid:text ="/" /></ TableRow >vTableRowan droid:id ="@+id/tableRow3"an droid:layout_width ="fill_pare nt"an droid:layout_height ="fill_pare nt"< Butt onan droid:id ="@+id/bt_1"an droid:layout width ="80px"an droid:layout height ="80px"an droid:text _="1" />< Butt onan droid:id ="@+id/bt_2"an droid:layout width ="80px"an droid:layout height ="80px"an droid:text 三"2" />< Butt onan droid:id ="@+id/bt_3"an droid:layout width ="80px"an droid:layout height ="80px"an droid:text _="3" />< Butt onan droid:id ="@+id/bt_multiply"an droid:layout width ="80px"an droid:layout height ="80px"an droid:text 三'*" /></ TableRow >vTableRowan droid:id ="@+id/tableRow4"an droid:layout_width ="fill_pare nt"an droid:layout_height ="fill_pare nt"< Butt onan droid:id ="@+id/bt_0"android:layout width ="50px"an droid:layout height ="80px"an droid:text 三"0" />< Butt onan droid:id ="@+id/bt_po in t"android:layout width ="50px"an droid:layout height ="80px"an droid:text _="." />< Butt onan droid:id ="@+id/bt_add"android:layout width ="50px"an droid:layout height ="80px"an droid:text _="+" />< Button an droid:id ="@+id/bt_sub"an droid:layout width ="50px"an droid:layout height ="80px"an droid:text 二"-" /></ TableRow >vTableRowan droid:id ="@+id/tableRow4"an droid:layout_width ="fill_pare nt"an droid:layout_height ="fill_pare nt" >< Butt onan droid:id ="@+id/bt_equal"an droid:layout_width ="fill_pare nt"an droid:layout_height ="fill_pare nt"an droid:layout_spa n ="3"an droid:text ="=" />< Butt onan droid:id ="@+id/bt_clear"an droid:layout width ="50px"an droid:layout height ="80px"an droid:text ="clear" /></ TableRow ></ TableLayout ></ LinearLayout >(二)、.java功能代码import class fffActivity exte nds Activity {private Butt on bt_1;private Butt on bt_2;private Butt on bt_3;private Butt on bt_4;private Butt on bt_5;private Butt on bt_6;private Butt on bt_7;private Butt on bt_8;private Butt on bt_9;private Butt on bt_0;private Butt on bt_add;private Butt on bt_sub;;flag = false;}}});(n ew On ClickListe ner()@Overridepublic void onClick(View v) {if () != 0){{() - 1);());}}});(new OnClickListener(){@Overridepublic void onClick(View v){ str_oper = "+"; if (!() == "")) { num1 += ()); str_display = new StringBuffer("");}if (!(str_result == null)){num1 = (str_result); str_result = null;} (num1)); flag = true;}});(new OnClickListener(){@Overridepublic void onClick(View v){str_oper = "-";if (!b_sub && !() == "")) {num1 = ());(num1));str_display = new StringBuffer("");b_sub = true;} else{}if (!() == "")){num1 -= ());str_display = new StringBuffer("");}if (!(str_result == null)){num1 = (str_result);str_result = null;}(num1));}flag = true;}});(new OnClickListener(){@Overridepublic void onClick(View v){ str_oper = "*";if (!b_mul && !() == "")){num1 = ());(num1));str_display = new StringBuffer(""); b_mul = true;} else{if (!() == "")){num1 *= ()); str_display = new StringBuffer(""); } if (!(str_result == null)) {num1 = (str_result); str_result = null;} (num1));} flag = true;});(new OnClickListener(){@Overridepublic void onClick(View v){str_oper = "/";if (!b_div && !() == "")) {num1 = ()); (num1));str_display = new StringBuffer(""); b_div = true; } else {if (!() == "")){if ()) == 0) {" 除数不能为 0 ! "} else{num1 /= ());str_display = new StringBuffer( }}if (!(str_result == null)){num1 = (str_result); str_result = null;}(num1));}flag = true;}});(new OnClickListener(){@Override public 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; ("0");}});(new OnClickListener(){@Overridepublic void onClick(View v){if ("+")){num2 = ()); str_result = ((num1 + num2)); (str_result); str_display = new StringBuffer(""); } if ("-")){.show(); );num2 = ());str_result = ((num1 - num2)); (str_result);str_display = new StringBuffer(""); } if ("*")){num2 = ());str_result = ((num1 * num2)); (str_result);str_display = new StringBuffer(""); } if ("/")){num2 = ());if (!(num2 == 0)){str_result = ((num1 / num2)); (str_result);} else{" 除数不能为0!", .show(); } str_display = newStringBuffer("");}}});}}五、实验小结通过此次Android 应用的开发,使我学会了很多在其他理论课上所无法学到的东西。