计算器安卓设计.doc_第1页
计算器安卓设计.doc_第2页
计算器安卓设计.doc_第3页
计算器安卓设计.doc_第4页
计算器安卓设计.doc_第5页
免费预览已结束,剩余19页可下载查看

下载本文档

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

文档简介

成绩 课程设计报告 题 目 ANDROID开发 课 程 名 称 简单计算器 院 部 名 称 计算机工程学院 专 业 计算机科学与技术 班 级 15计算机科学与技术 学 生 姓 名 周江成 学 号 1513902035 课程设计地点 1416 课程设计学时 指 导 教 师 叶崧 金陵科技学院教务处制课程设计报告书写要求课程设计报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。课程设计报告书写说明课程设计报告应包含以下七部分内容:1、摘要2、目录3、前言/引言 4.正文 5. 结论6. 参考文献7. 附录,每部分的书写要求参见具体条目要求。填写注意事项(1)准确说明,层次清晰。(2)尽量采用专用术语来说明事物。(3)外文、符号、公式要准确,应使用统一规定的名词和符号。(4)应独立完成课程设计报告的书写,严禁抄袭、复印,一经发现,以零分论处。课程设计报告批改说明课程设计报告的批改要及时、认真、仔细,一律用红色笔批改。课程设计报告的批改成绩采用五级计分制或百分制,具体评分标准由各院部自行制定。课程设计报告装订要求报告批改完毕后,任课老师应将课程设计报告以自然班为单位、按学号升序排列,并附上一份该课程设计的教学大纲。金陵科技学院课程设计报告课程设计题目: 简单计算器 1、 摘要(所进行设计工作的主旨、缘起、 目的,设计工作的主要内容、过程,采用的方法及取得的成果。关键字(Key Words): 一般35个,最能代表报告内容特征,或在报告起关键作用,最能说明问题的词组)目前手机可以说是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开始代替固定电话的通话功能,以及一些原来电脑软件上的功能了。手机上的软件也随着手机的发展变得丰富起来了,时至今日已经出现了很多专门制作手机软件的公司,虽然制作的多是游戏软件,但是一些辅助性的工具软件也有了很多.我在此次系统中所做的工作主要是设计整个系统以及利用编程语言实现整个系统,使系统能够正确的运行计算功能。本程序是一个基于现有手机计算器开发的在触屏手机上运行的简单计算器,使用户可以更加简单便捷的使用计算器功能,在此次程序设计中所做的工作主要是设计程序的图形化操作界面,以及利用编程语言实现整个程序的计算功能,使其能够正确运行。设计的计算器应用程序可以完成加法、减法、乘法以及除法,并且具有删除和清空的功能。关键词:Android、应用开发、计算器二、目录一前言二正文1. 开发环境2. 程序流程设计3. 系统功能设计4. 基于Android平台系统具体设计5. 总体模块详细设计6. 输入模块详细设计7. 显示模块详细设计8. 计算模块详细设计9. 界面设计截图三总结四参考文献五附录I三、前言(说明本次课程设计课题意义,本课题相关技术特点,拟采用的方案或路线)通过此次课程设计,巩固所学Java语言的基础知识,增进Java语言编辑基本功,掌握JDK,Android Studio等开发工具的应用,拓展常用类库的应用。使学生通过该教学环节与手段,把所学课程及相关知识加以融汇贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法。加法运算根据用户的实际要求,程序应实现以下功能:计算器界面友好,方便使用,具有基本的加、减、乘、除功能,能够判断用户输入运算数是否正确,支持小数点运算,具有退格功能,能够删除最后一个输入,具有清除功能。减法运算记忆相关功能计算器乘法运算清除相关功能除法运算整个程序基于Android技术开发,除总体模块外主要分为输入模块、显示模块以及计算模块这三大部分。在整个系统中总体模块控制系统的生命周期,输入模块部分负责读取用户输入的数据,显示模块部分负责显示用户之前输入的数据以及显示最终的计算结果,计算机模块负责进行数据的运算以及一些其他的功能。具体的说,总体模块的作用主要是生成应用程序的主类,控制应用程序的生命周期。输入模块只要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及响应触屏的按键,需要监听手机动作以及指针事件处理触屏的单击操作,同时提供了较为直观的键盘图形用户界面。显示模块描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算结果,同时负责显示一些其他的信息。计算模块则主要描述了计算器的整体,实现了计算器的界面,负责计算用户输入的数据,包括加、减、乘、除等各种功能,退格以及清零的功能。系统除了总体模块以外主要由三大模块来组成,即输入模块、显示模块和计算模块,如下图所示:总体系统显示模块计算模块输入模块三大模块输入模块主要描述了计算器键盘以及键盘的监听即负责读取用户的键盘输入以及响应触屏的按键,需要监听手机按键的动作以及指针事件处理方法处理触屏的单击操作(以松开按键为标准)。同时提供了较为直观的键盘图形用户界面。显示模块描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算结果,同时负责显示一些其他的信息。计算模块则主要描述了计算器的整体,实现了计算器的界面,负责计算用户输入的数据,包括加、减、乘、除等各种功能,退格以及清零的功能。4、 正文(包含所进行设计的整体内容)1、开发环境Android是Google于2007年11月5日宣布基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个移动端打造的真正开放和完整的移动软件。可以把它理解成Linux上套了一个JAVA的壳。Android的平台基本上是免费的,虽然有部分原生链接库会要求费用,但大部分是免权利金的。Android的程序可以采用JAVA开发,因为它的虚拟机Dalvik,只是它将JAVA的bytecode转成自己的格式,回避掉需要付给SUN有关JAVA的授权费用,因此,Android开发环境是需要JDK的。Android Studio 是一个Android集成开发工具,基于IntelliJ IDEA. 类似EclipseADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。2、程序流程设计知道了系统的功能以后,我们通过main.xml来建立显示界面,完成后系统开始监听用户的按键输入,每次输入系统都会判断一次用户输入的类型,是数字还是运算符号或者是清除,判断完后分成不同类型如数字,符号,基本运算等等进行进一步的处理,根据用户的要求继续进行下一步的操作,最后计算出最终结果并显示在显示区。流程设计图如下所示:开始监听用户按键输入系统重置判断是否清零操作 是 否判断是否结算结果 否 是按照用户要求进行计算在显示区显示计算结果3、系统功能设计整个系统的功能比较多,比较复杂,如上所说,可以分为十多个功能模块,但是逻辑上理解其实不算难,系统包括如普通计算功能,包括加减乘除,退格以及清零功能。加法运算记忆相关功能减法运算计算器清除相关功能乘法运算除法运算4、 基于Android平台系统具体设计系统除了总体模块以外主要由三大模块来组成,即输入模块,显示模块和计算模块。用系统框图来显示。即如下图:总体系统显示模块计算模块输入模块5、 总体模块详细设计总体模块需要完成的任务主要就是系统的程序启动类,需要负责整个系统的生命周期。同时还要在模块中完成菜单栏上的所有功能,退出程序,记忆数据,显示数据,清除记忆数据这四个功能总体模块如下:完成程序启动类完成菜单功能6、 输入模块详细设计系统如果想要完成计算器中的各种功能,首先用户要能进行数据输入,由于是在触屏手机上开发计算器程序,所以要求输入可以直接使用触屏进行,所以在设计的时候就要充分考虑这一点。所以在进行模块设计师,选择编写输入模块类的时候会选取使用了可以支持触屏输入的特殊增强行的图形用户界面类。输入模块主要的任务是描述计算器键盘以及实现键盘监听,即当用户点击按键或者屏幕的时候监听器会去调用相应的处理办法,本模块还需要为系统提供一个较为直接的键盘图形用户界面。输入模块如下:输入模块实现按键监听描述计算器键盘实现按键监听实现按键监听描述计算器键盘7、 显示模块详细设计显示模块主要完成的任务是描述计算器的显示区,该区域用于显示用户输入的数据以及最终的计算结果和一些其他信息。同时本模块还将提供和设置显示的具体方法。显示模块如图:设置显示区数据方法调用显示区数据方法显示区的相关设置8、 计算模块详细设计系统想要能在屏幕上显示出计算器的样子要有整体的布局,在本模块中要完成布局的具体设计,使用户能够看到整个计算器的界面。同时系统想要完成计算功能必须要处理用户的输入,当输入模块的监听传到计算模块中,计算模块就要根据相应的方法进行进一步逻辑判断。如下:计算模块整体布局逻辑判断数值输入判断运算输入判断高级功能普通运算清零复位功能记忆相关功能9、 界面设计截图五、结论(对整个设计工作的总结,可以包括作者提出的建议、下一步工作的设想及改进意见等)课程设计终于在我的努力下做完了。这个时候我更加深入的了解了Java的特点以及一些相关知识。与其临渊羡鱼,不如退而结网。这次Android课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。如果你连失败都不怕了,那你还怕什么,拾起懒惰的心,勤奋着就会走向成功斩。这次的课程设计在我未来的时日里,是一个标杆,因为它告诉了我,只要我努力没有什么事我做不好的。安卓开发是个很有意思的事情,以后可以在自己手机上安装自己开发的一些小程序,也是个非常不错的事情,目前还没有个安卓机子,而在其他同学手机测试过后,还是比较不错的六、参考文献(撰写论文过程中所参考的文章、书本及其它文献。)1 王小科,Android入门经典M,北京:机械工业出版社,2013年.2 DevDiv移动开发社区,Android开发实战体验M,北京:海洋出版社,20133 第一行代码4 2015最新Android基础入门教程7、 附录(相关图纸及源程序等)目录结构Activity_main.xml中的源代码 /第二行开始* /第三行开始* /第四行* MainActivity.java中的源代码package com.example.work;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;public class MainActivity extends AppCompatActivity implements View.OnClickListener Button btn_0 ; Button btn_1; Button btn_2; Button btn_3 ; Button btn_4 ; Button btn_5 ; Button btn_6 ; /数字按钮 Button btn_7 ; Button btn_8 ; Button btn_9 ; Button btn_point ; /小数点按钮 Button btn_clear ; Button btn_del ; Button btn_pluse ; Button btn_minus ; Button btn_multiply ; Button btn_divide ; Button btn_equle ; EditText et_input ; boolean clear_flag ;/清空标识 Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn_0 = (Button) findViewById(R.id.btn_0) ; btn_1 = (Button) findViewById(R.id.btn_1) ; btn_2 = (Button) findViewById(R.id.btn_2) ; btn_3 = (Button) findViewById(R.id.btn_3) ; btn_4 = (Button) findViewById(R.id.btn_4) ; btn_5 = (Button) findViewById(R.id.btn_5) ; btn_6 = (Button) findViewById(R.id.btn_6) ; btn_7 = (Button) findViewById(R.id.btn_7) ; btn_8 = (Button) findViewById(R.id.btn_8) ; btn_9 = (Button) findViewById(R.id.btn_9) ; btn_point = (Button) findViewById(R.id.btn_point) ; btn_clear = (Button) findViewById(R.id.btn_clear) ; btn_del = (Button) findViewById(R.id.btn_del) ; btn_pluse = (Button) findViewById(R.id.btn_plus) ; btn_minus = (Button) findViewById(R.id.btn_minus) ; btn_multiply = (Button) findViewById(R.id.btn_multiply) ; btn_divide = (Button) findViewById(R.id.btn_divide) ; btn_equle = (Button) findViewById(R.id.btn_equal) ;/以上实例化按钮 et_input = (EditText) findViewById(R.id.et_input); /实例化之后的显示屏 btn_0.setOnClickListener(this); btn_1.setOnClickListener(this); btn_2.setOnClickListener(this); btn_3.setOnClickListener(this); btn_4.setOnClickListener(this); btn_5.setOnClickListener(this); btn_6.setOnClickListener(this); btn_7.setOnClickListener(this); btn_8.setOnClickListener(this); btn_9.setOnClickListener(this); btn_point.setOnClickListener(this); btn_clear.setOnClickListener(this); btn_del.setOnClickListener(this); btn_pluse.setOnClickListener(this); btn_minus.setOnClickListener(this); btn_multiply.setOnClickListener(this); btn_divide.setOnClickListener(this); btn_equle.setOnClickListener(this); /设置以上按钮的点击事件 Override public void onClick(View v) String str = et_input.getText().toString(); switch (v.getId() case R.id.btn_0: case R.id.btn_1: case R.id.btn_2: case R.id.btn_3: case R.id.btn_4: case R.id.btn_5: case R.id.btn_6: case R.id.btn_7: case R.id.btn_8: case R.id.btn_9: case R.id.btn_point: if (clear_flag) clear_flag =false ; str = ; et_input.setText(); et_input.setText(str + (Button)v).getText(); break ; case R.id.btn_plus: case R.id.btn_minus: case R.id.btn_multiply: case R.id.btn_divide: if (clear_flag) clear_flag =false ; str = ; et_input.setText(); et_input.setText(str+ + (Button)v).getText()+ ); break; case R.id.btn_del: if (clear_flag) clear_flag =false ; str = ; et_input.setText(); else if (str!=null&!str.equals() et_input.setText(str.substring(0,str.length()-1); break; case R.id.btn_clear: clear_flag =false ; str = ; et_input.setText(); case R.id.btn_equal: getResult(); break ; /* 单独的调用运算结果 * * * */ private void getResult() String exp = et_input.getText().toString(); if (exp = null|exp.equals() return; if(!exp.contains( ) return; if (clear_flag) clear_flag = false ; return; clear_flag = true ; double result = 0 ; String s1 = exp.substring(0,exp.indexOf( ); /运算符前面的字符串 String op = exp.substring(exp.indexOf( )+1,exp.indexOf( )+2) ; String s2

温馨提示

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

评论

0/150

提交评论