android开发计算器设计开发报告
Android平台上的计算器设计

武汉工程大学计算机科学与工程学院综合设计报告设计名称:信息系统综合设计设计题目:Android平台上的计算器设计学生学号:专业班级:学生姓名:学生成绩:指导教师(职称):吴静(讲师)课题工作时间:2012年3月19日至2012年5月25日说明:1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。
2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。
3、指导教师评语一栏由指导教师就学生在整个设计期间的平时表现、设计完成情况、报告的质量及答辩情况,给出客观、全面的评价。
4、所有学生必须参加综合设计的答辩环节,凡不参加答辩者,其成绩一律按不及格处理。
答辩小组成员应由2人及以上教师组成。
5、报告正文字数一般应不少于5000字,也可由指导教师根据本门综合设计的情况另行规定。
6、平时表现成绩低于6分的学生,其综合设计成绩按不及格处理。
7、此表格式为武汉工程大学计算机科学与工程学院提供的基本格式(适用于学院各类综合设计),各教研室可根据本门综合设计的特点及内容做适当的调整,并上报学院批准。
成绩评定表学生姓名:学号:班级:答辩记录表指导教师评语目录摘要........................................................................................................................................................ - 1 -ABSTRACT ............................................................................................................................................... - 2 -第一章引言.............................................................................................................................................. - 3 -1.1课题背景及意义 (3)1.1.1课题背景................................................................................................................................ - 3 -1.1.2课题相关的技术知识.............................................................................................................. - 4 -1.2智能手机平台系统 (7)1.3课题来源 (8)第二章系统分析...................................................................................................................................... - 9 -2.1系统可行性分析 (9)2.2系统的开发语言的选择 (9)2.3系统的开发工具简介 (9)2.3.1 JDK .......................................................................................................................................... - 9 -2.3.2 WTK ....................................................................................................................................... - 10 -2.3.3 Eclipse .................................................................................................................................... - 10 -2.3.4 EclipseMe ................................................................................................................................- 11 -第三章基于ANDROID平台计算器相关技术概述............................................................................ - 12 -3.1A NDROID手机平台 (12)3.1.1Android起源及优势 .............................................................................................................. - 12 -3.1.2Android体系结构 .................................................................................................................. - 12 -3.1.3Android平台功能特征 .......................................................................................................... - 14 -3.2A NDROID SDK介绍 (15)3.3XML技术 (16)3.4JNI技术 (16)第四章基于ANDROID平台计算器设计............................................................................................ - 18 -4.1系统的总体设计 (18)4.2程序流程和系统功能设计 (18)4.2.1 程序流程设计....................................................................................................................... - 18 -4.2.2 系统功能设计....................................................................................................................... - 19 -4.3基于A NDROID平台系统具体设计 (20)4.3.1 总体模块详细设计............................................................................................................... - 20 -4.3.2 输入模块详细设计............................................................................................................... - 20 -4.3.3 显示模块详细设计............................................................................................................... - 21 -4.3.4 计算模块详细设计............................................................................................................... - 21 -第五章计算器系统实现........................................................................................................................ - 23 -5.1A NDROID应用程序构成 (23)5.2A NDROID应用系统文件结构 (23)5.3构建A NDROID应用程序用户界面 (25)5.3.1 Android应用程序界面组件.................................................................................................. - 25 -5.3.2 Android应用系统界面组件.................................................................................................. - 26 -5.3.3 Android用户界面的实现...................................................................................................... - 27 -5.4计算模块的实现 (30)武汉工程大学计算机科学与工程学院综合设计报告5.5计算器演示 (33)总结...................................................................................................................................................... - 35 -致谢...................................................................................................................................................... - 36 -参考文献.................................................................................................................................................. - 37 -附录.......................................................................................................................................................... - 38 -摘要目前手机可以说是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开始代替固定电话的通话功能,以及一些原来电脑软件上的功能了。
Android平台上的计算器设计

