android开发计算器设计开发报告_第1页
android开发计算器设计开发报告_第2页
android开发计算器设计开发报告_第3页
android开发计算器设计开发报告_第4页
android开发计算器设计开发报告_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、Xx大学计算机与电子信息学院移动编程技术安卓程序开发设计报告-简单计算器安卓开发程序设计报告题目简单计算器开发专业(班级)网工111班姓名张波波学号*(*q*q)*指导教师赵(老师)日期2014.5.7目录TOC o 1-5 h z HYPERLINK l bookmark6一、设计说明:3设计内容:Android简单应用程序开发,简单计算器。3 HYPERLINK l bookmark82程序说明:3二、开发环境:3 HYPERLINK l bookmark10三、概要设计:3 HYPERLINK l bookmark123.1系统的总体3 HYPERLINK l bookmark14四、程

2、序流程和系统功能设计44.1程序流程设计4 HYPERLINK l bookmark164.2.系统功能设计54.3基于Android平台系统具体设计6 HYPERLINK l bookmark224.3.1总体模块详细设计6 HYPERLINK l bookmark264.3.2输入模块详细设计6 HYPERLINK l bookmark304.3.3显示模块详细设计7 HYPERLINK l bookmark344.3.4计算模块详细设计7 HYPERLINK l bookmark36五、计算器系统实现85.1Android应用程序构成8 HYPERLINK l bookmark38六、截

3、图说明9 HYPERLINK l bookmark401、图标92界面10 HYPERLINK l bookmark423运算界面11 HYPERLINK l bookmark444错误输入11 HYPERLINK l bookmark465设计平台界面12 HYPERLINK l bookmark486签名导出apk12 HYPERLINK l bookmark50七、总结13课程设计任务书、设计说明:1设计内容:Android简单应用程序开发,简单计算器。2程序说明:1、计算器界面友好,方便使用。2、具有基本的加、减、乘、除功能,还有+、开方、平方功能3、能够判断用户输入运算数是否正确。4

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技术开发,出总体模块外主要分为输入模块、显示模块以及计算模块(包括一些其她功能)这三大部分。在整

5、个系统中总体模块控制系统的生命周期,输入模块部分负责读取用户输入的数据,显示模块部分负责显示用户之前输入的数据以及显示最终的计算结果,计算模块部分负责进行数据的运算以及一些其她的功能。总体模块的作用主要是生成应用程序的主类,控制应用程序的生命周期。输入模块主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及响应触屏的按键,需要监听手机按键动作以及用指针事件处理方法处理触屏的单击动作(以松开按键为准)。同时提供了较为直观的键盘图形用户界面。显示模块描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算结果,同时还负责显示一些其她的信息。计算模块则主要描述了计算器的整体,

6、实现了计算器的界面,负责计算用户输入数据,包括加、减、乘、除、等各种计算功能,记忆数据的相关功能,退格以及清零的功能。四、程序流程和系统功能设计4.1程序流程设计知道了系统的功能以后,我们通过main.xml来建立显示界面,完成后系统开始监听用户的按键输入,每次输入系统都会判断一次用户输入的类型,是数字还是运算符号或者是清除,判断完后分成不同类型如数字,符号,基本运算等等进行进一步的处理,根据用户的要求继续进行下一步的操作,最后计算出最终结果并显示在显示区。系统流程图如图4-1所示:4.2.系统功能设计整个系统的功能比较多,比较复杂,如上所说,可以分为十多个功能模块,但是逻辑上理解其实不算困难

7、,系统包括普通计算功能,包括加减乘除,退格以及清零功能。下面就让我们用图4-2来表示:图4-2系统的功能图4.3基于Android平台系统具体设计系统除了总体模块以外主要由三大模块来组成,即输入模块,显示模块和计算模块。用系统框图来表示即如图4-3。图4-3糸统框图4.3.1总体模块详细设计总体模块需要完成的任务主要就是系统的程序启动类,需要负责整个系统的生命周期。同时在还要在模块中完成菜单栏的所有功能,即退出程序,记忆数据,显示数据,清除记忆数据这四个功能。总体模块的功能图如图4-4:图4-4总休模块功能图4.3.2输入模块详细设计系统如果想完成计算器中的各种功能,首先用户要能进行数据输入,

8、由于是在触屏手机上开发计算器程序,所以要求输入可以直接使用触屏进行,所以在设计的时候就要充分的考虑要这一点。正是由于考虑到这个特殊的地方,所以在进行模块设计中,选择编写输入模块类的时候会特意选取使用了可以支持触屏输入的特殊增强型图形用户界面类。输入模块主要的任务是描述计算器键盘以及实现键盘的监听,即当用户点击按键或者屏幕的时候监听器会去调用相应的处理办法,本模块还需要为系统提供了一个较为直观的键盘图形用户界面。输入模块的功能图如图4-5:图5输人模块功能图4.3.3显示模块详细设计显示模块主要要完成的任务是描述计算器的显示区,该区域用于显示用户输入的数据以及最终的计算结果和一些其她信息。同时本

