版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Android项目开发实训报告姓名:赵炳琪学号:140840131专业:软件技术项目名称:Android手机记账本指导教师:陈雪莲实训日期:2016年10月30日至2016年12月30日2016年12月25日Android项目开发实训报告Android项目开发实训记录单学号140840131姓名赵炳琪性别男指导教师陈雪莲项目名称Android手机记账本项目描述收支管理模块是程序的主体功能,实现了处理用户的收入和支出的信息,进行处理后用表单的形式进行显示,冋时提供时间段的收支情况查询功能。系统除了总体模块以外主要由一大模块来组成,即统计功能和备份功能。项目评语分项成绩平时成绩实践能力实训报告总成
2、绩等级目录TOC o 1-5 h z HYPERLINK l bookmark4 o Current Document 第一章概述1 HYPERLINK l bookmark6 o Current Document 第二章需求分析2项目背景2项目需求2 HYPERLINK l bookmark8 o Current Document 第三章相关技术43.1Adnroid平台介绍43.2关键技术研究6 HYPERLINK l bookmark10 o Current Document 第四章概要设计94.1系统体系结构9用户界面设计144.2.1计算器界面14小数点运算界面144.2.3负数运算
3、界面154.2.4开方运算界面15 HYPERLINK l bookmark12 o Current Document 第五章详细设计165.1数据输入模块16数据显示模块165.3数据计算功能模块16 HYPERLINK l bookmark14 o Current Document 第六章结论26Android项目开发实训报告-1- 第一章概述随着社会的发展,经济水平的提高,手机越来越普及。同时伴随着已送慧联网技术的发展,手机的功能也变得越来越丰富。从原来只具有简单通信功能的非智能手机到现在具有手机操作系统,除通话功能以外,还集上网、聊天、炒股、收发邮件等功能于一身的智能手机系统。由Goo
4、gle公式牵头众多实力雄厚的软硬件厂商加盟商成立了OMS联盟,病退出的Android平台手机系统,作为时代的新生儿,Android手机操作平台有着得天独厚的优势广阔的发展前景。而计算器作为现在人们日常生活中常用的一种工具也已经可以说是人们日常生活中必不可少的工具了。计算器的发展同样经历了漫长的过程,凝聚无数仙人的智慧,甚至连计算机的发展都可以说是源于计算器的发展。本程序正式基于Android平台开发的计算器。本课题要求:设计一个基于Android的计算器的软件。实现的功能有:具有基本的加、减、乘、除功能,能够判断用户输入运算数是否正确,支持小数运算,具有退格功能,能够删除最后一个输入,具有清除
5、功能,即“C”。因为打开(ON)、关闭(OFF)屏幕按键的功能需重点研究的关键问题:计算器的运算和显示问题。第二章需求分析2.1项目背景随着社会的发展,经济水平的提高,手机越来越普及。同时伴随着移动互联网技术的发展,手机的功能也变得越来越丰富。从原来只具有简单通信功能的非智能手机到现在具有手机操作系统,除通话功能以外,还集上网、聊天、炒股、收发邮件等功能于一身的智能手机系统。Java语言是当今流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。为了进一步巩固课堂上所学到的知识,深刻把握
6、嵌入式系统以及Java语言的重要概念及其面向对象的特性,使我们能够熟练的应用面向对象的思想和设计方法解决实际问题的能力。通过此次课程设计,巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。使学生通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。2.2项目需求根据需求,符合用户的实际要求,系统应实现以下功能:计算器界面友好,方便使用,显示到少6位结果,具有基本的加、减、乘、除功能,能够判断用户输
7、入运算数是否正确,支持小数运算,具有退格功能,能够删除最后一个输入,具有清除功能,即“C”。因为打开(ON)、关闭(OFF)屏幕按键的功能等。如图2-1所示。整个程序基于Android技术开发,除总体模块外主要分为输入模块、显示模块以及计算模块这三大部分。在整个系统中总体模块控制系统的生命周期,输入模块部分负责读取用户输入的数据,显示模块部分负责显示用户之前输入的数据以及显示最终的计算结果,计算机模块部分负责进行数据的运算以及一些其他的功能。下面较为详细的做了说明。具体的说,总体模块的作用主要是生成应用程序的主类,控制应用程序的生命周期。输入模块主要描述了计算器键盘以及键盘的监听即主要负责读取
8、用户的键盘输入以及响应触屏的按键,需要监听手机动作以及用指针事件处理方法处理触屏的单击动作。同时提供了较为直观的键盘图形用户界面。显示模块描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算结果,同时负责显示一些其他的信息。计算模块则主要描述了计算器的整体,实现了计算器的界面,负责计算用户输入数据,包括加、减、乘、除等各种功能,记忆数据的相关功能,退格以及清零的功能。系统除了总体模块以外主要由三大模块来组成,即输入模块、显示模块和计算模块,如图2-2所示:输入模块主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及响应触屏的按键,需要监听手机按键动作以及用指针事件处
9、理方法处理触屏的单击动作(以松开按键为准)。同时提供了较为直观的键盘图形用户界面。显示模块描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算结果,同时还负责显示一些其他的信息。计算模块则主要描述了计算器的整体,实现了计算器的界面,负责计算用户输入数据,包括加、减乘、除、等各种计算功能,记忆数据的相关功能,退格以及清零的功能。第三章相关技术3.1Adnroid平台介绍Android是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。可以把它简单理
10、解成Linux上套了一个JAVA的壳。Android的平台基本上是免费的,虽然有部份原生链接库会要求费用,但大部份是免权利金。Android的程序可以采用JAVA开发,因为它的虚拟机(VirtualMachine)Dalvik,只是它将JAVA的bytecode转成自己的格式,回避掉需要付给SUN有关JAVA的授权费用。因此,Android开发环境是需要JDK的。1.新建项目:打开Eclipse,选择FileNewProjectAndroidProject,具体输入如图3-1所示:在Projectname:中输入工程的名字,buildtarget中选择所用的平台,Applicationname
11、为应用程序的名称,createactivity为活动类的名称,配制运行方式:逐RunConfig曲滿crfwCreatsrmanage.andrunCDnligurBlionAndroidApplicator_Gi应铀rv疏禺旳女LunHUP內站J2EEPfftievrJavaAppletAndroidApplicationAndroidJUnrtTestAwche命meatEri?sfAppkaticfflEr.se口世ToolsGwe4rSe沖hName:hdloAndroidTargetlConwioiProject:testBrowse,LaunchAcHmi:bLaunchDefau
12、kAriviyLaunch:DoNctK;ng图3-2打开血肮id模拟器点击RunConfigurations会出现图3-2的界面,然后点击androidandroidapplication新建一个动行方式,在右边project中输入要运行的工程名称。至此运行方式配制完成。运击会行,便会出下如图3-3界面:3.2关键技术研究每一个应用程序,我们都要设计一个图标,可以说图标是应用程序的名片,好的图标能够很快地吸引用户。在此不对图标问题做过多的介绍。由于不同的android手机有着不同的分辨率,将不同分辨率的图标图片放置在相应位置,如图3-4所示。Q0draxatle-hipi0ic_lamtch
13、er.png凶jisuanqiqi.PWG三凸irawableldpi(*ic_lanher-3drSwtbltmpiiie_la.mich.&r.png.由draablexhdpi图3-4團片保存drawable-hdpi中放置分辨率最高的图标,drawable-mdpi中放置分辨率中等的图标,drawable-ldpi中放置分辨率最低的图标。图标图片大小的要求如图3-5所示:IconSaidardfiiua|lfiPixelt.f其他设置保持不变。在value中的String.xml中加入app_name,代码为:计算器/string界面设计应该尽量简洁而美观,应该具有良好的交互性。当然,
14、我们每个人可以根据自己的喜好来进行设计,根据我个人的喜好,我最终设计出来的计算器界面如图3-6所示:E2345689kQWERVUI0ASDFGHILKLPILZXCvBNMiM回/nE3-6设计结果从上图中,我们可以很直观的看到,从上到下分别是:显示模块、输入模块、计算模块。输入模块,主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及响应触屏的按键,当用户点击按键或者屏幕的时候监听器会去调用相应的处理办法,具体的处理办法会在相关的地方进行说明。在本项目中,在触屏上提供了各种功能的按键,分别是C,0,1,2,3,4,5,6,7,8,9,+,-,X,-,=,ON,OFF。在整体界
15、面的设置中,我还为各个按键的设置中我还设置了字体的大小,字体的颜色,分别用下列语句实现:字体大小:android:textSize=25dip字体颜色:android:textColor=#7f0000界面背景:android:background=#888FFF显示模块,主要描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算结果和一些其他信息。显示模块还设置了显示的字体,大小,颜色,同时还设置了显示字体的颜色。具体设置如下代码:显示区中使用的是基于增强型的图形用户界面EditText,利用此类的功能,在显示模块中完成了以上设置。显示模块声明了这些设置,在用户使用系统的时候,会
16、在协同布局设置一同完成以上设置,使用户在使用的时候可以直观的看到显示区的样子。一般情况下都会选择差不多的字体,所以此处选择的字体和键盘上显示的字体其实是一样的,但是事实上系统中进行了两次声明,即逻辑上这是两种不同的字体,以及设置字符串text为空。显示区和输入模块中的表格一样,同样分别设置了最小显示以及完美显示这两种状态。然后声明了显示区的画法,画法中包括了显示区的两个矩形组成的显示框,显示框的颜色和大小以及显示框中显示的文字所使用的字体,还有文字在显示框中的位置。最后设置了计算模块中的变量得到以及改变显示中所显示的内容的方法,当显示中的内容发生变化时,系统会运行repaint命令来重画显示区
17、,由于使用的是比较低级的方法,所以只能通过整个显示区来实现显示更新这个命令。这样虽然和使用高级的方法相比速度上可能有点慢,但是由于时间相差的不是很多,在用户的正常使用中是不会有所感觉的。以上就是显示模块的具体实现流程。第四章概要设计4.1系统体系结构计算模块则主要描述了计算器的整体,实现了计算器的界面,定义了用户单击的处理办法,通过定义的处理办法来完成用户的操作命令,实现用户的计算要求,这些计算要求包括了数值的输入,小数点的输入,正负号的输入,记忆相关功能的完成,加、减、乘、除等各种计算功能的完成,运算符的替换,初始化系统等等。衣4.1计算髓的特殊功能键列按键名称按键功能C计算清零进重新幵始计
18、算ON打幵键盘按锻OFF关闭键盘按鑼按键监听同时监听了触屏上的按键和键盘上的按键,其中按键的监听使用了的松开为判断的标准,即用户松开按键的时候程序才会读取数据。计算模块是整个系统的主体部分,整个计算器功能是通过Jisuanq2Activity.java来实现的。首先,我使用一个数组btn来分别监控十个数字键,用et_led来监控输入内容,用btn_div、btn_mul、btn_sub、btn_plus、btn_equal、btn_dot,分别来表示除法、乘法、减法、加法、等号、点号,具体实现如下代码:privateButtonbtn=newButton10;privateEditTextet
19、_led;privateButtonbtn_div,btn_mul,btn_sub,btn_plus,btn_equal,btn_dot;其次,对内容的操作。当有内容输入时,首先接收内容,接受的内容分为两部分:当输入为数据时,则是通过传递给数组str,根据数据的传递判断数据内容的长度,如果没有内容输入则,则通过et_led.setText()为0,如果有数据输入的时候,则通过et_led.setText()显示数据,并且将第一次输入的数据保存predata;当输入为符号时,像“+、-、*、/、C、ON、OFF”时,然后对符号进行判断,具体实现代码如下:privateOnClickListene
20、ractionPerformed=newOnClickListener()publicvoidonClick(Viewv)Stringcommand=(Button)v).getText().toString();Android项目开发实训报告Android项目开发实训报告-111-1-101-0str=et_led.getText().toString();if(pareTo(Bksp)=0)if(str.length()1)et_led.setText(str.substring(0,str.length()-1);elseif(str.length()=1)et_led.setText(
21、0);vbegin=true;if(et_led.getText().toString().compareTo(-)=0)et_led.setText(0);vbegin=true;elseif最后,当第二次输入数据的时候,将会数据存到temp,再根据上次输入的符号进行运算,然后将结果保存在temp,如果按键“=”,则会将将结果输出,如果是其他的符号,则会进行相应的运算。程序结构图如下:算的Activity,剩下八个分别为输入数据的ACtiVty和显示运算结果的Activity,如图2。在这里应该注意的是每当创建一个新的class,就要继承Activity。需要用到publicclassjis
22、uanqiextendsActivity这句代码因此整理好程序的流程是关键,设计好Activity之间的Intent链接是关键。卽Jiauanqi鼻订三SimpleCaileLil9tsrK.Android1.6gfrAndlr&idDep-pndeJhiieS-*雪srcj*spacej/|AboutActivity.java3JJMainActivhyjavajJResukActivityJava图4-3程序所需的Activity相应的,需要在res/layout文件夹中建立3个XML文件来对上述的十个Activity进行布局,如图4-4:图4-4*t_L-layoutJabout.xml
23、imain.Krnl.:reiulUffll总体上所需要的Activity和XML布局文件已经建立完毕,下面开始对进入计算器的Activity进行编写,首先在布局文件main.xml中创建两个Button按钮,并且对两个按钮声明ID和布局。两个Button按钮显示为“开始计算”和“退出”如图4-5:Byttonandroid;id-,r+id/tfuttanj,Handroid:l.ayaut_tfidth=atch_parefitandroid:la-out_heigfit=lurapcontentandrcrid:2就=;-主*0)numStack1.push(numStack.pop()
24、.getNum();while(symbolStack.countSymbol()0)symbolStack1.push(symbolStack.pop().getSymbol();BigDecimalresult=calculator(numStack1,symbolStack1);StringresultString=result.toString();Strings=outprocess(resultString);text1.setText(s);flag5=1;if(Button)v=button18)str=0;text.setText(str);flag0=1;flag1=0;f
25、lag2=0;flag3=0;FlagStackflagstack1=newFlagStack();flagstack=flagstack1;text1.setText();if(Button)v=button19)Stringstr1=;if(flagstack.count()1)flagstack.pop();Flagflagnow=flagstack.pop();flag0=flagnow.a0();flag1=flagnow.a1();flag2=flagnow.a2();flag3=flagnow.a3();charb=str.toCharArray();for(inti=0;ist
26、r.length()-1;i+)str1=str1+bi;str=str1;text.setText(str);flagstack.push(flag0,flag1,flag2,flag3);if(flagstack.count()=2)/这两句的意思是设置光标位置为字符串最后一位Editableea=text.getText();Selection.setSelection(ea,ea.length()-1);Android项目开发实训报告-262-6第六章结论在这次实训中我不仅学习了相关的专业知识,而且让我对Android系统有了一个更加深入的了解,它也是我们计算机专业的一个新的方向并且发展很迅速,为了今后的发展
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国户外运动光学产品行业并购重组扩张战略制定与实施研究报告
- 2025-2030年中国智能卡芯片行业全国市场开拓战略制定与实施研究报告
- 新形势下风机塔架行业可持续发展战略制定与实施研究报告
- 2025-2030年中国产业园区物业管理行业营销创新战略制定与实施研究报告
- 建设书香校园活动方案
- 校园西装调查问卷
- 建设功臣事迹材料
- 2025年教育学试题答案
- 食品保鲜膜知识培训课件
- 西藏林芝市2023-2024学年九年级上学期期末考试化学试题
- 专项债券培训课件
- CNAS-CL01-G001:2024检测和校准实验室能力认可准则的应用要求
- 校园重点防火部位消防安全管理规定(3篇)
- 临时施工围挡安全应急预案
- ICP-网络与信息安全保障措施-1.信息安全管理组织机构设置及工作职责
- 码头安全生产管理制度
- 2024城市河湖底泥污染状况调查评价技术导则
- MT-T 1199-2023 煤矿用防爆柴油机无轨胶轮运输车辆通用安全技术条件
- C4支持学生创造性学习与表达作业1-设计方案
- Q∕SY 01330-2020 井下作业现场监督规范
- 医院关于不合理医疗检查专项治理自查自查自纠总结
评论
0/150
提交评论