android开发——简易计算器的设计报告

合集下载

Android开发实现的简单计算器功能【附完整demo源码下载】

Android开发实现的简单计算器功能【附完整demo源码下载】

Android开发实现的简单计算器功能【附完整demo源码下载】本⽂实例讲述了Android开发实现的简单计算器功能。

分享给⼤家供⼤家参考,具体如下:这个Android计算器虽然还有点⼩bug,不过简单的计算功能还是没问题的哦;先上图看效果⽐较简单,所以我就没怎么写注释,应该⼀看就能明⽩的有不明⽩的可以发信问我先贴MainActivity.java代码package com.example.calculator;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener {Button b1, b2, b3, b4, b5, b6, b7, b8, b9, b0, bp, bs, bm, bd, bc, be;ImageView delete;TextView tv;EditText show;String showString = "", option = "";int showfirst = 0;String exception = "";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);b0 = (Button) findViewById(R.id.bt_0);b1 = (Button) findViewById(R.id.bt_1);b2 = (Button) findViewById(R.id.bt_2);b3 = (Button) findViewById(R.id.bt_3);b4 = (Button) findViewById(R.id.bt_4);b5 = (Button) findViewById(R.id.bt_5);b6 = (Button) findViewById(R.id.bt_6);b7 = (Button) findViewById(R.id.bt_7);b8 = (Button) findViewById(R.id.bt_8);b9 = (Button) findViewById(R.id.bt_9);bp = (Button) findViewById(R.id.bt_plus);bs = (Button) findViewById(R.id.bt_sub);bm = (Button) findViewById(R.id.bt_mutilate);bd = (Button) findViewById(R.id.bt_div);bc = (Button) findViewById(R.id.bt_c);be = (Button) findViewById(R.id.bt_equ);b1.setOnClickListener(this);b2.setOnClickListener(this);b3.setOnClickListener(this);b4.setOnClickListener(this);b5.setOnClickListener(this);b6.setOnClickListener(this);b7.setOnClickListener(this);b8.setOnClickListener(this);b9.setOnClickListener(this);b0.setOnClickListener(this);bp.setOnClickListener(this);bs.setOnClickListener(this);bm.setOnClickListener(this);bd.setOnClickListener(this);bc.setOnClickListener(this);be.setOnClickListener(this);show = (EditText) findViewById(R.id.et_show);delete = (ImageView) findViewById(R.id.iv_delete);delete.setOnClickListener(this);tv=(TextView) findViewById(R.id.author);tv.setOnClickListener(this);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.bt_0:showString += "0";break;case R.id.bt_1:showString += "1";break;case R.id.bt_2:showString += "2";break;case R.id.bt_3:showString += "3";break;case R.id.bt_4:showString += "4";break;case R.id.bt_5:showString += "5";break;case R.id.bt_6:showString += "6";break;case R.id.bt_7:showString += "7";break;case R.id.bt_8:showString += "8";break;case R.id.bt_9:showString += "9";break;case R.id.bt_plus:if (showString.equals(""))exception = "先输⼊数值哦";else {showfirst = Integer.parseInt(showString);showString = "";option = "+";}break;case R.id.bt_sub:if (showString.equals(""))exception = "先输⼊数值哦";else {showfirst = Integer.parseInt(showString);showString = "";option = "-";}break;case R.id.bt_mutilate:if (showString.equals(""))exception = "先输⼊数值哦";else {showfirst = Integer.parseInt(showString);showString = "";option = "*";}break;case R.id.bt_div:if (showString.equals(""))exception = "先输⼊数值哦";else {showfirst = Integer.parseInt(showString);showString = "";option = "/";}break;case R.id.bt_equ:if (option.equals("+"))showString = showfirst + Integer.parseInt(showString) + "";else if (option.equals("-")) {showString = showfirst - Integer.parseInt(showString) + "";} else if (option.equals("*")) {showString = showfirst * Integer.parseInt(showString) + "";} else if (option.equals("/")) {if (showString.equals("0")) {exception = "除数不能为0!";} elseshowString = showfirst / Integer.parseInt(showString) + "";}break;case R.id.bt_c:showString = "";break;case R.id.iv_delete:Toast.makeText(MainActivity.this, showString + "已被清空",Toast.LENGTH_SHORT).show();showString = "";break;case R.id.author:Toast.makeText(MainActivity.this, "郑明亮\n软件⼯程\nQQ:1072307340", Toast.LENGTH_SHORT).show();break;default:break;}if (exception.equals(""))show.setText(showString);else {show.setText(exception);exception = "";}// 设置⽂本框颜⾊;if (!show.getText().toString().equals("")) {delete.setBackgroundColor(R.drawable.delete_gray);}else {delete.setBackgroundResource(R.drawable.delete);}}}再贴布局activity_main.xml:<LinearLayout xmlns:android="/apk/res/android" xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.example.calculator.MainActivity" ><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content" ><EditTextandroid:id="@+id/et_show"android:layout_width="fill_parent"android:layout_height="wrap_content"android:hint="请输⼊数字" /><ImageViewandroid:id="@+id/iv_delete"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignRight="@id/et_show"android:src="@drawable/delete_and_deletegray" > </ImageView></RelativeLayout><GridLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_below="@+id/et_show"android:focusable="false"android:gravity="center"android:layout_marginTop="25dp"android:columnCount="4"android:horizontalSpacing="0dp"android:orientation="horizontal"android:stretchMode="none" ><Buttonandroid:id="@+id/bt_1"android:layout_height="wrap_content"android:text="1" /><Buttonandroid:id="@+id/bt_2"android:text="2" /><Buttonandroid:id="@+id/bt_3"android:text="3" /><Buttonandroid:id="@+id/bt_div"android:text="/" /><Buttonandroid:id="@+id/bt_4"android:text="4" /><Buttonandroid:id="@+id/bt_5"android:text="5" /><Buttonandroid:id="@+id/bt_6"android:text="6" /><Buttonandroid:id="@+id/bt_mutilate"android:text="X" /><Buttonandroid:id="@+id/bt_7"android:text="7" /><Buttonandroid:id="@+id/bt_8"android:text="8" /><Buttonandroid:id="@+id/bt_9"android:text="9" /><Buttonandroid:id="@+id/bt_sub"android:text="-" /><Buttonandroid:id="@+id/bt_0"android:layout_columnSpan="2"android:layout_gravity="fill_horizontal"android:text="0"android:width="2dp" /><Buttonandroid:id="@+id/bt_c"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="C" /><Buttonandroid:id="@+id/bt_plus"android:layout_gravity="fill_vertical"android:layout_rowSpan="2"android:text="+" /><Buttonandroid:id="@+id/bt_equ"android:layout_columnSpan="3"android:layout_gravity="fill_horizontal"android:text="=" /></GridLayout><TextViewandroid:id="@+id/author"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Author:Bri"/><TextViewandroid:id="@+id/test"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="test:"/></LinearLayout>我还写了⼀个drawable的xml,⾃⼰看吧delete_and_deletegray.xml:<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="/apk/res/android"><item android:drawable="@drawable/delete_gray" android:state_focused="false" android:state_pressed="false"></item><item android:drawable="@drawable/delete" android:state_focused="false" android:state_pressed="false" android:state_selected="true"/> <item android:drawable="@drawable/delete" android:state_pressed="true" android:state_selected="false"/><item android:drawable="@drawable/delete" android:state_focused="true" android:state_pressed="true"/></selector>附:完整实例代码点击此处。