9、模块还将提供调用和设置显示的具体方法。显示模块的功能图如图3-6:图4弋显示模块功能图4.3.4计算模块详细设计系统想要能在屏幕上显示出计算器的样子要有整体的布局,在本模块中要完成布局的具体设计,使用户能够看到整个计算器的画面。同时系统想完成计算功能必须要处理用户的输入,当输入模块的监听传到计算模块中时,计算模块就要根据相应的方法进行进一步的处理。这部分主要是对输入进行的逻辑判断,基本会通过ifelse来实现逻辑判断。计算模块的功能图如图3-7:图4讦计算模块功能图五、计算器系统实现5.1Android应用程序构成Android应用程序一般是由Activity、Serviece、Content

10、Provider、Intent、IntentReceiver、Notification六个组件构成。但并非每一个Android应用程序都包含这六个组件。(1)Activity(活动):应用程序的表示层。Activity是Android的基本组件。(2)(2)Service(服务):Android应用程序的后台运行组件。(3)ContentProvider(内容提供器):用来管理和分享应用程序数据库。(4)(4)Intent(意向):Activity之间的粘合剂。使用Intent,可以在系统范围内向目标活动或者服务广播消息,说明希望执行某个动作的意图。(5)IntentReceiver(意向接收

11、器):通过IntentReceiver实现应用能够对一个外部的事件作出响应,IntentReceiver在AndroidManifest.xml中注册,但也可以在代码中使用Context.registerReceiver()进行注册。左吴caIcuIato-rwSO,Android4.2ZOi亟:sndroid.jsr-F:adt-bundIewindows-xBS_丄匚吳S-FCFRymq.demoOSademoOS.javagen:Ge-nerate-davaFilesFp-ymq.demoOSassetsbinresl25=*drawsib-le-hdpidrawab-le-ldpi17

12、=-dirawab-le-mdpi(75drawab-le-xhdpi|slayoutcijmain.xml7valuescistrings:keIAndroidManif&sii:xml=proguardcfg匡|projectproperrtie-s六、截图说明1、图标相机聲強浹的计韩hellazzb(b112界面PADneteni*hltdinAVDBasicControls3运算界面6+/x6:36254删回BasicConKnls旅志逋的忡算箱MaidwarB-nttoirtg:DPADhs-1inWO23加456减789乘0除HaidwarKtyboirdUseyuuirphysi

13、calkeyboardtn*provideinput4错误输入Hrdwar#K督帥曲rdUseyourphysicalkeyboardtc*pnrvideinputHardwareBuLtflhs5设计平台界面tn.4CinClL-2XV,|Ai-draldFtTniiiaC4plgF4T富/泪De5kdock:-1屯ghg:.晨hdlozib|q-?phcmimhvrThliVardrcid-dsi*Gubr-skulSK*虱Android2.2p邑findirddjbr-FPpadL-bunde-ivhdfiws-M#k?sic/审YrqjdamDOJ占rwaHe-Hpi由ZHdbkphd

14、pi丿&hyDvtd;mdn.imld0rjlunvlrrtgi-iml.iiAndreirManiTpstml_progiwrg0?&udv-zzbcaktldtoi/sfc/ymq/dleffiQOS/derrioOS.jawa-ADTFileEdkRelanxsrSource5earhPrqjsaHunWindONHelp=r:QuickZcti士SHnqemci)?_J.SuidCtrnaiffWHlabkSrna*tlHsrtMH型U1NtifJ9CM0nd迫1ExportAndroidlApplicationi|U5P-wagingkrpiJdaisndrodJoeystorePa

15、stm)rd*-*OCrsdsnwhjy6签名导出apk时xwtAndroidApplicationD8$t0出Cancelf4和I文件主页共言音三T.笆舍輾卜菠虹1機哥下裁匚崑面社i星世访问的注*4品鞠:呼逹台电眶七、总结课程设计终于在我的努力下做完了。这个时候我更加深入的了解了Java的特点以及一些相关知识。与其临渊羡鱼,不如退而结网。这次Android课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。如果你连失败都不怕了,那你还怕什么,拾起懒惰的心,勤奋着就会走向成功斩。这次的课程设计在我未来的时日里,是一个标杆,因为它告诉了我,只要我努力没有

