文档库 最新最全的文档下载
当前位置:文档库 › 计算器设计报告

计算器设计报告

计算器设计报告
计算器设计报告

数学与信息技术学院

嵌入式系统课程设计报告

设计题目:数字计算器的设计与实验

班级: 11级计科本2班

学号: 2011081211 姓名:秦铭浩

指导教师:李海颖

完成日期: 2014/4/27

成绩:

1.目录

目录是将报告书内的章节标题依次排列。

2.绪论

Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android 应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。本次课程设计一个简易的计算器。主要了解Activity的创建和Intent的使用。Intent不仅可以连接两个Activity。而且可以传递数据。下面是整个程序的设计流程。据Gartner 最新数据显示,2010年第二、三季度全球智能手机销售继续大幅增长,其中第三季度安卓占全球智能手机市场的25.5%,仅次于塞班,成为第二大智能手机系统。2010第二、三季度与去年同期相比,增度分别是15.4%及22%,增势迅猛。而塞班系统较09年的市场份额,尽管终端销量有大幅度提升,但增势下滑10%,形势非常严峻。其他操作系统的表现则要平稳很多

自Android在美国推出后,Android凭借自身的良好用户体验,相对低廉的成本和较高的开放性使得越来越多的终端厂商采用。在Android出现之前,智能手机基本都采用WM平台,成本较高、系统封闭、用户的体验差。而Android 系统成本低、用户体验较好、平台开源,使得终端厂商和开发者有了更大的灵活性。

总之,Android在发展中虽遇到了一些问题,但是在多种积极因素的推动下,总体趋势仍旧很好。基于Android操作系统的智能设备在国内市场必将有大的发展空间。

3.需求分析

计算器作为现在人们日常生活中常用的一种工具已经可以说是人们日常生活中必不可少的工具了。但是计算器的发展经历了漫长的过程,凝聚无数先人的智慧,甚至连计算机的发展都可以说是源于计算器的发展。计算器和计算机一样都能够实现数据的输入、处理、存储和输出这些基本的功能,但计算器区别于计算机的地方就是,它不能自动的进行计算,必须要求由人来操作完成计算;而计算机通过提前编写好的程序就能够自动的按照程序进行处理。所以计算器和计算机的一个显著的区别就在于是否需要人为地操作来完成运行。这二者还有另一个本质性的区别。计算器的处理数据的方法是生产时就已经固化在系统中了,所以计算器只能按照系统中规定的处理方法来处理用户要求的计算任务;而计算机由于可以自行安装操作系统和各种的相关软件和硬件,理论上计算机拥有的可扩展性是无穷的。所以简单的说,计算器和计算机的本质性区别就在于该系统是否存在可扩展性。

本计算器程序主要解决日常生活中常见的基本数据计算问题,程序要实现的目标如下:

(1)实现基本的加、减、乘、除四则运算。

(2)有清空功能,即清除所以数据,重新开始计算。

4.总体设计

根据需求,符合用户的实际要求,系统应实现以下功能:计算器界面友好,方便使用,显示到少6位结果,具有基本的加、减、乘、除功能,能够判断用户输入运算数是否正确,支持小数运算,具有退格功能,能够删除最后一个输入,具有清除功能,即“C”。

整个程序基于Android技术开发,除总体模块外主要分为输入模块、显示模块以及计算模块这三大部分。在整个系统中总体模块控制系统的生命周期,输入模块部分负责读取用户输入的数据,显示模块部分负责显示用户之前输入的数据以及显示最终的计算结果,计算机模块部分负责进行数据的运算以及一些其他的功能。下面较为详细的做了说明。

具体的说,总体模块的作用主要是生成应用程序的主类,控制应用程序的生命周期。输入模块主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及响应触屏的按键,需要监听手机动作以及用指针事件处理方法处理触屏的单击动作。同时提供了较为直观的键盘图形用户界面。

显示模块描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算结果,同时负责显示一些其他的信息。

计算模块则主要描述了计算器的整体,实现了计算器的界面,负责计算用户输入数据,包括加、减、乘、除等各种功能,记忆数据的相关功能,退格以及清零的功能。

系统除了总体模块以外主要由三大模块来组成,即输入模块、显示模块和计算模块,如下图所示:

总体系统

输入模块显示模块计算模块

输入模块主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及响应触屏的按键,需要监听手机按键动作以及用指针事件处理方法处理触屏的单击动作(以松开按键为准)。同时提供了较为直观的键盘图形用户界面。

显示模块描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算结果,同时还负责显示一些其他的信息。

计算模块则主要描述了计算器的整体,实现了计算器的界面,负责计算用户输入数据,包括加、减、乘、除、等各种计算功能,记忆数据的相关功能,退格以及清零的功能

5.详细设计

