android简单计算器课程设计_第1页
android简单计算器课程设计_第2页
android简单计算器课程设计_第3页
android简单计算器课程设计_第4页
android简单计算器课程设计_第5页
免费预览已结束,剩余44页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

android简单计算器课程设计.android简单计算器课程设计.android简单计算器课程设计.沈阳理工大学课程设计专用纸纲领Android是现在最重要的开发平台之一,它是建立在Java基础之上的,能够快速建立软件的解决方案。Android的功能十分兴盛,成为现在软件行业的一股新兴力量。Android鉴于Linux平台,由操作系统、中间件、用户界面和应用软件构成,拥有以下5个特色:开放性、应用程序无界线、应用程序是在相同条件下创办的,应用程序能够轻松的嵌入网络、应用程序能够并行运转。而简单计算器又是上必备的小程序,所以此次创新实践很存心义。并且拥有很强的使用性。重点字:AndroidJava基础计算器沈阳理工大学课程设计专用纸目录第1章开发工具与环境......................................................................................................11.1Android平台...........................................................................................................11.2Java开发环境.........................................................................................................11.3Eclipse.....................................................................................................................11.4Android程序基础—Android应用程序的构成.....................................................2第2章系统分析与设计......................................................................................................4系统的可行性分析.................................................................................................4系统的需求分析....................................................................................................4系统的优势............................................................................................................4系统的流程图........................................................................................................5第3章系统详尽设计..........................................................................................................6动作Activity........................................................................................................6布局文件XML....................................................................................................6Activity的详尽设计............................................................................................7布局文件XML的详尽设计.............................................................................21系统的运转结果................................................................................................24结论......................................................................................................................................25参照文件..............................................................................................................................26沈阳理工大学课程设计专用纸No1第1章开发工具与环境1.1Android平台1.谷歌与开放结盟合作开发了Android,这个结盟由包含中国挪动、摩托罗拉、高通、宏达和T-Mobile在内的30多家技术和无线应用的领军公司构成。是一个真实意义上的开放性挪动设施综合平台。经过与营运商、设施制造商、开发商和其余有关各方结成深层次的合作伙伴关系,来建立标准化、开放式的挪动软件平台,在挪动家产内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上获得保持。3.全部的Android应用之间是完满相同的。4.全部的应用都运转在一个核心的引擎上边,这个核心引擎其实就是一个虚假机,它提供了一系列用于应用和硬件资源间进行通信的API。撇开这个核心引擎,Android的全部其他的东西都是“应用〞。打破了应用之间的界线,比方开发人员能够把Web上的数据与当地的联系人,日历,地点信息联合起来,为用户创办崭新的用户体验。1.2Java开发环境Java技术包含了一个编程语言及一个平台。Java编程语言拥有好多特色,如面向对象、跨平台、散布式、多线程、解说性等等。Java编程语言发源于Sun公司的一个叫“Green〞的工程,目的是开发嵌入式家用电器的散布式系统,使电气更为智能化。1996年1月宣告了JDK1.1版本,一门新语言自此走向世界。今后,1998年12月宣告了版本,2002年2月宣告版本,2004年10月宣告版本〔〕,2006年12月宣告〔〕版本,这是当前的最新版本。版本是一个重要的版本,鉴于该版本,Sun将Java技术分为J2SE、J2ME、J2EE,此中J2SE为创办和运转Java程序供给了最根本的环境,J2ME与J2EE建立在J2SE的基础上,J2ME为嵌入式应用〔如运转在里的Java程序〕供给开发与运行环境,J2EE为散布式的公司应用供给开发与运转环境。1.3Eclipse沈阳理工大学沈阳理工大学课程设计专用纸No2Eclipse的基础是富客户机平台〔RichClientPlatform,即RCP〕。RCP包含以下组件:核心平台〔Eclipse,运转插件〕标准集束框架〔OSGi:OpenServiceGatewayinitiative〕可移植构件工具包〔SWT:Eclipse'sStandardWidgetToolki〕tJFace〔文件缓冲,文本办理,文本编写器〕Eclipse采纳的技术是IBM公司开发的SWT,这是一种鉴于Java的窗口组件,近似Java自己供给的AWT和Swing窗口组件:可是IBM宣称SWT比其余Java窗口组件更有效率。Eclipse的用户界面还使用了GUI中间层JFace,进而简化了鉴于SWT的应用程序的建立。Eclipse的设计思想是:全部皆插件。Eclipse核心很小,其余全部功能都以插件的形式附带于Eclipse核心之上。Eclipse鉴于内核包含:图形API〔SWT/JFace〕,Java开发环境插件(JDT),插件开发环境〔PDE〕等。Eclipse的插件系统是轻型软件组件化架构。在富客户机平台上,Eclipse使用插件来供给全部的附带功能,比方支持Java之外的其余语言。已有的分其余插件已经能够支持C/C++(CDT)、Perl、Ruby、Python、telnet和数据库开发。插件架构能够支持将随意的扩展参加到现有环境中,比方配置管理,而决不可是限于支持各样编程语言。1.4Android程序基础—Android应用程序的构成沈阳理工大学沈阳理工大学课程设计专用纸No3顾名思义,Activity就是活动。应用程序必然最少包含一个Activity。Activity供给了一个虚假的用户接口,每一个Activity都有一个默认的窗口能够用来显示用户界面,一般状况下,它是全屏的窗口。比方,影音播放软件的每个用户界面就是Activity。Service与Activity的主要差别在于,Service是在后台活动的,它没合用户界面。典型的应用途景是,用户选择了一个播放列表开始播放后,走开了该用户界面(Activity),假如仍旧希望歌曲不会暂停,就能够用Service去调用播放器,而不是在Activity中调用播放器。在Android中,每一个行为都能够抽象为一个Intent。能够简单地把Intent理解为一个包含了数据的信息。Intent能够用于启动一个Act-ivity或许Service,能够用于进度间的通信。事实上,应用程序的启动也是经过Intent实现的。4.ContentprovidersAndroid平台内置了一套SQLite数据积蓄系统,并包含一系列管理SQLiteDatabase的有关方法。在应用程序中,能够经过Contentprov-iders接见数据库。每个Contentprovider都定义了一系列的方法用于接见它对应的数据库。应用程序在新建数据库时也能够定义相应的Con-tentprovider用于向其余应用程序共享数据。一般状况下,应用程序不直接调用Contentprovider定义的函数,而是经过ContentResolver间接调用。沈阳理工大学沈阳理工大学课程设计专用纸No4第2章系统分析与设计系统的可行性分析可行性研究是为了弄清楚系统开发的工程能否是能够实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可履行性的分析是特别必需的,也是很重要的,经过最先的设计目标和进行的及时检查得出以下四点的可行性分析:〔1〕技术可行性:Eclipse+AndroidADT的技术已经较为成熟,经过SUN公司〔现被ORCEL公司收买〕推出的跨平台、动向的JAVA语言进行开发。〔2〕运转可行性:该系统需要Android虚假机环境,Eclipse中安装ADT,DDMS等GoogleAndroid有关插件。其运转环境已经相当坚固,它功能丰富,包含了齐备的Android程序的编码、调试、测试和宣告功能,此中支持全部Android应用开发有关技术,包含SQLite,Skia,3D制作,AndroidXML,能够很好的宣告Android的应用程序APK包。〔3〕法律可行性:因为是自主开发设计,所以不会构成侵权,在法律上是可行的。经过以上的可行性分析,将采纳Eclipse+AndroidADT+DDMS技术,运用JAVA语言进行系统的开发。系统的需求分析依据分析需求,这个系统必然实现以下的功能:(1)实现简单的数字计算功能。作为计算器,其核心就是加减乘除。(2)能够在里面以优秀的界面。简单计算器能够赏赐用户优秀的人机互动界面。系统的优势Android是以Linux为核心的操作平台,作为一款开放式的操作系统,跟着Android的快速张开,现在已赞成开发者使用多种编程语言来开发Android应用程序,而不再是从前只好使用Java开发Android应用程序的单调场面,所以遇到众多开发者的欢沈阳理工大学沈阳理工大学课程设计专用纸No5迎,成为真实意义上的开放式操作系统。本次课程设计一个简单的计算器。主要认识Activity的创办和Intent的使用。Intent不只好够连结两个Activity。并且能够传达数据。下边是整个程序的设计流程。系统的流程图本程序的流程是一个开机画面,开机画面今后就是计算机的主页面了全部这个简单程序的流程图如下图。第一个Activity第二个Activity加法减法除法乘法图程序流程图沈阳理工大学沈阳理工大学课程设计专用纸No6第3章系统详尽设计动作Activity参照程序的流程图,设计五个Activity。分别为进入页面的Activity,和选择运算方式的Activity。在这里应当注意的是每当创办一个新的class,就要继承Activity如下图。图程序所需的Activity布局文件XML相应的,需要在res/layout文件夹中建立3个XML文件来对上述的十个Activity进行布局,如下图。图3.23个XML布局文件整体上所需要的Activity和XML布局文件已经建立完成,下边开始对进入计算器的Activity进行编写,沈阳理工大学沈阳理工大学课程设计专用纸No7Activity的详尽设计动作模块中Calculator的详尽代码以下:packagecom.calculator.apk;importandroid.app.Activity;importandroid.content.Intent;importandroid.os.Bundle;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;.EditText;importandroid.widget.TextView;publicclassCalculatorActivityextendsActivity{/*对layout中各组件进行定义*/Buttonbtn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btn0,btnPoint;ButtonbtnJia,btnJian,btnCheng,btnChu;ButtonbtnC,btnE,btnA,btnB;ButtonbtnJieGuo;TextViewtextView01;EditTextet;//定义一个float种类,用于数字的运算floatnum1;//定义一个float种类,用于数字的运算floatnum2;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){沈阳理工大学沈阳理工大学课程设计专用纸No8super.onCreate(savedInstanceState);setContentView(R.layout.calculator);//定义一个方法,完成对个组件的初始化init();//设置btn1的监听事件btn1.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//获得EditText中的值Stringnum1=et.getText().toString();//将num1后边连结1,此后再将值赋给EditTextetText(num1+1);}});//设置btn2的监听事件btn2.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//获得EditText中的值Stringnum1=et.getText().toString();//将num1后边连结2,此后再将值赋给EditTextet.setText(num1+2);}});//设置btn3的监听事件btn3.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//获得EditText中的值Stringnum1=et.getText().toString();沈阳理工大学沈阳理工大学课程设计专用纸No9//将num1后边连结3,此后再将值赋给EditTextet.setText(num1+3);}});//设置btn4的监听事件lickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//获得EditText中的值Stringnum1=et.getText().toString();//将num1后边连结4,此后再将值赋给EditTextet.setText(num1+4);}});//设置btn5的监听事件btn5.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//获得EditText中的值Stringnum1=et.getText().toString();//将num1后边连结5,此后再将值赋给EditTextet.setText(num1+5);}});//设置btn6的监听事件btn6.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//获得EditText中的值沈阳理工大学沈阳理工大学课程设计专用纸No10Stringnum1=et.getText().toString();//将num1后边连结6,此后再将值赋给EditTextet.setText(num1+6);}});//设置btn7的监听事件btn7.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//获得EditText中的值Stringnum1=et.getText().toString();//将num1后边连结7,此后再将值赋给EditTextet.setText(num1+7);}});//设置btn8的监听事件btn8.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//获得EditText中的值Stringnum1=et.getText().toString();//将num1后边连结8,此后再将值赋给EditTextet.setText(num1+8);}});沈阳理工大学沈阳理工大学课程设计专用纸No11//设置btn9的监听事件btn9.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//获得EditText中的值Stringnum1=et.getText().toString();//将num1后边连结9,此后再将值赋给EditTextet.setText(num1+9);}});//设置btn0的监听事件btn0.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//获得EditText中的值Stringnum1=et.getText().toString();//判断,假如0为初次输入,并且0为首位数字,那么将以下按钮设为不可以用if(num1.length()<=0){btn1.setEnabled(false);btn2.setEnabled(false);btn3.setEnabled(false);btn4.setEnabled(false);btn5.setEnabled(false);btn6.setEnabled(false);btn7.setEnabled(false);btn8.setEnabled(false);btn9.setEnabled(false);btn0.setEnabled(false);btnJieGuo.setEnabled(false);btnJia.setEnabled(false);沈阳理工大学沈阳理工大学课程设计专用纸No12btnJian.setEnabled(false);btnCheng.setEnabled(false);btnChu.setEnabled(false);et.setText("0");}else{//假如0不为第一个数字,那么将num1后边连结0,此后再将值赋给EditTextet.setText(num1+0);}}});//设置btnPoint的监听事件btnPoint.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//不论以下按钮可不可以用,都将设为可用btn1.setEnabled(true);btn2.setEnabled(true);btn3.setEnabled(true);btn4.setEnabled(true);btn5.setEnabled(true);btn6.setEnabled(true);btn7.setEnabled(true);btn8.setEnabled(true);btn9.setEnabled(true);btn0.setEnabled(true);btnJieGuo.setEnabled(true);btnJia.setEnabled(true);btnJian.setEnabled(true);btnCheng.setEnabled(true);沈阳理工大学沈阳理工大学课程设计专用纸No13btnChu.setEnabled(true);//获得EditText中的值Stringnum1=et.getText().toString();//此处方法是判断小数点能否存在if(num1.indexOf(".")<0){//检索“.〞的index值,假如不存在,返回的是-1//此处判断小数点能否在字符串的开头if(num1.length()>0){//假如不是在字符串的开头,那么将num1后边连结“.〞,此后再将值赋给EditTextet.setText(num1+".");}else{//假如小数点在字符串的开头,那么将EditText的值设为空et.setText("");}}else{//假如小数点在前面的数字中已经出现,那么EditText的值不变et.setText(num1);}}});//设置btnC的监听事件btnC.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){btn1.setEnabled(true);btn2.setEnabled(true);btn3.setEnabled(true);btn4.setEnabled(true);btn5.setEnabled(true);btn6.setEnabled(true);btn7.setEnabled(true);沈阳理工大学沈阳理工大学课程设计专用纸No14btn8.setEnabled(true);btn9.setEnabled(true);btn0.setEnabled(true);bled(true);btnJia.setEnabled(true);btnJian.setEnabled(true);btnCheng.setEnabled(true);btnChu.setEnabled(true);//清空EditTextet.setText("");//清空TextViewtextView01.setText("");//num1和num2的值归零num1=0;num2=0;}});//设置btnE的监听事件stener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//设置一个显式企图,用于CalculatorActivity和AboutActivity之间的跳转Intentintent=newIntent(CalculatorActivity.this,MainActivity.class);startActivity(intent);}});//设置btnJia的监听事件ClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){沈阳理工大学沈阳理工大学课程设计专用纸No15//获得EditText的值Stringnum=et.getText().toString().trim();//判断,假如EditText为空,那么将EditText设置为空,假如不为空,那么将EditText的值转变为float种类if(num.length()==0){et.setText("");}else{num1=Float.parseFloat(num);}//将符号"+"赋给TextViewtextView01.setText("+");//清空EidtTextet.setText("");}});//设置btnJian的监听事件btnJian.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//获得EditText的值Stringnum=et.getText().toString().trim();//判断,假如EditText为空,那么将EditText设置为空,假如不为空,那么将EditText的值转变为float种类if(num.length()==0){et.setText("");}else{num1=Float.parseFloat(num);}//将符号"-"赋给TextViewtextView01.setText("-");沈阳理工大学沈阳理工大学课程设计专用纸No16//清空EidtTextet.setText("");}});//设置btnCheng的监听事件btnCheng.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//获得EditText的值Stringnum=et.getText().toString().trim();//判断,假如EditText为空,那么将EditText设置为空,假如不为空,那么将EditText的值转变为float种类if(num.length()==0){et.setText("");}else{num1=Float.parseFloat(num);}//将符号"*"赋给TextViewtextView01.setText("*");//清空EidtTextet.setText("");}});//设置btnChu的监听事件btnChu.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//获得EditText的值Stringnum=et.getText().toString().trim();沈阳理工大学沈阳理工大学课程设计专用纸No17//判断,假如EditText为空,那么将EditText设置为空,假如不为空,那么将EditText的值转变为float种类if(num.length()==0){et.setText("");}else{num1=Float.parseFloat(num);}//将符号"/"赋给TextViewtextView01.setText("/");//清空EidtTextet.setText("");}});//设置btnJieGuo的监听事件btnJieGuo.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//获得EditText的值Stringnum22=et.getText().toString().trim();//判断,假如EditText的值为空,那么将EditText的值设为空,假如不为空,那么将EditText的值转变为float种类if(num22.length()<=0){et.setText("");}else{num2=Float.parseFloat(num22);}//获得TextView的值Stringfuhao=textView01.getText().toString().trim();//假如TextView的符号为“+〞,将num1和num2相加,并把值赋给EditTextif("+"==fuhao){沈阳理工大学沈阳理工大学课程设计专用纸No18floatnumjiguo1=num1+num2;et.setText(""+numjiguo1);}else//假如TextView的符号为“-〞,将num1和num2相减,并把值赋给EditTextif("-"==fuhao){floatnumjiguo1=num1-num2;et.setText(""+numjiguo1);}else//假如TextView的符号为“*〞,将num1和num2相乘,并把值赋给EditTextif("*"==fuhao){floatnumjiguo1=num1*num2;et.setText(""+numjiguo1);}else//假如TextView的符号为“/〞,将num1和num2相除,并把值赋给EditTextif("/"==fuhao){floatnumjiguo1=num1/num2;et.setText(""+numjiguo1);}}});//设置btnB的监听事件,此处为这只退格键btnB.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//不论以下按钮能否为可用,都将设置为可用btn1.setEnabled(true);btn2.setEnabled(true);bled(true);btn4.setEnabled(true);btn5.setEnabled(true);沈阳理工大学沈阳理工大学课程设计专用纸No19btn6.setEnabled(true);btn7.setEnabled(true);btn8.setEnabled(true);btn9.setEnabled(true);btn0.setEnabled(true);btnJieGuo.setEnabled(true);btnJia.setEnabled(true);btnJian.setEnabled(true);btnCheng.setEnabled(true);btnChu.setEnabled(true);//获得EditText的值Stringnum=et.getText().toString().trim();//获得EditText的长度intlength=et.length();//判断,假如EditText的长度大于0,那么获得length-1的字符串赋给EditText,否那么设置EditText为空if(length>0){StringnumRe=num.substring(0,length-1);et.setText(numRe);}else{et.setText("");}}});//设置btnA的监听事件btnA.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//设置一个显式企图,用于CalculatorActivity和AboutActivity之间的跳转沈阳理工大学沈阳理工大学课程设计专用纸No20Intentintent=newIntent(CalculatorActivity.this,AboutActivity.class);startActivity(intent);}});}/*定义一个方法,完成对个组件的初始化*/voidinit(){btn1=(Button)findViewById(R.id.btn1);2);btn3=(Button)findViewById(R.id.btn3);btn4=(Button)findViewById(R.id.btn4);btn5=(Button)findViewById(R.id.btn5);btn6=(Button)findViewById(R.id.btn6);btn7=(Button)findViewById(R.id.btn7);btn8=(Button)findViewById(R.id.btn8);btn9=(Button)findViewById(R.id.btn9);btn0=(Button)findViewById(R.id.btn0);btnPoint=(Button)findViewById(R.id.btnPiont);btnJia=(Button)findViewById(R.id.btnJia);btnJian=(Button)findViewById(R.id.btnJian);btnCheng=(Button)findViewById(R.id.btnCheng);btnChu=(Button)findViewById(R.id.btnChu);btnC=(Button)findViewById(R.id.btnC);btnE=(Button)findViewById(R.id.btnE);btnA=(Button)findViewById(R.id.btnA);btnB=(Button)findViewById(R.id.btnB);btnJieGuo=(Button)findViewById(R.id.btnJieguo);沈阳理工大学沈阳理工大学课程设计专用纸No21et=(EditText)findViewById(R.id.ed);textView01=(TextView)findViewById(R.id.textView01);}}布局文件XML的详尽设计布局文件编写布局代码以下:<?xmlversion="1.0"encoding="utf-8"?>m/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="@drawable/bg_android01"android:gravity="center"><Buttonandroid:layout_width="80px"android:layout_height="80px"android:layout_marginBottom="35px"android:id="@+id/btnshow"android:text="开始计算"></Button></LinearLayout>三个Activity创办完成后,我们需要实现以下动作:在用户打开软件今后,点击“开始计算〞,此后跳转到选择运算法那么的界面,当用户输入数字点击加减乘除后运算获得结果。所以可知,在整个动作中,需要使用侦听代码来鉴识用户的操作,此后使用Intent来实现Activity的切换。比方开始界面跳转到主界面:第一在“开始计算〞按钮上设置侦听代码以下:button1.setOnClickListener(newbutton1Listener());沈阳理工大学沈阳理工大学课程设计专用纸No22此后开始侦听,当用户点击“开始计算〞时,启动Intent来将本界面切换到主界面,在这里需要JAVA中侦听的方法和Intent方法,代码以下classbutton1ListenerimplementsOnClickListener{@OverridepublicvoidonClick(Viewv){//TODOAuto-generatedmethodstub//生成一个Intent对象Intentintent=newIntent();intent

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论