16、什么事我做不好的。安卓开发是个很有意思的事情,以后可以在自己手机上安装自己开发的一些小程序,也是个非常不错的事情,目前还没有个安卓机子,而在其他同学手机测试过后,还是比较不错的。注:因为有源文件了,并且程序代码也还是比较长,就不在报告里面放代码了。packageymq.demo03;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.*;importandroid.widget.*;publicclassdemo03extendsActivity/*Calledwhentheactivityisfirstc

17、reated.*/Stringstr=;EditTextet;intc=0,flag=0;doubleb=0.0,g=0.0,f=0.0;Viewvi;publicbooleanonCreateOptionsMenu(Menumenu)/TODOAuto-generatedmethodstubmenu.add(0,1,1,退出);returnsuper.onCreateOptionsMenu(menu);OverridepublicbooleanonOptionsItemSelected(MenuItemitem)/TODOAuto-generatedmethodstubif(item.get

18、ItemId()=1)finish();returnsuper.onOptionsItemSelected(item);/计算方法publicdoublecalculater()switch(c)case0:f=g;break;case1:f=b+g;break;case2:f=b-g;break;case3:f=b*g;break;case4:f=b/g;break;b=f;c=0;returnf;OverridepublicvoidonCreate(BundlesavedInstanceState)super.onCreate(savedInstanceState);setContentV

19、iew(R.layout.main);/获得按键finalButtonnumber=newButton10;finalButtonfuhao=newButton11;fuhao0=(Button)findViewById(R.id.button01);fuhao1=(Button)findViewById(R.id.button02);fuhao2=(Button)findViewById(R.id.button03);fuhao3=(Button)findViewById(R.id.button04);fuhao4=(Button)findViewById(R.id.button05);fu

20、hao5=(Button)findViewById(R.id.button06);fuhao6=(Button)findViewById(R.id.buttonce);fuhao7=(Button)findViewById(R.id.buttonc);fuhao8=(Button)findViewById(R.id.zheng);fuhao9=(Button)findViewById(R.id.kaifang);fuhao10=(Button)findViewById(R.id.pingfang);number0=(Button)findViewById(R.id.button0);numbe

21、r1=(Button)findViewById(R.id.button1);number2=(Button)findViewById(R.id.button2);number3=(Button)findViewById(R.id.button3);number4=(Button)findViewById(R.id.button4);number5=(Button)findViewById(R.id.button5);number6=(Button)findViewById(R.id.button6);number7=(Button)findViewById(R.id.button7);numb

22、er8=(Button)findViewById(R.id.button8);number9=(Button)findViewById(R.id.button9);et=(EditText)findViewById(R.id.textView1);et.setText(str);fuhao6.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstub.str=;et.setText(str);vi=v;);fuhao7.setOnClickListener(n

23、ewView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubb=0.0;c=0;g=0.0;.str=;et.setText(str););fuhao8.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(vi!=fuhao5&str!=)charch=str.charAt(0);if(ch=-)str=str.replace(-,);elsestr=-+

24、str;et.setText(str););fuhao9.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(str!=)doublea=Double.parseDouble(str);str=Math.sqrt(a)+;et.setText(str););fuhao10.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedme

25、thodstubif(str!=)doublea=Double.parseDouble(str);str=+a*a;et.setText(str););/设定数字按键number0.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(flag=1).str=;str+=0;et.setText(str);flag=0;elsecharch1;ch1=str.toCharArray();if(!(ch1.length=1&ch10=0)str+=0;

26、et.setText(str);vi=v;);number1.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(flag=1).str=;str+=1;et.setText(str);flag=0;elsestr+=1;et.setText(str);vi=v;);number2.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-genera

27、tedmethodstubif(flag=1).str=;str+=2;et.setText(str);flag=0;elsestr+=2;et.setText(str);vi=v;);number3.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(flag=1).str=;str+=3;et.setText(str);flag=0;elsestr+=3;et.setText(str);vi=v;);number4.setOnClickList

28、ener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(flag=1).str=;str+=4;et.setText(str);flag=0;elsestr+=4;et.setText(str);vi=v;);number5.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(flag=1).str=;str+=5;et.setTex

29、t(str);flag=0;elsestr+=5;et.setText(str);vi=v;);number6.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(flag=1).str=;str+=6;et.setText(str);flag=0;elsestr+=6;et.setText(str);vi=v;);number7.setOnClickListener(newView.OnClickListener()publicvoidonCli

30、ck(Viewv)/TODOAuto-generatedmethodstubif(flag=1).str=;str+=7;et.setText(str);flag=0;elsestr+=7;et.setText(str);vi=v;);number8.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(flag=1).str=;str+=8;et.setText(str);flag=0;elsestr+=8;et.setText(str);vi=v

31、;);number9.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(flag=1).str=;str+=9;et.setText(str);flag=0;elsestr+=9;et.setText(str);vi=v;);/设定符号键/加fuhao0.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstub

32、if(str!=)if(vi=fuhao0|vi=fuhao1|vi=fuhao2|vi=fuhao3)c=1;elseg=Double.parseDouble(str);calculater();str=+f;et.setText(str);c=1;flag=1;vi=v;);/减fuhao1.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(str!=)if(vi=fuhao0|vi=fuhao1|vi=fuhao2|vi=fuhao3)c=2;elseg=Double.parseDouble(str);calculater();str=+f;et.setText(str);c=2;flag=1;vi=v;);/乘fuhao2.setOnClickListener(newView.OnClickListener()p

温馨提示

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

评论

0/150

提交评论