重庆邮电大学《移动计算》实验报告设计题目:Android平台上的计算器设计学生班级:专业姓名:学生学号:学生成绩:指导教师(职称):目录摘要........................................................................................................................................................ - 1 -ABSTRACT ............................................................................................................................................... - 2 -第一章引言.............................................................................................................................................. - 3 -1.1课题背景及意义 (3)1.1.1课题背景................................................................................................................................ - 3 -1.1.2课题相关的技术知识.............................................................................................................. - 4 -1.2智能手机平台系统 (7)1.3课题来源 (8)第二章系统分析...................................................................................................................................... - 9 -2.1系统可行性分析 (9)2.2系统的开发语言的选择 (9)2.3系统的开发工具简介 (9)2.3.1 JDK .......................................................................................................................................... - 9 -2.3.2 WTK ....................................................................................................................................... - 10 -2.3.3 Eclipse .................................................................................................................................... - 10 -2.3.4 EclipseMe ................................................................................................................................- 11 -第三章基于ANDROID平台计算器相关技术概述............................................................................ - 12 -3.1A NDROID手机平台 (12)3.1.1Android起源及优势 .............................................................................................................. - 12 -3.1.2Android体系结构 .................................................................................................................. - 12 -3.1.3Android平台功能特征 .......................................................................................................... - 14 -3.2A NDROID SDK介绍 (15)3.3XML技术 (16)3.4JNI技术 (16)第四章基于ANDROID平台计算器设计............................................................................................ - 18 -4.1系统的总体设计 (18)4.2程序流程和系统功能设计 (18)4.2.1 程序流程设计....................................................................................................................... - 18 -4.2.2 系统功能设计....................................................................................................................... - 19 -4.3基于A NDROID平台系统具体设计 (20)4.3.1 总体模块详细设计............................................................................................................... - 20 -4.3.2 输入模块详细设计............................................................................................................... - 20 -4.3.3 显示模块详细设计............................................................................................................... - 21 -4.3.4 计算模块详细设计............................................................................................................... - 21 -第五章计算器系统实现........................................................................................................................ - 23 -5.1A NDROID应用程序构成 (23)5.2A NDROID应用系统文件结构 (23)5.3构建A NDROID应用程序用户界面 (25)5.3.1 Android应用程序界面组件.................................................................................................. - 25 -5.3.2 Android应用系统界面组件.................................................................................................. - 26 -5.3.3 Android用户界面的实现...................................................................................................... - 27 -5.4计算模块的实现 (30)5.5计算器演示 (33)总结...................................................................................................................................................... - 35 -致谢...................................................................................................................................................... - 36 -参考文献.................................................................................................................................................. - 37 -附录............................................................................................................................... 错误!未定义书签。
安卓计算器开发实验报告

嵌入式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计算器应用。
基于Android平台的简易计算器设计