android开发——简易计算器的设计报告

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的简易的计算器的设计与实现

《Android编程技术》---基于Android的简易的计算器的设计与实现
clear_flag=false;
etinput="";
etInput.setText("");
}
etInput.setText(etinput+((Button)v).getText());//点击数字和小数点直接显示内容
break;
caseR.id.btJia:
caseR.id.btJian:
caseR.id.btMul:
btMul.setOnClickListener(this);
btDivide.setOnClickListener(this);
btEqu.setOnClickListener(this);
btClear.setOnClickListener(this);
btDel.setOnClickListener(this);
cleБайду номын сангаасr_flag=false;
return;
}
clear_flag=true;
doubleresult=0;
String s1=exp.substring(0,exp.indexOf(" "));//运算符前面的字符串
String op=exp.substring(exp.indexOf(" ")+1,exp.indexOf(" ")+2);//运算符,是根据运算符前边的空格计算的
privateButtonbtJian;
privateButtonbtMul;
privateButtonbtDivide;
privateButtonbtEqu;
privateButtonbtClear;

android简易计算器的实现

android简易计算器的实现

android简易计算器的实现最近接触了android开发就试着写了⼀个计算器的⼩程序:在xml⽂件中的布局代码如下:1<?xml version="1.0" encoding="utf-8"?>2<LinearLayout xmlns:android="/apk/res/android"3 xmlns:tools="/tools"4 android:id="@+id/activity_ji_suan02"5 android:layout_width="match_parent"6 android:layout_height="match_parent"7 android:orientation="vertical"8 tools:context="com.example.whs.sample01_1_activity.JiSuanActivity02">910<TextView11android:id="@+id/tv"12 android:layout_width="match_parent"13 android:layout_height="40dp"14 android:textSize="30dp"15 android:text="0"16 android:textColor="#ff0000"17 android:gravity="center_vertical|right"18 android:layout_marginRight="5dp"19 android:layout_marginLeft="5dp"20 android:background="#FFFF00"21/>22<!--7 8 9 + -->23<LinearLayout24android:layout_width="match_parent"25 android:layout_height="wrap_content"26 android:paddingTop="5dp"27 android:orientation="horizontal"28>2930<Button31android:id="@+id/Button07"32 android:text="7"33 android:textSize="25dp"34 android:layout_width="80dp"35 android:layout_height="wrap_content"/>36<Button37android:id="@+id/Button08"38 android:text="8"39 android:textSize="25dp"40 android:layout_width="80dp"41 android:layout_height="wrap_content"/>42<Button43android:id="@+id/Button09"44 android:text="9"45 android:textSize="25dp"46 android:layout_width="80dp"47 android:layout_height="wrap_content"/> 48<Button49android:id="@+id/ButtonJia"50 android:text="+"51 android:textSize="25dp"52 android:layout_width="80dp"53 android:layout_height="wrap_content"/> 5455</LinearLayout>5657<!--4 5 6 - -->58<LinearLayout59android:layout_width="match_parent"60 android:layout_height="wrap_content"61 android:paddingTop="5dp"62 android:orientation="horizontal"63>6465<Button66android:id="@+id/Button04"67 android:text="4"68 android:textSize="25dp"69 android:layout_width="80dp"70 android:layout_height="wrap_content"/> 71<Button72android:id="@+id/Button05"73 android:text="5"74 android:textSize="25dp"75 android:layout_width="80dp"76 android:layout_height="wrap_content"/> 77<Button78android:id="@+id/Button06"79 android:text="6"80 android:textSize="25dp"81 android:layout_width="80dp"82 android:layout_height="wrap_content"/> 83<Button84android:id="@+id/ButtonJian"85 android:text="-"86 android:textSize="25dp"87 android:layout_width="80dp"88 android:layout_height="wrap_content"/> 8990</LinearLayout>9192<!--1 2 3 * -->93<LinearLayout94android:layout_width="match_parent"95 android:layout_height="wrap_content"96 android:paddingTop="5dp"97 android:orientation="horizontal"98>99100<Button101android:id="@+id/Button01"102 android:text="1"103 android:textSize="25dp"104 android:layout_width="80dp"105 android:layout_height="wrap_content"/> 106<Button107android:id="@+id/Button02"108 android:text="2"109 android:textSize="25dp"110 android:layout_width="80dp"111 android:layout_height="wrap_content"/> 112<Button113android:id="@+id/Button03"114 android:text="3"115 android:textSize="25dp"116 android:layout_width="80dp"117 android:layout_height="wrap_content"/> 118<Button119android:id="@+id/ButtonCheng"120 android:text="*"121 android:textSize="25dp"122 android:layout_width="80dp"123 android:layout_height="wrap_content"/> 124125</LinearLayout>126127<!--0 C = / -->128<LinearLayout129android:layout_width="match_parent"130 android:layout_height="wrap_content"131 android:paddingTop="5dp"132 android:orientation="horizontal"133>134135<Button136android:id="@+id/Button00"137 android:text="0"138 android:textSize="25dp"139 android:layout_width="80dp"140 android:layout_height="wrap_content"/>141<Button142android:id="@+id/ButtonC"143 android:text="C"144 android:textSize="25dp"145 android:layout_width="80dp"146 android:layout_height="wrap_content"/>147<Button148android:id="@+id/ButtonDeng"149 android:text="="150 android:textSize="25dp"151 android:layout_width="80dp"152 android:layout_height="wrap_content"/>153<Button154android:id="@+id/ButtonChu"155 android:text="/"156 android:textSize="25dp"157 android:layout_width="80dp"158 android:layout_height="wrap_content"/>159160</LinearLayout>161162163164165166</LinearLayout>在activity中实现具体的功能1package com.example.whs.sample01_1_activity;23import android.provider.Settings;4import android.support.v7.app.AppCompatActivity;5import android.os.Bundle;6import android.view.View;7import android.widget.Button;8import android.widget.TextView;9import android.widget.Toast;1011public class JiSuanActivity02 extends AppCompatActivity {1213 TextView tv;14int[] buttons; //数字按钮数组15int result;16int result0;17int result1;1819//按钮对象声明20 Button buttonC;21 Button buttonJia;22 Button buttonJian;23 Button buttonCheng;24 Button buttonChu;25 Button buttonDengyu;2627 String str1; //旧输⼊的值28 String str2; //新输⼊的值2930int flag=0; //计算标志位,0第⼀次输⼊;1加; 2减; 3乘; 4除; 5等于 31 Button temp;3233 @Override34protected void onCreate(Bundle savedInstanceState) {35super.onCreate(savedInstanceState);36 setContentView(yout.activity_ji_suan02);3738 initButton();39//清空按钮点击事件40 buttonC.setOnClickListener(new View.OnClickListener() {41 @Override42public void onClick(View view) {43 str1 = "";44 str2 = "";45 tv.setText("0");46 result = 0;47 result1 = 0;48 result0 = 0;49 flag = 0;50 }51 });5253//监听54for (int i = 0; i < buttons.length; i++){55 temp = getBtnForId(buttons[i]);56 temp.setOnClickListener(new View.OnClickListener() {57 @Override58public void onClick(View view) {59if (flag != 0){60 str1 = "";61 }else {62 str1 = tv.getText().toString().trim();63if (str1.equals("0")){64 str1 = "";65 }66 }6768 str1 = str1 + String.valueOf(((Button)view).getText()); //获取新值69 tv.setText(str1);70 }71 });72 }7374 buttonListener(buttonJia, 1);75 buttonListener(buttonJian, 2);76 buttonListener(buttonCheng, 3);77 buttonListener(buttonChu, 4);7879 buttonDengyu.setOnClickListener(new View.OnClickListener() {80 @Override81public void onClick(View view) {8283 result1 = Integer.parseInt(str1);8485if (flag == 1){86 result = result0 + result1;87 }else if (flag == 2){88 result = result0 - result1;89 }else if (flag == 3){90 result = result0 * result1;91 }else if (flag == 4){92if (result1 == 0){93 Toast.makeText(JiSuanActivity02.this, "除数不能为0", Toast.LENGTH_SHORT).show();94 }else {95 result = result0 / result1;96 }9798 }else if (flag == 0){99 result = result1;100 }101 String str = (result + "").trim();102103if (result1 == 0 && flag == 4){104 str = "错误";105 }106 tv.setText(str);107 Toast.makeText(JiSuanActivity02.this, "结果是:" + result, Toast.LENGTH_SHORT).show(); 108 }109 });110 }111112//初始化控件资源113public void initButton(){114 tv = (TextView)this.findViewById();115 str1 = String.valueOf(tv.getText());116 str2 = "";117 buttonC = getBtnForId(R.id.ButtonC);118 buttonJia = getBtnForId(R.id.ButtonJia);119 buttonJian = getBtnForId(R.id.ButtonJian);120 buttonCheng = getBtnForId(R.id.ButtonCheng);121 buttonChu = getBtnForId(R.id.ButtonChu);122 buttonDengyu = getBtnForId(R.id.ButtonDeng);123124 buttons = new int[]{125 R.id.Button00,R.id.Button01,R.id.Button02,126 R.id.Button03,127 R.id.Button04,R.id.Button05,R.id.Button06,128 R.id.Button07,R.id.Button08,R.id.Button09129 };130 }131//根据id获取Button132public Button getBtnForId(int rID){133 Button btn = (Button)this.findViewById(rID);134return btn;135 }136//按钮监听137public void buttonListener(Button button, final int id){138 button.setOnClickListener(new View.OnClickListener() { 139 @Override140public void onClick(View view) {141 String str = tv.getText().toString().trim();142 result0 = Integer.parseInt(str);143//tv.setText("");144 flag = id;145 }146 });147 }148 }。

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计算器应用。

在Android Studio中开发一个简单的计算器应用

在Android Studio中开发一个简单的计算器应用

在Android Studio中开发一个简单的计算器应用随着智能手机的普及,计算器应用成为了人们生活中不可或缺的工具之一。

为了满足用户的需求,我们决定在Android Studio中开发一个简单的计算器应用。

这个应用将提供基本的四则运算功能,并且界面简洁易用。

首先,在Android Studio中创建一个新的项目。

选择合适的应用名称和包名。

接下来,我们需要设计应用的用户界面。

我们希望用户界面简洁明了,方便用户使用。

可以考虑使用一个TextView显示计算结果,以及多个Button用于输入数字和操作符。

在开发计算器的过程中,我们需要处理用户的输入并进行相应的计算。

为此,我们可以使用一个EditText控件来接收用户的输入,并通过按钮的点击事件来获取用户点击的数字和操作符。

然后,我们可以使用Java中的数学库来进行四则运算,并将结果显示在TextView中。

通过Android Studio提供的布局编辑器,我们可以轻松地将TextView和Button布局在界面上。

可以使用LinearLayout或RelativeLayout进行布局,根据需要设置各个控件之间的位置和大小。

此外,还可以设置按钮的点击事件,使其能够响应用户的输入。

在处理用户输入时,需要考虑一些特殊情况。

例如,当用户输入非法字符或进行除法时需要进行错误处理。

可以通过在代码中添加条件判断语句来实现这些功能。

另外,还可以添加一些额外的功能,如清除输入、撤销操作等,以提升用户体验。

在开发过程中,可以使用Android Studio提供的调试工具来检查代码是否正常运行。

可以设置断点,逐步执行代码,并查看变量的值。

这些工具能够帮助我们快速定位和修复错误。

为了使应用具有良好的用户体验,我们还可以添加一些动画效果和过渡效果。

例如,当用户点击按钮时,可以添加按钮缩放、淡入淡出等动画效果,使界面更加生动有趣。

除了基本功能以外,我们还可以考虑添加更多的功能来完善应用。

Android简单计算器课程设计

Android简单计算器课程设计

Android简单计算器课程设计广东工业大学华立学院课程名称手机游戏开发题目名称简单计算器学生学部,系, 机电与信息工程学部专业班级 12计算机科学与技术2班学号学生姓名任课教师2015年 6月 20日一、课程考试,设计,的内容基于Android平台的简单计算器二、课程考试,设计,的要求清晰描述应用的策略和基本框架~并设计相关的类~描述各个类的作用和关系~画出类图关系~叙述使用到的技术点。

目录1课程综述 .............................................. 错误~未定义书签。

2 手机应用设计.......................................... 错误~未定义书签。

2.1 开发背景...................................................................... ........................................................................ 错误~未定义书签。

2.2 设计思想...................................................................... ........................................................................ 错误~未定义书签。

2.3 策略描述.............................................................................................................................................. 错误~未定义书签。

2.4 设计将达到的目标 ..................................................................... ....................................................... 错误~未定义书签。

安卓计算器开发实验报告

安卓计算器开发实验报告

上海电力学院嵌入式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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简易计算机的设计摘要: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()用户可以开始与活动进行交互时调用。

如动画播放和音乐播放;void onPause()活动将要进入后台运行时调用。

(此时前台启动了另一个活动);void onStop()不需要某个活动了,就调用;void onDestroy()销毁活动。

(2)多个Activity之间的跳转:通过Intent类实现屏幕之间的跳转(包括没有参数关系和需要传递参数两种情况)。

(3)两个Activity之间进行数据交换:startActivity() 只有Intent一个参数;public void startSubActivity(Intent intent, int requestCode) (requestCode:用来标识某一个调用,一般定义一个常量)。

传过去:函数原型为: public Intent setData(ContentURI data) 然后,参数带到新的Activity 后,同样用Activity.getIntent()函数可得到当前过来的Intent对象,然后用getData()就取到参数了。

传回来:函数原型为:public final void setResult(int resultCode, String data)。

2、Intent的相关知识Intent 是描述应用想要做什么。

Android 使用了Intent 这个特殊类,实现在屏幕与屏幕之间移动。

Intent 数据结构两个最重要的部分是动作和动作对应的数据。

Intent类绑定一次操作,它负责携带这次操作所需要的数据以及操作的类型等。

3、Layout用于用户界面设计。

包含AbsoluteLayout, FrameLayout,GridView,LinearLayout, ListLayout, RadioGroup, TableLayout等等。

(1)线性布局LinearLayout:垂直:android:orientation="vertical“;水平:android:orientation="horizontal"(2)相对布局RelativeLayout:让子元素指定它们相对于其他元素的位置(通过ID 来指定)或相对于父布局对象。

在RelativeLayout布局里的控件包含丰富的排列属性:Layout above:控件在指定控件的上方;Layout below:控件在指定控件的下方;Layout to left of……根据要求,系统实现以下功能:计算器界面友好,具有基本的加、减、乘、除功能,支持触屏手机,整个程序基于android技术开发。

三、设计流程1、系统的软件结构图2、功能的操作流程得出程序结果后,输入数据,选择运算符号,再输入数据,选择等号,即可得到结果。

3、计算器模块整个项目工程的目录文件Src 文件存放的是文本中开发的所有java 文件,java 文件时整个项目的代码,gen 下面的R.java 为Eclipse 自动生成的系统文件。

Res 是存放整个系统所有到的所有资源。

Layout 文件下main.xml 文件的配置生成内容。

计算器 基本加减乘除运算 加法 减法 除法 乘法 其他运算开方 *2运算 正负运算 清除运算四、程序源代码1、主文件JisuanqiActivity.javaSrc/jisuqi.a/JisuanqiActivity.java文件时此项目的主要文件,它调用各个公用文件来实现具体的功能。

文件JisuanqiActivity.java的具体代码如下:package jisuanqi.a;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;public class JisuanqiActivity extends Activity {/** Called when the activity is first created. */private EditText output=null;private EditText input=null;private Button btn0=null;private Button btn1=null;private Button btn2=null;private Button btn3=null;private Button btn4=null;private Button btn5=null;private Button btn6=null;private Button btn7=null;private Button btn8=null;private Button btn9=null;private Button btnadd=null;private Button btnsubtract=null;private Button btnmultiply=null;private Button btndivide=null;private Button btnclear=null;private Button btnresult=null;private Button btndot=null;private Button btnzhengshu=null;private Button btnkaifang=null;private Button btnpingfang=null;private String str="";//保存数字private String strold="";//原数字private char act=' ';//记录“加减乘除等于”符号private int count=0;//判断要计算的次数,如果超过一个符号,先算出来一部分private Double result=0.0;//计算的输出结果private Boolean errBoolean=false;//有错误的时候为true,无错为false private Boolean flagBoolean=false;//一个标志,如果为true,可以响应运算消息,如果为false,不响应运算消息,只有前面是数字才可以响应运算消息private Boolean flagDot=false; //小数点标志位@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.main);output=(EditText)findViewById(R.id.output);input=(EditText)findViewById(R.id.input);btn0=(Button)findViewById(R.id.zero);btn1=(Button)findViewById(R.id.one);btn2=(Button)findViewById(R.id.two);btn3=(Button)findViewById(R.id.three);btn4=(Button)findViewById(R.id.four);btn5=(Button)findViewById(R.id.five);btn6=(Button)findViewById(R.id.six);btn7=(Button)findViewById(R.id.seven);btn8=(Button)findViewById(R.id.eight);btn9=(Button)findViewById(R.id.nine);btnadd=(Button)findViewById(R.id.add);btnsubtract=(Button)findViewById(R.id.subtract);btnmultiply=(Button)findViewById(R.id.multiply);btndivide=(Button)findViewById(R.id.divide);btnclear=(Button)findViewById(R.id.clear);btnresult=(Button)findViewById(R.id.result);btndot=(Button)findViewById(R.id.dot);btnzhengshu=(Button)findViewById(R.id.zhengfu);btnkaifang=(Button)findViewById(R.id.kaifang);btnpingfang=(Button)findViewById(R.id.pingfang);//设置按钮侦听事件btn0.setOnClickListener(listener);btn1.setOnClickListener(listener);btn2.setOnClickListener(listener);btn3.setOnClickListener(listener);btn4.setOnClickListener(listener);btn5.setOnClickListener(listener);btn6.setOnClickListener(listener);btn7.setOnClickListener(listener);btn8.setOnClickListener(listener);btn9.setOnClickListener(listener);//执行运算btnadd.setOnClickListener(listener);btnsubtract.setOnClickListener(listener);btnmultiply.setOnClickListener(listener);btndivide.setOnClickListener(listener);btnclear.setOnClickListener(listener);btnresult.setOnClickListener(listener);btndot.setOnClickListener(listener);btnzhengshu.setOnClickListener(listener);btnkaifang.setOnClickListener(listener);btnpingfang.setOnClickListener(listener);}private OnClickListener listener=new OnClickListener() {public void onClick(View v){// TODO Auto-generated method stubswitch (v.getId()){//输入数字case R.id.zero:num(0) ;break;case R.id.one:num(1) ;break;case R.id.two:num(2) ;break;case R.id.three:num(3) ;break;case R.id.four:num(4) ;break;case R.id.five:num(5) ;break;case R.id.six:num(6) ;break;case R.id.seven:num(7) ;break;case R.id.eight:num(8) ;break;case R.id.nine:num(9) ;break;case R.id.dot:dot();break;//执行运算case R.id.zhengfu:zhengfu();break;case R.id.kaifang:kaifang();break;case R.id.add:add();break;case R.id.subtract: sub() ;break;case R.id.multiply: multiply() ; break;case R.id.divide: divide() ; break;case R.id.clear: clear();break;//计算结果case R.id.result:result();if(!errBoolean&&flagBoolean){output.setText(String.valueOf(result));}default:break;}if(act=='k'){input.setText(strold);}else {input.setText(strold+act+str);}output.setText(String.valueOf(result));}private void kaifang(){// TODO Auto-generated method stubif(flagBoolean) {act='k';strold=str;result();}}private void zhengfu(){// TODO Auto-generated method stubif(strold==""){result=Double.valueOf(str);}else{result=Double.valueOf(strold);}result=result*(-1);strold=String.valueOf(result);output.setText(String.valueOf(result));}private void dot(){// TODO Auto-generated method stubif(!flagDot){str=str+".";flagBoolean=false;flagDot=true;}}private void clear() {// TODO Auto-generated method stubstr=strold="";count=0;act=' ';result=0.0;flagBoolean=false;flagDot=false;input.setText(strold+act+str);output.setText("");}private void divide() {// TODO Auto-generated method stubif(flagBoolean){check();act='/';flagBoolean=false;}}private void multiply() {// TODO Auto-generated method stubif(flagBoolean){check();act='*';flagBoolean=false;}}private void sub() {// TODO Auto-generated method stubif(flagBoolean){check();act='-';flagBoolean=false;}}private void add() {// TODO Auto-generated method stubif(flagBoolean){check();act='+';flagBoolean=false;}}private void check() {// TODO Auto-generated method stubif(count>=1){result();str=String.valueOf(result);}strold=str;str="";count++;flagDot=false;}//计算输出结果private void result() {// TODO Auto-generated method stubif(flagBoolean){Double a,b;a=Double.parseDouble(strold);b=Double.parseDouble(str);if(b==0&&act=='/') {clear();output.setText("除数不能为零!");errBoolean=true;}if(!errBoolean){switch(act){case'+':result=a+b;break;case'-':result=a-b;break;case'*':result=a*b;break;case'/':result=a/b;break;case'k':result=Math.sqrt(a);break;default:break;}}}}private void num(int i) {// TODO Auto-generated method stubstr=str+String.valueOf(i);flagBoolean=true;}};}2、布局文件main.xml布局文件main.xml的具体代码如下所示:<?xml version="1.0"encoding="utf-8"?><ScrollView xmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="wrap_content"><LinearLayout xmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><EditTextandroid:id="@+id/input"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_gravity="center"android:editable="false"android:hint="@string/shuru"/><EditTextandroid:id="@+id/output"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_gravity="center"android:editable="false"android:gravity="right"android:hint="@string/shuchu"/><RelativeLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"><Buttonandroid:id="@+id/seven"android:layout_width="80dp"android:layout_height="70dp"android:layout_alignParentLeft="true"android:text="@string/seven"android:textSize="40sp"/><Buttonandroid:id="@+id/eight"android:layout_height="70dp"android:layout_toRightOf="@id/seven"android:text="@string/eight"android:textSize="40sp"/><Buttonandroid:id="@+id/nine"android:layout_width="80dp"android:layout_height="70dp"android:layout_toRightOf="@id/eight"android:text="@string/nine"android:textSize="40sp"/><Buttonandroid:id="@+id/add"android:layout_width="80dp"android:layout_height="70dp"android:layout_alignParentRight="true"android:layout_toRightOf="@id/nine"android:text="@string/add"android:textSize="40sp"/><Buttonandroid:id="@+id/four"android:layout_width="80dp"android:layout_height="70dp"android:layout_alignParentLeft="true"android:layout_below="@id/seven"android:text="@string/four"android:textSize="40sp"/><Buttonandroid:id="@+id/five"android:layout_width="80dp"android:layout_height="70dp"android:layout_below="@id/eight"android:layout_toRightOf="@id/four"android:text="@string/five"android:textSize="40sp"/><Buttonandroid:id="@+id/six"android:layout_width="80dp"android:layout_below="@id/nine"android:layout_toRightOf="@id/five"android:text="@string/six"android:textSize="40sp"/><Buttonandroid:id="@+id/subtract"android:layout_width="80dp"android:layout_height="70dp"android:layout_alignParentRight="true"android:layout_below="@id/add"android:layout_toRightOf="@id/six"android:text="@string/subtract"android:textSize="40sp"/><Buttonandroid:id="@+id/one"android:layout_width="80dp"android:layout_height="70dp"android:layout_alignParentLeft="true"android:layout_below="@id/four"android:text="@string/one"android:textSize="40sp"/><Buttonandroid:id="@+id/two"android:layout_width="80dp"android:layout_height="70dp"android:layout_below="@id/five"android:layout_toRightOf="@id/one"android:text="@string/two"android:textSize="40sp"/><Buttonandroid:id="@+id/three"android:layout_width="80dp"android:layout_height="70dp"android:layout_below="@id/six"android:layout_toRightOf="@id/two"android:text="@string/three"android:textSize="40sp"/><Buttonandroid:id="@+id/multiply"android:layout_width="80dp"android:layout_height="70dp"android:layout_alignParentRight="true"android:layout_below="@id/subtract"android:layout_toRightOf="@id/three"android:text="@string/multiply"android:textSize="40sp"/><Buttonandroid:id="@+id/zero"android:layout_width="80dp"android:layout_height="70dp"android:layout_alignParentLeft="true"android:layout_below="@id/one"android:text="@string/zero"android:textSize="40sp"/><Buttonandroid:id="@+id/clear"android:layout_width="80dp"android:layout_height="70dp"android:layout_below="@id/two"android:layout_toRightOf="@id/zero"android:text="@string/clear"android:textSize="40sp"/><Buttonandroid:id="@+id/result"android:layout_width="80dp"android:layout_height="70dp"android:layout_below="@id/three"android:layout_toRightOf="@id/clear"android:text="@string/result"android:textSize="40sp"/><Buttonandroid:id="@+id/divide"android:layout_width="80dp"android:layout_height="70dp"android:layout_alignParentRight="true"android:layout_below="@id/multiply"android:layout_toRightOf="@id/result"android:text="@string/divide"android:textSize="40sp"/><Buttonandroid:id="@+id/dot"android:layout_width="80dp"android:layout_height="70dp"android:layout_alignParentLeft="true"android:layout_below="@id/zero"android:text="@string/dot"android:textSize="40sp"/><Buttonandroid:id="@+id/zhengfu"android:layout_width="80dp"android:layout_height="70dp"android:layout_below="@id/clear"android:layout_toRightOf="@id/dot"android:text="@string/zhengfu"android:textSize="40sp"/><Buttonandroid:id="@+id/kaifang"android:layout_width="80dp"android:layout_height="70dp"android:layout_below="@id/result"android:layout_toRightOf="@id/zhengfu"android:text="@string/kaifang"android:textSize="40sp"/><Buttonandroid:id="@+id/pingfang"android:layout_width="80dp"android:layout_height="70dp"android:layout_alignParentRight="true"android:layout_below="@id/divide"android:layout_toRightOf="@id/kaifang"android:text="@string/pingfang"android:textSize="40sp"/></RelativeLayout></LinearLayout></ScrollView>3、Strings.xml文件Valuas文件下Strings.xml文件的具体实现代码如下:<?xml version="1.0"encoding="utf-8"?><resources><string name="app_name">wzt的计算器</string><string name="zero">0</string><string name="one">1</string><string name="two">2</string><string name="three">3</string><string name="four">4</string><string name="five">5</string><string name="six">6</string><string name="seven">7</string><string name="eight">8</string><string name="nine">9</string><string name="add">+</string><string name="subtract">-</string><string name="multiply">*</string><string name="divide">/</string><string name="clear">CE</string><string name="result">=</string><string name="shuru">请按数字键盘输入数字</string> <string name="shuchu">计算器输出结果</string><string name="dot">.</string><string name="zhengfu">+/-</string><string name="kaifang">√</string><string name="pingfang">X2</string></resources>五、设计结果1、加法运算结果2、减法运算结果3、乘法运算结果4、除法运算结果5、开方运算结果6、正负运算结果六、总结通过一周的实训课程设计,使我学习到了许多新的认识。

相关文档
最新文档