系统如果想完成计算器中各种功能,首先用户要能进行数据输入,由于是在触屏手机上开发计算器程序,所以要求输入可以直接使用触屏进行,所以在设计的时候就要充分的考虑这一点。正是由于考虑到这个特殊的地方,所以在进行模块设计中,选择编写输入模块类的时候会特意选取使用可以支持触屏输入的特殊增强型图形用户界面类。

输入模块主要的任务是描述计算器键盘以及实现键盘的监听,即当用户点击按键或者屏幕的时候监听会去调用相应的处理办法,本模块还需要为系统提供一个较为直观的键盘图形用户界面。输入模块的功能图如图所示:

输入模块

支持触屏

描述计算器键盘实现按键监听

定义键盘按键和画法设置按键监听5.2显示模块详细设计

作为手机计算器系统,显示部分也是必不可少的一部分。没有显示部分就没有办法显示用户输入的数字是否正确,甚至不能显示计算出的结果,由此可见显示模块即包括输入的部分也包括输出的部分。

显示模块主要完成的任务是描述计算器的显示区,该区域用于显示用户输入的数据以及最终的计算结果和一些其他信息。同时本模块还将提供调用和设置显示的具体方法。如图所示:

显示模块

显示区的相关调用显示区数设置显示区数据方

系统要完成整个的计算器的功能,那么计算模块就是整个系统的重要模块。没有计算模块系统就不能顺利的完成计算,就无法达到用户的要求。所以计算模块的设计也是本次系统设计的重点。

系统想要能在屏幕上显示出计算器的样子要有整体的布局。在本模块中要完成布局的具体设计,使用户能够看到整个计算器的界面。同时系统想完成计算功能必须要处理用户的输入,当输入模块的监听传到计算模块中时,计算模块就要根据相应的方法进行进一步的处理。计算模块功能图如图3-6所示:

计算模块

整体布局逻辑判断

运算输入判断数值输入判断

普通运算功能高级功能

记忆相关功能清零复位功能

6.编码

6.1 构建Android应用程序用户界面

Android应用程序的基础功能单元是Activity。它是android.app.Activity类中的一个对象。一个Activity可以实现很多功能,但是它自己并不会显示到屏幕上。Android应用程序界面需要使用view和viewgroup一起构造。

Android.view.View:基础类的对象。它是一个用来存储屏幕上特定的一个矩形内布局和内容属性的数据结构。一个View对象处理测距和布局、绘图、焦点交换、滚动条,还有屏幕区域自己表现的按键和手势。View类作为一个基类,为widget(窗体部件)服务,widget是一组用于绘制交互屏幕元素的完全实现子类。Widget处理它们自己的测距和绘图,可以快速的使用它们去构建Android 应用程序界面。可用到的widget包括TextView,EditText,InputMethod,Botton,RadioButton,Checkbox和ScrollView等。

Android.view.ViewGroup:一个ViewGroup是一个Android.view.ViewGroup 类对象。ViewGroup是一个特殊的view对象,它可以装载和管理一组下层的view 其他viewgroup。ViewGroup类作为一个基类,为layout(布局)服务,layout 是一组提供屏幕界面通用类型的完全实现子类。Layout可以为一组view构建一个结构。

在Android平台上,用view树和viewgroup节点来定义一个Activity的用户界面,如下图所示。这个树形结构可以构建各种Android程序界面,并且可以使用Android的预定义widget和layout或者自定义的view类型来构建。Android 树形用户界面如图4-2所示。

图4-2 Android树形界面

所有的viewgroup都包括宽和高。很多还包括边界的定义(margin和border)。可以非常精确地描述宽和高,同时view可以自行调整到适应内容大小,或者适应容器大小。

6.2 Android应用系统界面组件

基于Android的手机计算器,是以用户为中心的。因此构建良好的用户界面是很重要的。Android构建用户界面有以下三种方式:

(1)用户界面通过XML配置文件生成。

(2)直接用代码生成用户界面。

(3)通过实现用户界面接口形成自定义的用户界面组件。

每种方式各有自己的优缺点及使用环境,下面将结合本文界面实现逐一介绍。

(1)XML文件生成

根据MVC原则,UI应该与程序逻辑相分离,因此,在XML中定义UI结构是强烈推荐的。常用的方式是用图形化的方式来编写布局Layout,这些布局保存在XML文件中,然后编译成资源,在程序中Activity通过setContentView()方法来加载,然后通过findViewByld()方式来获得每一个界面组件的引用。实现过程及步骤。在layout文件夹下定义自己的XML页面,如计算器属性界面的实现如下所示。

xmlns:android="https://www.wendangku.net/doc/b14600699.html,/apk/res/android"

android:orientation="vertical" android:layout_width="fill_parent"

android:layout_height="fill_parent" android:background="#888FFF">

………………

……………

……

android:orientation="horizontal" android:layout_weight="1">

android:layout_height="wrap_content"

android:layout_width="fill_parent"

相关文档
相关文档 最新文档