O C l i c k L i s t e n e r {
p u b l i c v o i d o n Cl i c k ( Vi e w v ){
3 软 件 测 试 结 果
设 汁 并 编 写 好 的 程 序 叮 以 究 荚 的 在 虚 拟 机 上 运 行 ,并 完 成 基 本 的加 减 乘 除运 算 , 将
结 果 显 示 在 文本 框 内 。 效 果 如 J 刭所 示 。
对来说都有 繁琐 ,放采取此种布局方式 ,关
键代码如下 :
也 自然 也很 庞 大 在 此 基础 上 , 本人设 计 了一款 简 易计 算 器,可
以在 A n d r o i d平 台上 很 好 的运 行 , 能 完 成 基 本 的 加 减 乘 除 以 及 小 数 运 算,可 以 为有 需要 的人 提供 一
定 的 便 利
【 关键 词 】 智 能 手 机 A n d r o i d 计 算 器
( T a b l e L a y o u t ) 、绝 对布局 ( Ab s o l u t e L a y o u t ) 相
在每个组什都存代码 f I 找到之 后,就 需要绑 定 相应的监听器柬 没定按 卜 此按 的相关 动作 ,
绑 定 监 听 器 需 要 Ac t i v i t y类 F声 明 一 个 内部
T = 的 哭键 代 码 如 一 :
p u b l i c c l a s s C a c u l a t o r e x t e n d s A c t i v i t y{
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《安卓开发》程序设计报告题目简单计算器开发专业(班级) 网工111班姓名张波波学号*********(qq)指导教师赵(老师)日期2014.5.7目录一、设计说明: (3)1.设计内容:Android简单应用程序开发,简单计算器。
(3)2程序说明: (3)二、开发环境: (3)三、概要设计: (3)3.1 系统的总体 (3)四、程序流程和系统功能设计 (4)4.1程序流程设计 (4)4.2.系统功能设计 (5)4.3基于Android平台系统具体设计 (6)4.3.1 总体模块详细设计 (6)4.3.2 输入模块详细设计 (6)4.3.3 显示模块详细设计 (7)4.3.4 计算模块详细设计 (7)五、计算器系统实现 (8)5.1 Android应用程序构成 (8)六、截图说明 (9)1、图标 (9)2界面 (10)3运算界面 (11)4错误输入 (11)5设计平台界面 (12)6签名导出apk (12)七、总结 (13)课程设计任务书一、设计说明:1.设计内容:Android简单应用程序开发,简单计算器。
2程序说明:1、计算器界面友好,方便使用。
2、具有基本的加、减、乘、除功能,还有+—、开方、平方功能。
3、能够判断用户输入运算数是否正确。
4、4、支持小数运算。
5、具有退格功能,能够删除最后一个输入,ce。
6、具有清除功能,删除所有,c。
7、具有结果存储功能,能够显示存储器状态,支持触屏手机。
8、支持最低版本2.0,最高版本4.4。
开发时为4.2二、开发环境:开发环境:本系统是采用Eclipse+EclipseMe+JDK+ADT作为开发平台。
事实上为了节约时间就直接用Google公司安给的直接绑定好的adt-bundle-windows-x86_64开发,只需要配置下环境变量,无需要关联等操作。
三、概要设计:3.1 系统的总体整个程序基于android技术开发,出总体模块外主要分为输入模块、显示模块以及计算模块(包括一些其她功能)这三大部分。
在整个系统中总体模块控制系统的生命周期,输入模块部分负责读取用户输入的数据,显示模块部分负责显示用户之前输入的数据以及显示最终的计算结果,计算模块部分负责进行数据的运算以及一些其她的功能。
总体模块的作用主要是生成应用程序的主类,控制应用程序的生命周期。
输入模块主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及响应触屏的按键,需要监听手机按键动作以及用指针事件处理方法处理触屏的单击动作(以松开按键为准)。
同时提供了较为直观的键盘图形用户界面。
显示模块描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算结果,同时还负责显示一些其她的信息。
计算模块则主要描述了计算器的整体,实现了计算器的界面,负责计算用户输入数据,包括加、减、乘、除、等各种计算功能,记忆数据的相关功能,退格以及清零的功能。
四、程序流程和系统功能设计4.1程序流程设计知道了系统的功能以后,我们通过main.xml来建立显示界面,完成后系统开始监听用户的按键输入,每次输入系统都会判断一次用户输入的类型,是数字还是运算符号或者是清除,判断完后分成不同类型如数字,符号,基本运算等等进行进一步的处理,根据用户的要求继续进行下一步的操作,最后计算出最终结果并显示在显示区。
系统流程图如图4-1所示:4.2.系统功能设计整个系统的功能比较多,比较复杂,如上所说,可以分为十多个功能模块,但是逻辑上理解其实不算困难,系统包括普通计算功能,包括加减乘除,退格以及清零功能。
下面就让我们用图4-2来表示:4.3基于Android平台系统具体设计系统除了总体模块以外主要由三大模块来组成,即输入模块,显示模块和计算模块。
用系统框图来表示即如图4-3。
4.3.1 总体模块详细设计总体模块需要完成的任务主要就是系统的程序启动类,需要负责整个系统的生命周期。
同时在还要在模块中完成菜单栏的所有功能,即退出程序,记忆数据,显示数据,清除记忆数据这四个功能。
总体模块的功能图如图4-4:4.3.2 输入模块详细设计系统如果想完成计算器中的各种功能,首先用户要能进行数据输入,由于是在触屏手机上开发计算器程序,所以要求输入可以直接使用触屏进行,所以在设计的时候就要充分的考虑要这一点。
正是由于考虑到这个特殊的地方,所以在进行模块设计中,选择编写输入模块类的时候会特意选取使用了可以支持触屏输入的特殊增强型图形用户界面类。
输入模块主要的任务是描述计算器键盘以及实现键盘的监听,即当用户点击按键或者屏幕的时候监听器会去调用相应的处理办法,本模块还需要为系统提供了一个较为直观的键盘图形用户界面。
输入模块的功能图如图4-5:4.3.3 显示模块详细设计显示模块主要要完成的任务是描述计算器的显示区,该区域用于显示用户输入的数据以及最终的计算结果和一些其她信息。
同时本模块还将提供调用和设置显示的具体方法。
显示模块的功能图如图3-6:4.3.4 计算模块详细设计系统想要能在屏幕上显示出计算器的样子要有整体的布局,在本模块中要完成布局的具体设计,使用户能够看到整个计算器的画面。
同时系统想完成计算功能必须要处理用户的输入,当输入模块的监听传到计算模块中时,计算模块就要根据相应的方法进行进一步的处理。
这部分主要是对输入进行的逻辑判断,基本会通过if else来实现逻辑判断。
计算模块的功能图如图3-7:五、计算器系统实现5.1 Android应用程序构成Android应用程序一般是由Activity、Serviece、Content Provider、Intent、Intent Receiver、Notification六个组件构成。
但并非每一个Android应用程序都包含这六个组件。
(1)Activity(活动):应用程序的表示层。
Activity是Android的基本组件。
(2)(2)Service(服务):Android应用程序的后台运行组件。
(3)Content Provider(内容提供器):用来管理和分享应用程序数据库。
(4)(4)Intent(意向):Activity之间的粘合剂。
使用Intent,可以在系统范围内向目标活动或者服务广播消息,说明希望执行某个动作的意图。
(5)Intent Receiver(意向接收器):通过Intent Receiver实现应用能够对一个外部的事件作出响应,Intent Receiver在AndroidManifest.xml中注册,但也可以在代码中使用Context.registerReceiver()进行注册。
六、截图说明1、图标2界面3运算界面4错误输入5设计平台界面6签名导出apk七、总结课程设计终于在我的努力下做完了。
这个时候我更加深入的了解了Java的特点以及一些相关知识。
与其临渊羡鱼,不如退而结网。
这次Android课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。
如果你连失败都不怕了,那你还怕什么,拾起懒惰的心,勤奋着就会走向成功斩。
这次的课程设计在我未来的时日里,是一个标杆,因为它告诉了我,只要我努力没有什么事我做不好的。
安卓开发是个很有意思的事情,以后可以在自己手机上安装自己开发的一些小程序,也是个非常不错的事情,目前还没有个安卓机子,而在其他同学手机测试过后,还是比较不错的。
注:因为有源文件了,并且程序代码也还是比较长,就不在报告里面放代码了。
package ymq.demo03;import android.app.Activity;import android.os.Bundle;import android.view.*;import android.widget.*;public class demo03 extends Activity {/** Called when the activity is first created. */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.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;}else{g=Double.parseDouble(str);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;}else{g=Double.parseDouble(str);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);}}}});}}。