基于Android计算器的开发与测试
- 格式:doc
- 大小:2.10 MB
- 文档页数:24
安卓实验报告Android是目前全球最为流行的操作系统之一,其强大的应用程序生态系统和广泛的设备兼容性使得安卓成为开发者和用户的首选。
本文将介绍我在安卓实验中进行的一系列任务和实验结果。
实验一:安装开发环境在进行安卓开发之前,我们首先需要安装必要的开发环境。
我使用的是Android Studio,这是谷歌官方提供的开发工具,具有强大的功能和友好的用户界面。
通过安装Android Studio,我成功搭建了安卓开发环境,并进行了一些基本的配置。
实验二:创建第一个安卓应用程序根据老师的指导,我按照步骤成功创建了我的第一个安卓应用程序。
我选择了一个简单的计算器应用程序作为开始,它可以实现基本的加法和减法功能。
通过这个实验,我学会了使用Android Studio的界面设计工具和编写基本的Java代码。
实验三:UI设计和布局在这个实验中,我学习了安卓应用程序的用户界面设计和布局。
我使用了安卓提供的各种布局方式,如线性布局、相对布局和帧布局等,来设计和展示应用程序的不同界面。
通过这个实验,我对安卓界面设计的原则和技巧有了更深入的理解。
实验四:应用程序调试与测试在开发过程中,调试和测试是非常重要的环节。
通过Android Studio提供的调试工具,我能够针对应用程序中的问题进行定位和修复。
我还学会了使用模拟器和真机进行应用程序的测试,以确保应用程序的功能和稳定性。
实验五:数据库操作在这个实验中,我学习了如何在安卓应用程序中使用数据库。
我使用了SQLite数据库来存储和管理应用程序的数据。
通过编写SQL语句,我能够进行数据的插入、查询、更新和删除等操作。
这为我今后的应用程序开发提供了非常有用的技能。
总结:。
Android应用开发——标准体重计开发1 实验目的掌握android项目文件构成掌握UI构建方式掌握string资源文件引用实验任务:开发标准体重计算器Android应用,最后请输入自己的身高,提交运行截图(贴在试验报告里)实验过程:目标Android应用的操作过程是这样的:选择你的性别,然后输入你的身高,点查看计算结果的按钮就在Toast中显示你的标准体重。
力求操作简单,结果显示清楚。
标准体重的计算公式:男性:(身高cm-80)×70﹪=标准体重女性:(身高cm-70)×60﹪=标准体重按照以下步骤操作:1,没法用真机测试的,先新建模拟器,并开启它(会有点慢,不要紧,等你把代码写完后,肯定已经开启了,开了后就别关了,切记,因为开启它实在太浪费时间了)2、新建android项目,命名为BMIActivity,依次设置,最好直接把最低兼容级别设置到4.03、然后构建UI界面:在res/layout目录下双击打开xml文件进行界面设计实现的界面效果:相应的XML代码为:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:id="@+id/txt"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center"android:text="@string/hello"android:textSize="16px"/><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/sex"/><RadioGroupandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="horizontal"><RadioButtonandroid:id="@+id/male"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="男"/><RadioButtonandroid:id="@+id/female"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="女"/></RadioGroup><TextViewandroid:layout_width="fill_parent"android:layout_height="36px"android:text="@string/heigh"/><EditTextandroid:id="@+id/edit_height"android:layout_width="fill_parent"android:layout_height="wrap_content"/><Buttonandroid:id="@+id/btn"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/count"/></LinearLayout>其中文字引用了字符资源文件,请把res/values下的strings.xml改为如下:<?xml version="1.0"encoding="utf-8"?><resources><string name="app_name">计算标准体重</string><string name="action_settings">Settings</string><string name="sex">请选择男女</string><string name="hello">计算标准体重</string><string name="heigh">您的身高(单位:cm)</string><string name="count">计算</string></resources>应用的JAVA源码:注意第一行package不要复制,自己JAVA文件里package那行不要去掉BMIActivity.java:package com.example.bmiactivity;import java.text.DecimalFormat;import java.text.NumberFormat;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.RadioButton;import android.widget.Toast;/** @author lingdududu * 该程序的功能是用户选择自己的性别和输入自己的身高,然后点击按钮,就能在Toast显示出自己的标准体重*/public class BMIActivity extends Activity {/** Called when the activity is first created. */private Button countButton;private EditText heighText;private RadioButton maleBtn, femaleBtn;String sex = "";double height;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_bmi);//调用创建视图的函数creadView();//调用性别选择的函数sexChoose();//调用Button注册监听器的函数setListener();}//响应Button事件的函数private void setListener() {countButton.setOnClickListener(countListner);}private OnClickListener countListner = new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubToast.makeText(BMIActivity.this, "你是一位"+sexChoose()+"\n"+"你的身高为"+Double.parseDouble(heighText.getText().toString())+"cm"+"\n你的标准体重为"+getWeight(sexChoose(), height)+"kg", Toast.LENGTH_LONG).show();}};//性别选择的函数private String sexChoose(){if (maleBtn.isChecked()) {sex = "男性";}else if(femaleBtn.isChecked()){sex = "女性";}return sex;}//创建视图的函数public void creadView(){//txt=(TextView)findViewById(R.id.txt);countButton=(Button)findViewById(R.id.btn);heighText=(EditText)findViewById(R.id. edit_height);maleBtn=(RadioButton)findViewById(R.id.male);femaleBtn=(RadioButton)findViewById(R.id.female);//txt.setBackgroundResource(R.drawable.bg);}//标准体重格式化输出的函数private String format(double num) {NumberFormat formatter = new DecimalFormat("0.00");String str = formatter.format(num);return str;}//得到标准体重的函数private String getWeight(String sex, double height) {height = Double.parseDouble(heighText.getText().toString());String weight = "";if (sex.equals("男性")) {weight =format((height - 80) * 0.7);}else {weight = format((height - 70) * 0.6);}return weight;}}应用效果图大家可以根据其他复杂的标准体重计算器继续完善此应用,使其成为一个可用的、美观的Android应用。
基于安卓的计算器的设计与实现在设计和实现基于安卓的计算器时,需要考虑以下几个重要的方面:用户界面设计、计算逻辑实现和功能扩展。
首先,用户界面设计是一个计算器的重要组成部分。
一个简洁直观、易于使用的界面可以提供良好的用户体验。
可以考虑使用标准计算器的布局,包括数字键盘、运算符按钮和显示结果的文本框。
此外,还可以添加一些额外的功能,比如一键清除按钮、括号按钮和科学计算模式切换按钮等。
考虑到不同屏幕尺寸和定制化需求,应该使用相对布局或者网格布局来放置UI元素。
其次,计算逻辑实现是计算器的核心部分。
需要支持基本的四则运算,包括加法、减法、乘法和除法。
为了实现连续运算和操作优先级,可以使用栈或者逆波兰表示法。
在用户输入数字和运算符时,应该及时更新显示结果的文本框。
另外,还应该考虑异常情况的处理,比如除数为零的情况。
最后,功能扩展是一个好的设计的关键。
除了基本的四则运算,还可以考虑添加一些其他功能,比如开方、求平方、取余、倒数、阶乘等。
另外,还可以添加一个历史记录功能,记录用户的计算过程和结果,方便用户查看和回顾。
此外,还可以添加一个单位转换功能,支持常见的长度、重量、温度、时间、速度等单位之间的转换。
在实际开发中,可以使用Android Studio作为开发工具。
Android Studio提供了丰富的界面设计工具和模拟器,可以方便地进行界面布局和调试。
可以使用Java语言进行开发,使用Android提供的API来处理用户输入和展示结果。
在代码实现中,可以使用按钮点击事件来处理用户输入。
当用户点击数字按钮时,将所点击的数字添加到一个临时变量中,当用户点击运算符按钮时,将临时变量中的数字和运算符添加到运算式中,并清空临时变量。
当用户点击等号按钮时,根据运算式中的数字和运算符进行实际的计算,并将结果显示在结果文本框中。
当用户点击清空按钮时,将运算式和结果文本框清空。
除了基本逻辑实现外,还可以进行一些优化和改进。
android应用开发实验报告Android应用开发实验报告引言:随着智能手机的普及,移动应用的需求也越来越大。
作为目前最主流的移动操作系统之一,Android平台的应用开发变得越来越重要。
本实验报告将介绍我在Android应用开发实验中所学到的知识和经验,以及我开发的一个简单应用的过程和成果。
一、实验背景移动应用开发已经成为互联网行业的热门方向之一。
Android平台作为全球最大的移动操作系统之一,具有广泛的用户基础和开放的生态系统,因此学习和掌握Android应用开发技术对于未来的职业发展非常有帮助。
二、实验目的通过本次实验,我希望能够掌握Android应用开发的基本流程和技术,包括应用的界面设计、交互逻辑的实现以及与后台服务的通信等。
同时,我也希望能够培养自己的创新思维和解决问题的能力。
三、实验过程1. 环境搭建在开始实验之前,我首先需要搭建好Android开发环境。
我下载并安装了Android Studio,这是官方推荐的Android开发工具,提供了丰富的开发工具和模拟器来辅助开发。
2. 学习基础知识在进入实际开发之前,我花了一些时间学习Android应用开发的基础知识,包括Java编程语言、XML布局文件的编写以及Android应用的生命周期等。
这些基础知识为我后续的实际开发打下了坚实的基础。
3. 设计应用界面在设计应用界面时,我首先考虑了用户的使用习惯和界面的美观度。
我使用Android Studio提供的可视化界面编辑器,通过拖拽和调整组件的位置和属性,设计出了一个简洁而实用的界面。
4. 实现交互逻辑应用的交互逻辑是实现应用功能的核心部分。
我使用Java语言编写了一些代码,实现了用户与应用之间的交互逻辑。
例如,当用户点击一个按钮时,应用会执行相应的操作,并显示结果给用户。
5. 与后台服务通信现在的应用很少能够独立完成所有功能,往往需要与后台服务进行通信。
我使用了Android提供的网络通信库,编写了一些代码,实现了与后台服务的数据交互。
在Android Studio中开发一个简单的计算器应用随着智能手机的普及,计算器应用成为了人们生活中不可或缺的工具之一。
为了满足用户的需求,我们决定在Android Studio中开发一个简单的计算器应用。
这个应用将提供基本的四则运算功能,并且界面简洁易用。
首先,在Android Studio中创建一个新的项目。
选择合适的应用名称和包名。
接下来,我们需要设计应用的用户界面。
我们希望用户界面简洁明了,方便用户使用。
可以考虑使用一个TextView显示计算结果,以及多个Button用于输入数字和操作符。
在开发计算器的过程中,我们需要处理用户的输入并进行相应的计算。
为此,我们可以使用一个EditText控件来接收用户的输入,并通过按钮的点击事件来获取用户点击的数字和操作符。
然后,我们可以使用Java中的数学库来进行四则运算,并将结果显示在TextView中。
通过Android Studio提供的布局编辑器,我们可以轻松地将TextView和Button布局在界面上。
可以使用LinearLayout或RelativeLayout进行布局,根据需要设置各个控件之间的位置和大小。
此外,还可以设置按钮的点击事件,使其能够响应用户的输入。
在处理用户输入时,需要考虑一些特殊情况。
例如,当用户输入非法字符或进行除法时需要进行错误处理。
可以通过在代码中添加条件判断语句来实现这些功能。
另外,还可以添加一些额外的功能,如清除输入、撤销操作等,以提升用户体验。
在开发过程中,可以使用Android Studio提供的调试工具来检查代码是否正常运行。
可以设置断点,逐步执行代码,并查看变量的值。
这些工具能够帮助我们快速定位和修复错误。
为了使应用具有良好的用户体验,我们还可以添加一些动画效果和过渡效果。
例如,当用户点击按钮时,可以添加按钮缩放、淡入淡出等动画效果,使界面更加生动有趣。
除了基本功能以外,我们还可以考虑添加更多的功能来完善应用。
android应用开发编程题Android应用开发已经成为现代技术领域中必须具备的技能之一。
通过编写Android应用程序,开发人员可以创造出功能丰富的移动应用,满足用户需求,提高用户体验。
下面是几个关于Android应用开发的编程题,通过解答这些题目,可以加深对Android开发的理解和掌握。
1. 编写一个Android应用程序,实现一个简单的计算器功能。
用户可以输入两个数字和一个运算符(+、-、*、/),应用程序可以计算出结果并显示在屏幕上。
2. 编写一个Android应用程序,实现一个简单的音乐播放器。
用户可以选择音乐文件并进行播放、暂停、停止等操作。
同时,应用程序还应该显示音乐的播放进度和提供拖动进度条的功能。
3. 编写一个Android应用程序,实现一个笔记本应用。
用户可以输入标题和内容,并将笔记保存在应用程序中。
可以通过标题查找笔记,并可以对笔记进行编辑和删除操作。
4. 编写一个Android应用程序,实现一个天气预报应用。
用户可以输入城市名,应用程序可以获取该城市的天气信息并显示在屏幕上。
需要使用网络请求获取天气数据,并使用合适的布局方式展示天气信息。
5. 编写一个Android应用程序,实现一个简单的图片浏览器。
用户可以从相册中选择图片,并可以进行放大、缩小、旋转等操作。
同时,应用程序还应该提供图片的分享功能。
6. 编写一个Android应用程序,实现一个即时消息应用。
用户可以注册账号,并与其他用户进行实时聊天。
应用程序应该能够接收和发送文本消息,并显示聊天记录。
以上这些编程题旨在练习Android应用开发的各种基本技能,包括UI设计、用户输入处理、数据存储、网络请求等。
在完成这些编程题的过程中,可以通过查阅Android开发文档、参考相关教程、搜索解决方案等方式提高自己的技能水平。
总结起来,通过解答上述的Android应用开发编程题,可以加深对Android开发的理解和掌握。
通过实践和不断地学习,可以逐渐提高自己的编程能力,成为一名优秀的Android开发者。
android开发实验报告总结《android 开发实验报告总结》在当今科技飞速发展的时代,移动应用开发成为了热门领域之一,其中 Android 开发更是备受关注。
通过本次 Android 开发实验,我获得了丰富的实践经验和深刻的技术理解。
接下来,我将详细阐述这次实验的各个方面。
实验背景与目标随着智能手机的普及,Android 操作系统占据了相当大的市场份额。
本次实验的目标是通过实际开发一个简单的 Android 应用程序,深入了解 Android 开发的流程、技术架构以及相关工具的使用,从而提高自己的编程能力和解决问题的能力。
实验环境与工具在实验过程中,我们使用了 Android Studio 作为主要的开发工具。
Android Studio 提供了丰富的功能,包括代码编辑、调试、版本控制等,极大地提高了开发效率。
同时,还需要安装 Java 开发环境(JDK)以及 Android SDK 等必要的组件。
实验内容与步骤首先是项目创建。
在Android Studio 中,通过选择合适的项目模板,设定项目名称、包名等基本信息,创建了一个初始的 Android 项目框架。
接着是界面设计。
利用 XML 布局文件,定义了应用的界面元素,如按钮、文本框、列表等,并通过设置属性来调整它们的外观和位置。
同时,使用了 ConstraintLayout 等布局管理器,实现了灵活且美观的界面布局。
然后是功能实现。
通过编写 Java 代码,实现了应用的各种功能逻辑。
例如,点击按钮触发相应的事件处理,从网络获取数据并展示在界面上,以及与本地数据库进行交互等。
在数据存储方面,学习和使用了 SharedPreferences 来保存简单的配置信息,以及 SQLite 数据库来存储复杂的数据结构。
在网络通信方面,使用了 HttpURLConnection 或者 Volley 等库来发送 HTTP 请求,获取服务器端的数据。
调试与测试在开发过程中,不可避免会遇到各种问题。
基于Android计算器功能的实现摘要随着移动通信技术和网络技术的迅速发展,手机系统发生了巨大的变化,从进行简单通话功能的非智能手机到现在集上网、聊天、收发邮件、视屏电话会议等各种服务于娱乐为一身的智能手机系统。
由Google公司牵头众多实力雄厚的软硬件厂商加盟成立了OMS联盟,并推出的Android平台手机系统。
作为时代的新生儿,Android手机操作平台有着得天独厚的优势广阔的发展前景。
本文正是基于Android平台开发的计算器。
论文主要阐述以面向对象的程序开发语言eclipse为开发工具, 设计并实现基于Android的计算器。
论文首先介绍了Android开发平台和环境以及Android 工程的重要部分,其次对计算器系统和程序进行了分析和设计,再次对计算器进行了系统的实现,并对系统进行了严格的验证,最后本文对所做工作进行了总结。
关键词:手机,Android,用户界面,计算器THE CALCULATOR FUNCTION REALIZATION BASEDON ANDROIDABSTRACTWith the development of mobile communication technology and network technology, great changes have taken place on the mobile phone system. The original mobile phone only has the functions of communication and Smartphone has the functions of internet, chat, video conferencing and other services and entertainment. Android mobile phone platform which was developed by Google Company and many equipment manufacturers of hardware and software vendors, as the era of neonatal has a unique advantage and prospects for development. This article is based on the Android platform calculator. The thesis describes object-oriented programming language eclipse development tools, design and implement a calculator based on the Android. The paper first introduces the Android development platform and environment as well as an important part of the Android project, followed by the calculator systems and procedures analysis and design, the realization of the system once again the calculator, and strict verification, Finally, a summary of the work done.Key words: mobile phone, Android, UI, calculator目录1 引言 (1)1.1 课题背景及意义 (1)1.1.1 课题背景 (1)1.1.2 课题意义 (1)1.2 智能手机平台系统 (2)1.3 课题来源 (3)2 基于Android平台计算器相关技术概述 (4)2.1 Android手机平台 (5)2.1.1 Android起源及优势 (5)2.1.2 Android体系结构 (5)2.1.3 Android平台功能特征 (7)2.2 Android SDK介绍 (9)2.3 XML技术 (10)2.4 JNI技术 (11)3 基于Android平台计算器设计 (12)3.1 系统的总体设计 (12)3.2 程序流程和系统功能设计 (13)3.2.1 程序流程设计 (13)3.2.2 系统功能设计 (14)3.3基于Android平台系统具体设计 (15)3.3.1 总体模块详细设计 (15)3.3.2 输入模块详细设计 (16)3.3.3 显示模块详细设计 (16)3.3.4 计算模块详细设计 (17)4 计算器系统实现 (18)4.1 Android应用程序构成 (18)4.2 Android应用系统文件结构 (19)4.3 构建Android应用程序用户界面 (21)4.3.1 Android应用程序界面组件 (21)4.3.2 Android应用系统界面组件 (22)4.3.3 Android用户界面的实现 (24)4.4 计算模块的实现 (28)4.5 计算器演示 (30)5 结论 (32)谢辞 (33)参考文献 (34)附录1: (36)附录2: (38)1 引言1.1 课题背景及意义1.1.1 课题背景随着社会的发展,经济水平的提高,手机越来越普及。
第1篇一、实验目的1. 熟悉安卓开发环境及工具的使用。
2. 掌握安卓应用程序的基本开发流程。
3. 学习安卓界面设计、布局、事件处理等基本技能。
4. 提高编程能力及团队协作能力。
二、实验环境1. 操作系统:Windows 102. 开发工具:Android Studio3.53. 编程语言:Java4. 虚拟机:Android 9.0 (Pie)三、实验内容1. 创建安卓项目2. 设计界面3. 编写功能代码4. 测试与调试四、实验步骤1. 创建安卓项目(1)打开Android Studio,点击“Start a new Android Studio project”;(2)选择“Empty Activity”模板,点击“Next”;(3)输入项目名称、保存位置等信息,点击“Finish”;(4)在项目目录中,找到MainActivity.java文件,修改其中的代码,以实现特定功能。
2. 设计界面(1)打开res/layout/activity_main.xml文件;(2)使用布局编辑器设计界面,添加控件(如Button、EditText等);(3)设置控件的属性(如文本、颜色、大小等)。
3. 编写功能代码(1)在MainActivity.java文件中,编写代码实现功能;(2)例如,编写按钮点击事件,实现数据计算、页面跳转等操作。
4. 测试与调试(1)在Android Studio中,点击“Run”按钮,启动模拟器或连接真机进行测试;(2)观察程序运行效果,如有问题,进行调试;(3)根据需要,修改代码,直至程序正常运行。
五、实验结果与分析1. 实验结果本次实验成功创建了一个安卓应用程序,实现了简单的功能,如按钮点击事件、页面跳转等。
2. 实验分析(1)在创建安卓项目时,熟悉了Android Studio的使用,掌握了项目结构及文件管理方法;(2)在设计界面时,学会了使用布局编辑器,掌握了常用控件的属性设置;(3)在编写功能代码时,学习了Java编程语言的基本语法,掌握了事件处理及页面跳转等操作;(4)在测试与调试过程中,提高了问题定位及解决能力。
制作⼀个简易计算器——基于AndroidStudio实现⼀个计算器Android程序的源码部分分为主⼲和细节两部分。
⼀、主⼲1. 主⼲的构成计算器的布局事件(即计算器上的按钮、⽂本框)监听实现计算2. 详细解释 假设我们的项⽬名为Calculator,⽽布局名称(Layout Name)为默认的activity_main 。
即设置如下图所⽰: 在这种前提下,有:设置计算器布局的⽂件:Calculator/app/src/main/res/layout/activity_main.xml事件监听和计算实现在同⼀个⽂件⾥:Calculator/app/src/main/java/下的⼀个⼦⽬录⾥的MainActivity.java 即如下图所⽰:计算器布局代码(写在activity_main.xml⽂件⾥):1<?xml version="1.0" encoding="utf-8"?>2<ScrollView xmlns:android="/apk/res/android"3 android:layout_width="fill_parent"4 android:layout_height="wrap_content"5>6<LinearLayout7android:layout_width="fill_parent"8 android:layout_height="fill_parent"9 android:orientation="vertical">10<EditText11android:id="@+id/input"12 android:layout_width="fill_parent"13 android:layout_height="wrap_content"14 android:layout_gravity="center"15 android:editable="false"16 android:hint="@string/shuru"/>1718<EditText19android:id="@+id/output"20 android:layout_width="fill_parent"21 android:layout_height="wrap_content"22 android:layout_gravity="center"23 android:editable="true"24 android:gravity="right"25 android:hint="@string/shuchu"/>2627<RelativeLayout28android:layout_width="fill_parent"29 android:layout_height="wrap_content">3031<Button32android:id="@+id/seven"33 android:layout_width="80dp"34 android:layout_height="70dp"35 android:layout_alignParentLeft="true"36 android:text="@string/seven"37 android:textSize="40sp"/>3839<Button44 android:text="@string/eight"45 android:textSize="40sp"/>4647<Button48android:id="@+id/nine"49 android:layout_width="80dp"50 android:layout_height="70dp"51 android:layout_toRightOf="@id/eight"52 android:text="@string/nine"53 android:textSize="40sp"/>5455<Button56android:id="@+id/add"57 android:layout_width="80dp"58 android:layout_height="70dp"59 android:layout_alignParentRight="true"60 android:layout_toRightOf="@id/nine"61 android:text="@string/add"62 android:textSize="40sp"/>6364<Button65android:id="@+id/four"66 android:layout_width="80dp"67 android:layout_height="70dp"68 android:layout_alignParentLeft="true"69 android:layout_below="@id/seven"70 android:text="@string/four"71 android:textSize="40sp"/>7273<Button74android:id="@+id/five"75 android:layout_width="80dp"76 android:layout_height="70dp"77 android:layout_below="@id/eight"78 android:layout_toRightOf="@id/four"79 android:text="@string/five"80 android:textSize="40sp"/>8182<Button83android:id="@+id/six"84 android:layout_width="80dp"85 android:layout_height="70dp"86 android:layout_below="@id/nine"87 android:layout_toRightOf="@id/five"88 android:text="@string/six"89 android:textSize="40sp"/>9091<Button92android:id="@+id/subtract"93 android:layout_width="80dp"94 android:layout_height="70dp"95 android:layout_alignParentRight="true"96 android:layout_below="@id/add"97 android:layout_toRightOf="@id/six"98 android:text="@string/subtract"99 android:textSize="40sp"/>100101<Button102android:id="@+id/one"103 android:layout_width="80dp"104 android:layout_height="70dp"105 android:layout_alignParentLeft="true" 106 android:layout_below="@id/four"107 android:text="@string/one"108 android:textSize="40sp"/>109110<Button111android:id="@+id/two"112 android:layout_width="80dp"113 android:layout_height="70dp"114 android:layout_below="@id/five"115 android:layout_toRightOf="@id/one" 116 android:text="@string/two"117 android:textSize="40sp"/>118119<Button120android:id="@+id/three"121 android:layout_width="80dp"122 android:layout_height="70dp"123 android:layout_below="@id/six"128<Button129android:id="@+id/multiply"130 android:layout_width="80dp"131 android:layout_height="70dp"132 android:layout_alignParentRight="true" 133 android:layout_below="@id/subtract" 134 android:layout_toRightOf="@id/three" 135 android:text="@string/multiply"136 android:textSize="40sp"/>137138<Button139android:id="@+id/zero"140 android:layout_width="80dp"141 android:layout_height="70dp"142 android:layout_alignParentLeft="true" 143 android:layout_below="@id/one"144 android:text="@string/zero"145 android:textSize="40sp"/>146147<Button148android:id="@+id/clear"149 android:layout_width="80dp"150 android:layout_height="70dp"151 android:layout_below="@id/two"152 android:layout_toRightOf="@id/zero" 153 android:text="@string/clear"154 android:textSize="40sp"/>155156<Button157android:id="@+id/result"158 android:layout_width="80dp"159 android:layout_height="70dp"160 android:layout_below="@id/three"161 android:layout_toRightOf="@id/clear" 162 android:text="@string/result"163 android:textSize="40sp"/>164165<Button166android:id="@+id/divide"167 android:layout_width="80dp"168 android:layout_height="70dp"169 android:layout_alignParentRight="true" 170 android:layout_below="@id/multiply" 171 android:layout_toRightOf="@id/result" 172 android:text="@string/divide"173 android:textSize="40sp"/>174175<Button176android:id="@+id/dot"177 android:layout_width="80dp"178 android:layout_height="70dp"179 android:layout_alignParentLeft="true" 180 android:layout_below="@id/zero"181 android:text="@string/dot"182 android:textSize="40sp"/>183<Button184android:id="@+id/writeButton"185 android:layout_width="wrap_content" 186 android:layout_height="wrap_content" 187 android:layout_alignParentLeft="true" 188 android:layout_below="@id/dot"189 android:text="@string/write"190 android:textSize="40sp"/>191<Button192android:id="@+id/readButton"193 android:layout_width="wrap_content" 194 android:layout_height="wrap_content" 195 android:layout_alignParentRight="true" 196 android:layout_below="@id/dot"197 android:text="@string/read"198 android:textSize="40sp"/>199200<CheckBox201android:id="@+id/appendBox"202 android:text="@string/appendBox"203 android:layout_width="wrap_content" 204 android:layout_height="wrap_content" 205 android:layout_alignParentBottom="true" 206 android:layout_toLeftOf="@+id/divide" 207 android:layout_toStartOf="@+id/divide"212213<EditText214215android:layout_width="match_parent"216 android:layout_height="wrap_content"217 android:id="@+id/textView"/>218219<EditText220221android:layout_width="match_parent"222 android:layout_height="wrap_content"223 android:id="@+id/displayView"/>224225<EditText226android:id="@+id/errorzero"227 android:layout_width="fill_parent"228 android:layout_height="wrap_content"229 android:layout_gravity="center"230 android:editable="false"231 android:gravity="center"232/>233<EditText234android:id="@+id/resultText"235 android:layout_width="fill_parent"236 android:layout_height="wrap_content"237 android:layout_gravity="center"238 android:editable="false"239 android:gravity="left"240 android:text="@string/resultText"241/>242</LinearLayout>243</ScrollView>View Code事件监听和实现计算代码(写在MainActivity.java⽂件⾥)1package com.example.lenovo.calculator;2345import android.app.Activity;6import android.content.Context;7import android.os.Bundle;8import android.view.View;9import android.view.View.OnClickListener;10import android.widget.Button;11import android.widget.CheckBox;12import android.widget.EditText;1314import java.io.FileInputStream;15import java.io.FileNotFoundException;16import java.io.FileOutputStream;17import java.io.IOException;1819public class MainActivity extends Activity {20/**21 * Called when the activity is first created.22*/23private EditText output = null;24private EditText input = null;25private Button btn0 = null;26private Button btn1 = null;27private Button btn2 = null;28private Button btn3 = null;29private Button btn4 = null;30private Button btn5 = null;31private Button btn6 = null;32private Button btn7 = null;33private Button btn8 = null;34private Button btn9 = null;35private Button btnadd = null;36private Button btnsubtract = null;37private Button btnmultiply = null;38private Button btndivide = null;39private Button btnclear = null;40private Button btnresult = null;41private Button btndot = null;46private Button writeButton = null;47private Button readButton = null;48private CheckBox appendBox = null;49private EditText textView = null;50private EditText displayView = null;51public String FILE_NAME = "fileDemo.txt";525354private String str = "";//保存数字55private String strold = "";//原数字56private char act = ' ';//记录“加减乘除等于”符号57private int count = 0;//判断要计算的次数,如果超过⼀个符号,先算出来⼀部分58private Float result = null;//计算的输出结果59private Boolean errBoolean = false;//有错误的时候为true,⽆错为false60private Boolean flagBoolean = false;//⼀个标志,如果为true,可以响应运算消息,如果为false,不响应运算消息,只有前⾯是数字才可以响应运算消息 61private Boolean flagDot = false; //⼩数点标志位62636465 @Override66public void onCreate(Bundle savedInstanceState) {67super.onCreate(savedInstanceState);68 setContentView(yout.activity_main);6970 output = (EditText) findViewById(R.id.output);71 input = (EditText) findViewById(R.id.input);7273 errorzero = (EditText) findViewById(R.id.errorzero);74 resultText = (EditText) findViewById(R.id.resultText);75 writeButton = (Button) findViewById(R.id.writeButton);76 readButton = (Button) findViewById(R.id.readButton);77 textView = (EditText) findViewById(R.id.textView);78 displayView = (EditText) findViewById(R.id.displayView);79 appendBox = (CheckBox) findViewById(R.id.appendBox);8081 btn0 = (Button) findViewById(R.id.zero);82 btn1 = (Button) findViewById(R.id.one);83 btn2 = (Button) findViewById(R.id.two);84 btn3 = (Button) findViewById(R.id.three);85 btn4 = (Button) findViewById(R.id.four);86 btn5 = (Button) findViewById(R.id.five);87 btn6 = (Button) findViewById(R.id.six);88 btn7 = (Button) findViewById(R.id.seven);89 btn8 = (Button) findViewById(R.id.eight);90 btn9 = (Button) findViewById(R.id.nine);91 btnadd = (Button) findViewById(R.id.add);92 btnsubtract = (Button) findViewById(R.id.subtract);93 btnmultiply = (Button) findViewById(R.id.multiply);94 btndivide = (Button) findViewById(R.id.divide);95 btnclear = (Button) findViewById(R.id.clear);96 btnresult = (Button) findViewById(R.id.result);97 btndot = (Button) findViewById(R.id.dot);98//设置按钮侦听事件99 btn0.setOnClickListener(listener);100 btn1.setOnClickListener(listener);101 btn2.setOnClickListener(listener);102 btn3.setOnClickListener(listener);103 btn4.setOnClickListener(listener);104 btn5.setOnClickListener(listener);105 btn6.setOnClickListener(listener);106 btn7.setOnClickListener(listener);107 btn8.setOnClickListener(listener);108 btn9.setOnClickListener(listener);109//执⾏运算110 btnadd.setOnClickListener(listener);111 btnsubtract.setOnClickListener(listener);112 btnmultiply.setOnClickListener(listener);113 btndivide.setOnClickListener(listener);114 btnclear.setOnClickListener(listener);115 btnresult.setOnClickListener(listener);116117 btndot.setOnClickListener(listener);118119 writeButton.setOnClickListener(writelistener);120 readButton.setOnClickListener(readlistener);121122123// ATTENTION: This was auto-generated to implement the App Indexing API.124// See https://g.co/AppIndexing/AndroidStudio for more information.125 }130public void onClick(View v) {131// TODO Auto-generated method stub132switch (v.getId()) {133//输⼊数字134case R.id.zero:135 num(0);136break;137case R.id.one:138 num(1);139break;140case R.id.two:141 num(2);142break;143case R.id.three:144 num(3);145break;146case R.id.four:147 num(4);148break;149case R.id.five:150 num(5);151break;152case R.id.six:153 num(6);154break;155case R.id.seven:156 num(7);157break;158case R.id.eight:159 num(8);160break;161case R.id.nine:162 num(9);163break;164165case R.id.dot:166 dot();167break;168//执⾏运算169case R.id.add:170 add();171break;172case R.id.subtract:173 sub();174break;175case R.id.multiply:176 multiply();177break;178case R.id.divide:179 divide();180break;181case R.id.clear:182 clear();183break;184//计算结果185case R.id.result:186 result();187if (!errBoolean && flagBoolean) {188 output.setText(String.valueOf(result));189 }190 resultText.setText(strold + act + str + "=" + result+" "); 191break;192193default:194break;195196 }197 input.setText(strold + act + str);198 output.setText(String.valueOf(result));199200201 }202 };203204private OnClickListener writelistener = new OnClickListener() {205 @Override206public void onClick(View view) {207//textView.setText("");208209 FileOutputStream fos = null;214 fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE); 215 }216 String text = resultText.getText().toString();217 fos.write(text.getBytes());218 textView.setText("⽂件写⼊成功,写⼊长度:" + text.length()); 219//resultText.setText("");220221 } catch (FileNotFoundException e) {222 e.printStackTrace();223 } catch (IOException e) {224 e.printStackTrace();225 }226finally {227if (fos != null)228try {229 fos.flush();230 fos.close();231 } catch (IOException e) {232 e.printStackTrace();233 }234 }235 }236 };237private OnClickListener readlistener = new OnClickListener() {238 @Override239public void onClick(View view) {240241 displayView.setText("");242 FileInputStream fis = null;243try {244 fis = openFileInput(FILE_NAME);245if (fis.available() == 0) {246return;247 }248byte[] readBytes = new byte[fis.available()];249while (fis.read(readBytes) != -1) {250251 }252 String text = new String(readBytes);253 displayView.setText(text);254 textView.setText("⽂件读取成功,写⼊长度:" + text.length()); 255256 } catch (FileNotFoundException e) {257 e.printStackTrace();258 } catch (IOException e) {259 e.printStackTrace();260 }261262 }263 };264265private void dot() {266// TODO Auto-generated method stub267268if (!flagDot) {269 str = str + ".";270 flagBoolean = false;271 flagDot = true;272 }273 }274275private void clear() {276// TODO Auto-generated method stub277 str = strold = "";278 count = 0;279 act = ' ';280 result = null;281 flagBoolean = false;282 flagDot = false;283 input.setText(strold + act + str);284 output.setText("");285 errorzero.setText("");286 displayView.setText("");287 textView.setText("");288 resultText.setText("");289 }290291private void divide() {292// TODO Auto-generated method stub293if (flagBoolean) {299300private void multiply() {301// TODO Auto-generated method stub 302if (flagBoolean) {303 check();304 act = '*';305 flagBoolean = false;306 }307 }308309private void sub() {310// TODO Auto-generated method stub 311if (flagBoolean) {312 check();313 act = '-';314 flagBoolean = false;315 }316 }317318private void add() {319// TODO Auto-generated method stub 320if (flagBoolean) {321 check();322 act = '+';323 flagBoolean = false;324 }325 }326327private void check() {328// TODO Auto-generated method stub 329if (count >= 1) {330 result();331 str = String.valueOf(result);332 }333 strold = str;334 str = "";335 count++;336 flagDot = false;337 errorzero.setText("");338 }339340//计算输出结果341private void result() {342// TODO Auto-generated method stub 343if (flagBoolean) {344 Float a, b;345346 a = Float.parseFloat(strold);347 b = Float.parseFloat(str);348349if (b == 0 && act == '/') {350 clear();351 errorzero.setText("除数不能为零!"); 352//output.setText("除数不能为零!"); 353354355//errBoolean=true;356 }357358359if (!errBoolean) {360switch (act) {361case '+':362 result = a + b;363break;364case '-':365 result = a - b;366break;367case '*':368 result = a * b;369break;370case '/':371 result = a / b;372break;373374default:375break;376 }377 }383private void num(int i) {384// TODO Auto-generated method stub385 str = str + String.valueOf(i);386 flagBoolean = true;387 errorzero.setText("");388 }389390 }View Code⼆、细节 仅仅将主⼲部分代码copy下来并不能运⾏程序,因为主⼲代码调⽤了⼀些⽂件的代码,这些⽂件就是我们所说的细节。
安卓开发实验报告安卓开发实验报告引言:在当今数字化时代,移动应用的需求日益增长。
安卓系统作为全球最大的移动操作系统之一,为开发者提供了广阔的创作空间。
本篇实验报告将介绍我在安卓开发实验中的学习与实践经验,包括开发环境搭建、应用开发流程、遇到的问题及解决方法等。
一、开发环境搭建为了进行安卓应用的开发,首先需要搭建相应的开发环境。
我选择使用Android Studio作为开发工具,因为它是谷歌官方推荐的集成开发环境(IDE),提供了丰富的开发工具和资源。
在搭建开发环境的过程中,我遇到了一些问题。
首先是安装Android Studio的过程中,由于网络问题导致下载速度缓慢。
为了解决这个问题,我选择了更稳定的网络环境,并使用下载工具进行加速。
其次是在安装过程中,由于系统版本不兼容,出现了一些依赖错误。
我通过查阅官方文档和论坛帖子,找到了解决方法,并成功完成了安装。
二、应用开发流程在完成开发环境搭建后,我开始进行应用开发。
首先,我选择了一个简单的计算器应用作为实验项目。
在开发过程中,我按照以下流程进行:1.需求分析:明确计算器应具备的功能,如加减乘除、括号运算等。
2.界面设计:设计应用的用户界面,包括按钮、文本框等组件的布局。
3.逻辑实现:编写代码实现计算器的逻辑功能,包括用户输入的处理和计算结果的显示。
4.测试与调试:对应用进行测试,发现并修复潜在的问题和错误。
在整个开发过程中,我遇到了一些挑战。
首先是对安卓开发框架的不熟悉,需要学习新的语法和API。
其次是在界面设计和逻辑实现中,需要综合运用不同的知识和技巧。
为了解决这些问题,我参考了官方文档、在线教程和开发者社区,积极寻求帮助和学习。
三、遇到的问题及解决方法在应用开发中,我遇到了一些常见的问题,并通过不同的方法解决了它们。
1.界面布局问题:在设计计算器界面时,我遇到了组件布局的困难。
为了解决这个问题,我学习了安卓开发中的布局管理器,并使用了线性布局和相对布局来实现界面的灵活布局。
Android平台BMI测试精灵课设课程设计的题目Android平台BMI指数计算器的设计与实现<第一章> 需求分析<一> 任务概述BMI程序中需要主界面, 各种其他界面, 所以要很好的将各个界面的连接, 可以从点击按钮连接, 也可以用手势连接下一个界面。
对于音乐图片的选择要能结合用户, 和审美的观念。
尽量做出的界面美观, 让用户能很好的使用。
对于按钮的使用, 如果能了解按钮的各种参数, 也能将一个界面设计的很漂亮首先必须了解, JAVA是面向对象的编程语言, 所以掌握好Java的基本语句是很重要的。
1清楚掌握基本数据类型, 在BMI中因为是大量处理各种类型的数据, 所以对数据类型的变量要求比较高。
2掌握JAVA画图函数的使用;3要掌握android的布局函数;4掌握android的debug调试功能的应用, 能够及时排除错误。
5 要能将java知识和android必要知识有机的结合;根据以上调查分析, 可以给出其现行业务流程图<二>功能需求经过以上详细的用户调查, 在现行业务流程和数据分析的基础上, 基本可以确定系统设计必须达到的目标。
以下是BMI必须具备的功能:1.计算BMI值并存储计算结果及计算日期;2.根据计算所得BMI值给用户称赞或警告提示(动画或音频、图片), 并给出相应的建议;向用户图形化展示指定时间段内用户BMI值得变化情况, 可以采用折线图或柱状图展示;<三>性能需求为了保证系统能够稳定、可靠的运行, BMI应该满足以下的性能需求:1.处理的准确性和及时性处理的准确性和及时性是BMI的必要性能。
在系统设计和开发过程中, 要充分考虑系统当前和将来可能承受的工作量, 使系统的处理能力和响应时间能够满足用户对信息处理的需求。
2.要能加入音乐以及动画效果音乐和动画对一款Android软件是必须的, 能让用户不仅有视觉的体验, 更要有听觉的体验, 让用户能喜欢。
(完整版)基于Android计算器的设计与应⽤毕业论⽂北京北⼤⽅正软件技术学院毕业设计(论⽂)题⽬:基于Android计算器的设计与应⽤系别:软件⼯程分院专业:软件技术学号:姓名:王可可指导⽼师:李强完成⽇期:2014年5 ⽉20 ⽇北京北⼤⽅正软件技术学院毕业设计(论⽂)成绩评定表(理科)年级 11级专业软件技术姓名王可可学号论⽂题⽬:基于Android计算器的设计与应⽤指导教师:李强项⽬评分标准优秀良好合格不合格选题优秀:选题有重要理论意义和实际价值;良好:选题有较强理论意义和实际价值;合格:选题有⼀定理论意义和实际价值;不合格:选题⽋妥。
基础知识优秀:有坚实的理论基础和系统深⼊的专业知识;良好:有较坚实的理论基础和系统深⼊的专业知识;合格:有⼀定的理论基础和专业知识;不合格:基础理论不够全⾯,专业知识不系统。
实践能⼒优秀:体现出较强的实践⼯作能⼒;良好:体现出较好的实践⼯作能⼒;合格:体现出⼀定的实践⼯作能⼒;不合格:体现出⼯作能⼒较差。
写作能⼒优秀:条理清楚,层次分明,⽂笔流畅,学风严谨;良好:条理性好,层次分明,⽂字通顺,⼯作认真;合格:条理较好,层次较分明,⽂字较通顺;不合格:条理不清,写作较差。
论⽂综合评价优秀良好合格不合格指导教师评定意见签字:年⽉⽇毕业设计领导⼩组签字签字:年⽉⽇摘要⽬前⼿机可以说是普及率⾮常⾼的电⼦设备了,由于其便于携带,使⽤⽅便,资费适中等等原因,现在⼿机已经在⼀定程度开始代替固定电话的通话功能,以及⼀些原来电脑软件上的功能了。
⼿机上的软件也随着⼿机的发展变得丰富起来了,时⾄今⽇已经出现了很多专门制作⼿机软件的公司,虽然制作的多是游戏软件,但是⼀些辅助性的⼯具软件也有了很多。
⼿机软件简单说就是可以安装在⼿机上的软件,作⽤⾃然是扩展⼿机的原始功能,使⼿机变得更加的实⽤。
但是⼿机的软件需要安装到相应的系统中才能完美的运⾏。
正是由于考虑到以上这些情况,Android系统是现今⽐较流⾏的⼿机系统,所以本系统选择了java语⾔来作为开发语⾔。
a n d r o i d开发计算器设计开发报告Revised by Petrel at 2021《安卓开发》程序设计报告题目简单计算器开发专业(班级)网工111班姓名张波波学号指导教师赵(老师)日期2014.5.7目录一、设计说明: (4)1.设计内容:Android简单应用程序开发,简单计算器。
(4)2程序说明: (4)二、开发环境: (4)三、概要设计: (4)3.1系统的总体 (4)四、程序流程和系统功能设计 (5)4.1程序流程设计 (5)4.2.系统功能设计 (6)4.3基于Android平台系统具体设计 (6)4.3.1总体模块详细设计 (6)4.3.2输入模块详细设计 (6)4.3.3显示模块详细设计 (7)4.3.4计算模块详细设计 (7)五、计算器系统实现 (8)5.1Android应用程序构成 (8)六、截图说明 (9)1、图标 (9)2界面 (9)3运算界面 (9)4错误输入 (9)5设计平台界面 (9)6签名导出apk (9)七、总结 (9)课程设计任务书一、设计说明:1.设计内容:Android简单应用程序开发,简单计算器。
2程序说明:1、计算器界面友好,方便使用。
2、具有基本的加、减、乘、除功能,还有+—、开方、平方功能。
3、能够判断用户输入运算数是否正确。
4、4、支持小数运算。
5、具有退格功能,能够删除最后一个输入,ce。
6、具有清除功能,删除所有,c。
7、具有结果存储功能,能够显示存储器状态,支持触屏手机。
8、9、支持最低版本2.0,最高版本4.4。
开发时为4.2二、开发环境:开发环境:本系统是采用Eclipse+EclipseMe+JDK+ADT作为开发平台。
事实上为了节约时间就直接用Google公司安给的直接绑定好的adt-bundle-windows-x86_64开发,只需要配置下环境变量,无需要关联等操作。
三、概要设计:3.1系统的总体整个程序基于android技术开发,出总体模块外主要分为输入模块、显示模块以及计算模块(包括一些其她功能)这三大部分。
安卓计算器实验报告一、实验目的本次实验的目的是开发一款功能齐全、操作便捷的安卓计算器应用程序,以满足用户在日常生活和工作中对基本计算和科学计算的需求。
二、实验环境1、操作系统:Windows 102、开发工具:Android Studio3、编程语言:Java 和 XML4、测试设备:安卓手机(型号:_____ ,操作系统版本:_____ )三、实验步骤(一)需求分析在开始开发之前,对计算器的功能需求进行了详细的分析。
确定了以下主要功能:1、基本四则运算(加、减、乘、除)2、百分比计算3、平方根计算4、幂运算5、括号优先级计算6、历史记录功能7、清除和撤销操作(二)界面设计使用 XML 布局文件设计计算器的用户界面。
界面包括数字按钮、运算符按钮、等号按钮、清除按钮、撤销按钮和显示计算结果和表达式的文本框。
(三)功能实现1、数字和运算符的点击事件处理为每个数字按钮和运算符按钮设置点击事件监听器。
当用户点击数字按钮时,将数字添加到表达式中;点击运算符按钮时,根据当前的计算状态进行相应的处理。
2、计算逻辑使用 Java 中的数学运算方法实现四则运算、百分比计算、平方根计算和幂运算。
根据运算符的优先级进行计算,确保计算结果的准确性。
3、括号处理通过栈数据结构来处理括号,确保括号内的表达式先计算。
4、历史记录使用数据库来存储计算的历史记录,包括表达式和结果。
用户可以查看历史记录,并重新使用其中的表达式进行计算。
5、清除和撤销操作实现清除按钮的功能,将表达式和结果清空;撤销按钮的功能则是回退上一步的操作。
(四)测试与优化1、功能测试对计算器的各项功能进行了全面的测试,包括基本运算、复杂表达式计算、括号计算、历史记录查看等。
确保每个功能都能正常工作,计算结果准确无误。
2、性能测试对计算器的响应速度进行了测试,优化了计算算法和数据结构,提高了计算的效率。
3、兼容性测试在不同型号和操作系统版本的安卓手机上进行了测试,确保计算器应用在各种设备上都能正常运行,界面布局合理。
实训报告实训项目名称基于Android计算器的开发与测试二级学院信息工程学院专业班级 11级姓名学号日期 2014-11-19摘要Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。
Android的功能十分强大,成为当今软件行业的一股新兴力量。
Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的,应用程序可以轻松的嵌入网络、应用程序可以并行运行。
而简单计算器又是手机上必备的小程序,所以此次创新实践很有意义。
并且具有很强的使用性。
关键字:计算器,Android,移动设备目录1 绪论 (5)1.1 研究背景 (5)2 游戏系统开发平台 (6)3 系统分析与设计 (7)3.1 可行性研究 (7)3.2 系统的需求分析 (7)3.3 系统的优势 (8)3.4系统的流程 (8)4.模板设计与实现 (9)5 测试用列和结果 (12)5.1测试用列 (12)5.2测试用列展示图 (12)6 小结 (15)参考文献 (16)附录: (17)1 绪论1.1研究背景(1)计算器背景目前手机可以说是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开始代替固定电话的通话功能,以及一些原来电脑软件上的功能了。
手机上的软件也随着手机的发展变得丰富起来了,时至今日已经出现了很多专门制作手机软件的公司,虽然制作的多是游戏软件,但是一些辅助性的工具软件也有了很多.我们在此次系统中所做的工作主要是设计整个系统以及利用编程语言实现整个系统,使系统能够正确的运行计算功能。
(2)Android系统简介Android 系统构架简介:Android是一个基于Linux®V2.6内核的交互性操作环境,同时它也是一个分层系统,Android系统架构显示如下图1.1。
图1.1系统架构图应用层由所有的Android应用程序组成。
其中包括电子邮件客户端,SMS 程序,地图,浏览器,联系人及其他。
所有的应用程序都是用Java编程语言编写的。
1.Activity 顾名思义,Activity就是活动。
应用程序必须至少包含一个Activity。
Activity提供了一个虚拟的用户接口,每一个Activity都有一个默认的窗口可以用来显示用户界面,一般情况下,它是全屏的窗口。
例如,影音播放软件的每个用户界面就是Activity。
2.Service Service与Activity的主要区别在于,Service是在后台活动的,它没有用户界面。
典型的应用场景是,用户选择了一个播放列表开始播放后,离开了该用户界面(Activity),如果仍然希望歌曲不会暂停,就可以用Service 去调用播放器,而不是在Activity中调用播放器。
3.Intent 在Android中,每一个行为都可以抽象为一个Intent。
可以简单地把Intent理解为一个包含了数据的消息。
Intent可以用于启动一个Act-ivity或者Service,可以用于进程间的通信。
事实上,应用程序的启动也是通过Intent实现的。
4.Content providers Android平台内置了一套SQLite数据储存机制,并包含一系列管理SQLite Database的相关方法。
在应用程序中,可以通过Content prov-iders访问数据库。
每个Content provider都定义了一系列的方法用于访问它对应的数据库。
应用程序在新建数据库时也可以定义相应的Con-tent provider用于向其他应用程序共享数据。
一般情况下,应用程序不直接调用Content provider 定义的函数,而是通过ContentResolver间接调用。
2游戏系统开发平台采用Eclipse开发工具,在Windows 7下进行,基于Android 4.2.2操作系统,使用的语言是Java语言。
环境搭建:1)JDK安装2)Eclipse安装3)Android SDK安装4)ADT安装创建AVDJDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。
自从Java诞生以来,JDK已经成为最广泛的Java SDK。
JDK是整个Java的核心内容,包括了Java运行环境、Java工具和Java基础类库三部分。
从Sun 的JDK1.5开始,提供了一些非常使用的功能,其版本也不断更新,运行效率得到了非常大的提高。
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组建构建开发环境。
Eclipse附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
Android SDK即软件开发工具包(software development kit)。
被软件开发工程师用于为特定的软件包、软件架构、硬件平台、操作系统等建立应用软件工具的集合。
因此Android SDK是Android专属的开发工具包。
其授权协议为Apache,开发语言为Java、需要Android操作系统的支持。
[2]3 系统分析与设计3.1可行性研究可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的,经过最初的设计目标和进行的实时调查得出以下四点的可行性分析:(1)技术可行性:Eclipse + Android ADT的技术已经较为成熟,通过SUN 公司(现被ORCEL公司收购)推出的跨平台、动态的JA V A语言进行开发。
(2)运行可行性:该系统需要Android虚拟机环境,Eclipse中安装ADT,DDMS等Google Android相关插件。
其运行环境已经相当稳定,它功能丰富,包括了完备的Android程序的编码、调试、测试和发布功能,其中支持所有Android 应用开发相关技术,包括SQLite,Skia,3D制作,Android XML,能够很好的发布Android的应用程序APK包。
(3)法律可行性:因为是自主开发设计,所以不会构成侵权,在法律上是可行的。
通过以上的可行性分析,将采用Eclipse+Android ADT + DDMS技术,运用JA V A语言进行系统的开发。
3.2系统的需求分析根据分析需求,这个系统必须实现以下的功能:(1) 实现简单的数字计算功能。
作为计算器,其核心就是加减乘除。
(2) 能够在手机里面以良好的界面。
简单计算器能够给予用户良好的人机互动界面。
3.3系统的优势Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android 应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。
3.4系统的流程本程序的流程是一个开机画面,开机画面之后就是计算机的主页面了所有这个简单程序的流程图如图3.1所示。
图 3.1 流程图4.模板设计与实现4.1计算模块详细设计系统要完成整个的计算器的计算功能,那么计算模块就是整个系统的重点模块。
没有计算模块系统就不能顺利的完成计算,就无法达到用户的要求。
所以计算模块的设计也是本次系统设计中的重点。
系统想要能在屏幕上显示出计算器的样子要有整体的布局,在本模块中要完成布局的具体设计,使用户能够看到整个计算器的画面。
同时系统想完成计算功能必须要处理用户的输入,当输入模块的监听传到计算模块中时,计算模块就要根据相应的方法进行进一步的处理。
这部分主要是对输入进行的逻辑判断,基本会通过if else来实现逻辑判断。
4.2用户界面设计界面设计应该尽量简洁而美观,应该具有良好的交互性。
当然,我们每个人可以根据自己的喜好来进行设计,根据我个人的喜好,我最终设计出来的计算器界面如图4.1所示。
图4.1 界面图部分代码:<TableLayout xmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="wrap_content"android:textSize="42sp"android:stretchColumns="1"><TableRow><EditText android:id="@+id/result"android:layout_width="fill_parent"android:layout_height="wrap_content"android:background="@android:drawable/editbox_background"android:layout_span="4"android:textSize="48sp"android:gravity="right|center_vertical"android:cursorVisible="false"android:editable="false"android:lines="1"/></TableRow>4.3计算模块设计的实现计算模块则主要描述了计算器的整体,实现了计算器的界面,定义了用户单击的处理办法,通过定义的处理办法来完成用户的操作命令,实现用户的计算要求,这些计算要求包括了数值的输入,小数点的输入,正负号的输入,记忆相关功能的完成,加、减、乘、除等各种计算功能的完成,运算符的替换,初始化系统等等。
部分代码:private class CommandAction implements OnClickListener {@Overridepublic void onClick(View view) {Button btn = (Button) view;String inputCommand = (String) btn.getText();if (firstFlag) {// 首次输入"-"的情况if (inputCommand.equals("-")) {editText.setText("-");// 显示区域的内容设置为"-"firstFlag = false;// 改变首次输入的标记}} else {if (!clearFlag) {// 如果flag=false不需要清空显示区的值,就调用方法计算jsp(Double.parseDouble(editText.getText().toString()));// 保存显示区域的值,并计算}// 保存你点击的运算符lastCommand = inputCommand;clearFlag = true;// 因为我这里已经输入过运算符, }}}加、减、乘、除等各种计算功能的实现:private void jsp(double x) {if (lastCommand.equals("+")) {result += x;} else if (lastCommand.equals("-")) {result -= x;} else if (lastCommand.equals("*")) {result *= x;} else if (lastCommand.equals("/")) {result /= x;} else if (lastCommand.equals("=")) {result = x;}editText.setText("" + result);}}5 测试用列和结果5.1测试用列通过以下的测试用例进行对游戏各功能模块的测试并加以修改,如表 5.1所示。