版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 简易计算机的设计摘要:Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的、应用程序可以轻松的嵌入网络、应用程序可以并行运行。一、实训目的1、了解Android系统,学会Android开发环境的搭建。2、了解Eclipse,学会用Eclipse和Java 开发一个Android程序。3、进一步巩固课堂上所学到的知识,深刻把握Jav
2、a语言的重要概念及其面向对象的特性,能够熟练的应用面向对象的思想和设计方法解决实际问题的能力。4、巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。二、实训任务1、Activity的相关知识简单理解Activity 代表一个用户所能看到的屏幕,Activity 主要是处理一个应用的整体性工作。Activity是最基本的Android 应用程序组件,应用程序中,一个活动通常就是一个单独的屏幕。每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口
3、,并对事件做出响应。大多数的应用是由多个屏幕显示组成,因而要用到多个Activity。(1)Activity的相关方法及相关函数:void onCreate(Bundle)首次启动时调用,接受参数:Null or savedInstanceState(保存的以前某些状态信息);void onStart() 说明了将要显示给用户的活动;void onRestart()将处于停止状态的活动重新显示给用户;void onResume()用户可以开始与活动进行交互时调用。如动画播放和音乐播放;void onPause()活动将要进入后台运行时调用。(此时前台启动了另一个活动);void onStop(
4、)不需要某个活动了,就调用;void onDestroy()销毁活动。(2)多个Activity之间的跳转:通过Intent类实现屏幕之间的跳转(包括没有参数关系和需要传递参数两种情况)。(3)两个Activity之间进行数据交换:startActivity() 只有Intent一个参数;public void startSubActivity(Intent intent, int requestCode) (requestCode:用来标识某一个调用,一般定义一个常量)。传过去:函数原型为: public Intent setData(ContentURI data) 然后,参数带到新的Ac
5、tivity后,同样用Activity.getIntent()函数可得到当前过来的Intent对象,然后用getData()就取到参数了。 传回来:函数原型为: public final void setResult(int resultCode, String data)。2、Intent的相关知识Intent 是描述应用想要做什么。Android 使用了Intent 这个特殊类,实现在屏幕与屏幕之间移动。Intent 数据结构两个最重要的部分是动作和动作对应的数据。Intent类绑定一次操作,它负责携带这次操作所需要的数据以及操作的类型等。3、Layout 用于用户界面设计。包含Absol
6、uteLayout, FrameLayout,GridView, LinearLayout, ListLayout, RadioGroup, TableLayout等等。(1)线性布局LinearLayout:垂直:android:orientation="vertical“;水平:android:orientation="horizontal"(2)相对布局RelativeLayout:让子元素指定它们相对于其他元素的位置(通过ID 来指定)或相对于父布局对象。在RelativeLayout布局里的控件包含丰富的排列属性:Layout above:控件在指定控件
7、的上方;Layout below:控件在指定控件的下方;Layout to left of根据要求,系统实现以下功能:计算器界面友好,具有基本的加、减、乘、除功能,支持触屏手机,整个程序基于android技术开发。三、设计流程1、系统的软件结构图计算器其他运算基本加减乘除运算清除运算正负运算*2运算开方乘法除法减法加法2、功能的操作流程得出程序结果后,输入数据,选择运算符号,再输入数据,选择等号,即可得到结果。3、计算器模块整个项目工程的目录文件Src文件存放的是文本中开发的所有java 文件,java文件时整个项目的代码,gen下面的R.java为Eclipse自动生成的系统文件。Res是存
8、放整个系统所有到的所有资源。Layout文件下main.xml文件的配置生成内容。4、 程序源代码1、 主文件JisuanqiActivity.java Src/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.OnClic
9、kListener;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;pri
10、vate 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
11、 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
12、 count=0;/判断要计算的次数,如果超过一个符号,先算出来一部分private Double result=0.0;/计算的输出结果private Boolean errBoolean=false;/有错误的时候为true,无错为falseprivate Boolean flagBoolean=false;/一个标志,如果为true,可以响应运算消息,如果为false,不响应运算消息,只有前面是数字才可以响应运算消息private Boolean flagDot=false; /小数点标志位 Override public void onCreate(Bundle savedInstan
13、ceState) super.onCreate(savedInstanceState); setContentView(R.layout.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(
14、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
15、)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); b
16、tnkaifang=(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.setOnClickListe
17、ner(listener); btn6.setOnClickListener(listener); btn7.setOnClickListener(listener); btn8.setOnClickListener(listener); btn9.setOnClickListener(listener); /执行运算 btnadd.setOnClickListener(listener); btnsubtract.setOnClickListener(listener); btnmultiply.setOnClickListener(listener); btndivide.setOnCli
18、ckListener(listener); btnclear.setOnClickListener(listener); btnresult.setOnClickListener(listener); btndot.setOnClickListener(listener); btnzhengshu.setOnClickListener(listener); btnkaifang.setOnClickListener(listener); btnpingfang.setOnClickListener(listener); private OnClickListener listener=new
19、OnClickListener() public void onClick(View v) / TODO Auto-generated method stub switch (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
20、(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() ;
21、 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
22、.valueOf(result); private void kaifang() / TODO Auto-generated method stub if(flagBoolean) act='k' strold=str; result(); private void zhengfu() / TODO Auto-generated method stub if(strold="") result=Double.valueOf(str); else result=Double.valueOf(strold); result=result*(-1); strold
23、=String.valueOf(result); output.setText(String.valueOf(result); private void dot() / TODO Auto-generated method stub if(!flagDot) str=str+"." flagBoolean=false; flagDot=true; private void clear() / TODO Auto-generated method stub str=strold="" count=0; act=' ' result=0.0;
24、 flagBoolean=false; flagDot=false; input.setText(strold+act+str); output.setText(""); private void divide() / TODO Auto-generated method stub if(flagBoolean) check(); act='/' flagBoolean=false; private void multiply() / TODO Auto-generated method stub if(flagBoolean) check(); act=&
25、#39;*' flagBoolean=false; private void sub() / TODO Auto-generated method stub if(flagBoolean) check(); act='-' flagBoolean=false; private void add() / TODO Auto-generated method stub if(flagBoolean) check(); act='+' flagBoolean=false; private void check() / TODO Auto-generated m
26、ethod stub if(count>=1) result(); str=String.valueOf(result); strold=str; str="" count+; flagDot=false; /计算输出结果 private void result() / TODO Auto-generated method stub if(flagBoolean) Double a,b; a=Double.parseDouble(strold); b=Double.parseDouble(str); if(b=0&&act='/') c
27、lear(); 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 voi
28、d num(int i) / TODO Auto-generated method stub str=str+String.valueOf(i); flagBoolean=true; ;2、 布局文件main.xml布局文件main.xml的具体代码如下所示:<?xml version="1.0" encoding="utf-8"?><ScrollView xmlns:android=" android:layout_width="fill_parent" android:layout_height=&qu
29、ot;wrap_content"><LinearLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <EditText android:id="+id/input" android:layout_width="fill_parent" android:l
30、ayout_height="wrap_content" android:layout_gravity="center" android:editable="false" android:hint="string/shuru" /> <EditText android:id="+id/output" android:layout_width="fill_parent" android:layout_height="wrap_content" an
31、droid:layout_gravity="center" android:editable="false" android:gravity="right" android:hint="string/shuchu" /> <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <Button android:id="+i
32、d/seven" android:layout_width="80dp" android:layout_height="70dp" android:layout_alignParentLeft="true" android:text="string/seven" android:textSize="40sp" /> <Button android:id="+id/eight" android:layout_width="80dp" a
33、ndroid:layout_height="70dp" android:layout_toRightOf="id/seven" android:text="string/eight" android:textSize="40sp" /> <Button android:id="+id/nine" android:layout_width="80dp" android:layout_height="70dp" android:layout_toR
34、ightOf="id/eight" android:text="string/nine" android:textSize="40sp" /> <Button android:id="+id/add" android:layout_width="80dp" android:layout_height="70dp" android:layout_alignParentRight="true" android:layout_toRightOf=&q
35、uot;id/nine" android:text="string/add" android:textSize="40sp" /> <Button android:id="+id/four" android:layout_width="80dp" android:layout_height="70dp" android:layout_alignParentLeft="true" android:layout_below="id/seven&qu
36、ot; android:text="string/four" android:textSize="40sp" /> <Button android:id="+id/five" android:layout_width="80dp" android:layout_height="70dp" android:layout_below="id/eight" android:layout_toRightOf="id/four" android:text
37、="string/five" android:textSize="40sp" /> <Button android:id="+id/six" android:layout_width="80dp" android:layout_height="70dp" android:layout_below="id/nine" android:layout_toRightOf="id/five" android:text="string/six&
38、quot; android:textSize="40sp" /> <Button android: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&quo
39、t; android:text="string/subtract" android:textSize="40sp" /> <Button android:id="+id/one" android:layout_width="80dp" android:layout_height="70dp" android:layout_alignParentLeft="true" android:layout_below="id/four" android:
40、text="string/one" android:textSize="40sp" /> <Button android:id="+id/two" android:layout_width="80dp" android:layout_height="70dp" android:layout_below="id/five" android:layout_toRightOf="id/one" android:text="string/tw
41、o" android:textSize="40sp" /> <Button android: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:t
42、extSize="40sp" /> <Button android: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" andro
43、id:text="string/multiply" android:textSize="40sp" /> <Button android:id="+id/zero" android:layout_width="80dp" android:layout_height="70dp" android:layout_alignParentLeft="true" android:layout_below="id/one" android:text=&qu
44、ot;string/zero" android:textSize="40sp" /> <Button android: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&q
45、uot; android:textSize="40sp" /> <Button android: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" androi
46、d:textSize="40sp" /> <Button android: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" and
47、roid:text="string/divide" android:textSize="40sp" /> <Button android:id="+id/dot" android:layout_width="80dp" android:layout_height="70dp" android:layout_alignParentLeft="true" android:layout_below="id/zero" android:text=&qu
48、ot;string/dot" android:textSize="40sp" /> <Button android:id="+id/zhengfu" android:layout_width="80dp" android:layout_height="70dp" android:layout_below="id/clear" android:layout_toRightOf="id/dot" android:text="string/zheng
49、fu" android:textSize="40sp" /> <Button android: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&quo
50、t; android:textSize="40sp" /> <Button android: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
51、" 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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业团队协作与管理制度
- 福建省福州永泰第一中学2024届高三年级第一次校模拟考试数学试题
- 2024年杭州客运资格证专业能力考试题
- 2024年西宁考客运资格证需要什么资料
- 2024年红河小型客运从业资格证2024年考试题
- 2024年海南客运资格证需要什么条件
- 2024年河南考客运资格证实操考的是什么内容
- 2024年黄山货运从业资格证考试题
- 2024年南通办理客运从业资格证版试题
- 治安保安员试题库+参考答案
- 接交车辆检查表-原版
- 剪辑师职业生涯规划与管理
- 水稻栽培技术-水稻常规栽培技术
- 四风整改台账清单
- 标准报价单模板(二)
- 【期中】第1-4单元易错题专项攻略-数学四年级上册苏教版(含答案)
- 《mc入门教程》课件
- 物理化学实验B智慧树知到课后章节答案2023年下北京科技大学
- 福建省厦门市第一中学2023-2024学年七年级上学期期中数学试卷
- 医院病房超市经营管理服务方案
- 社会秩序的维护主要靠法律还是靠道德辩论赛
评论
0/150
提交评论