Android简单计算器课程设计

合集下载

简易计算器的课程设计

简易计算器的课程设计

简易计算器的课程设计一、课程目标知识目标:1. 学生能理解简易计算器的内部工作原理,掌握其基本功能操作。

2. 学生能运用计算器进行基本的算术运算,包括加、减、乘、除以及百分比计算。

3. 学生理解并掌握计算器上各个按键的功能及其在数学运算中的应用。

技能目标:1. 学生能够使用计算器辅助解决实际问题,如购物找零、面积计算等。

2. 学生通过计算器的使用,提高数据输入、结果读取和运算过程纠错的能力。

3. 学生能够结合数学知识,利用计算器进行数据的简单统计分析。

情感态度价值观目标:1. 培养学生对待科学技术的积极态度,认识到计算器在日常生活和学习中的便捷性。

2. 增强学生的团队协作意识,通过小组活动,学会分享和交流使用计算器的经验。

3. 培养学生遵守计算器使用的规则,养成良好的计算器使用习惯,珍惜公共资源。

本课程设计针对的学生群体为小学高年级学生,他们已经具备了一定的数学基础和操作简单电子设备的能力。

课程性质为实用技能型,旨在通过简易计算器的教学,将理论知识与实践操作相结合,提高学生解决实际问题的能力。

在教学要求上,注重培养学生的动手操作能力和创新思维,同时强调情感态度的培养,使学生在学习技能的同时,也能形成正确的价值观。

通过具体学习成果的分解,教师可进行有针对性的教学设计和学习效果评估。

二、教学内容本章节教学内容依据课程目标,结合教材内容,科学系统地组织以下部分:1. 简易计算器基础知识:介绍计算器的发展历程、种类及简易计算器的结构组成,对应教材第二章第一节。

2. 计算器按键功能:详细讲解各按键的功能及其在数学运算中的应用,对应教材第二章第二节。

3. 基本运算操作:教授如何使用计算器进行加、减、乘、除以及百分比计算,对应教材第二章第三节。

4. 计算器在实际应用中的使用:结合实际案例,如购物找零、面积计算等,展示计算器的实用性,对应教材第二章第四节。

5. 数据的简单统计分析:利用计算器进行数据输入、处理和简单统计分析,对应教材第二章第五节。

简易计算器设计的课程设计

简易计算器设计的课程设计

简易计算器设计的课程设计一、课程目标知识目标:1. 学生能够理解简易计算器的基本原理,掌握其设计流程。

2. 学生能够运用所学编程知识,实现简易计算器的功能。

3. 学生能够了解并掌握计算器界面设计的基本原则。

技能目标:1. 学生能够运用所学的编程技能,独立完成简易计算器的设计与开发。

2. 学生能够通过编写代码,实现计算器的加、减、乘、除等基本运算功能。

3. 学生能够运用调试工具,对计算器程序进行测试和优化。

情感态度价值观目标:1. 学生在课程学习中,培养对编程的兴趣和热情,增强信息素养。

2. 学生通过团队协作,培养沟通能力和团队精神,学会共同解决问题。

3. 学生在设计与开发简易计算器的过程中,体验创新实践的过程,培养创新思维和动手能力。

课程性质:本课程为信息技术课程,旨在帮助学生将所学的编程知识运用到实际项目中,提高学生的编程实践能力和创新能力。

学生特点:六年级学生具备一定的编程基础,对新鲜事物充满好奇心,喜欢动手实践。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调动手实践,培养创新思维。

在教学过程中,关注学生的个体差异,鼓励学生相互交流、合作,共同完成学习任务。

通过本课程的学习,使学生能够将所学知识运用到实际项目中,提高解决问题的能力。

二、教学内容1. 计算器原理:介绍计算器的基本工作原理,包括算术运算逻辑、数据存储与处理等。

教材章节:第三章 计算机硬件基础2. 编程语言基础:回顾所学的编程语言(如Python),重点掌握变量定义、数据类型、运算符、条件语句和循环语句等。

教材章节:第二章 编程语言基础3. 界面设计:讲解计算器界面设计的原则和技巧,如布局、颜色、字体等。

教材章节:第四章 用户界面设计4. 编程实现计算器功能:引导学生运用所学知识,编写程序实现计算器的加、减、乘、除等基本运算功能。

教材章节:第五章 算法与程序设计5. 程序调试与优化:教授学生如何使用调试工具,对计算器程序进行测试、调试和优化。

数据结构课程设计-计算器

数据结构课程设计-计算器

数据结构课程设计-计算器数据结构课程设计计算器在计算机科学的学习中,数据结构是一门重要的基础课程。

通过这门课程的学习,我们能够深入理解和掌握如何有效地组织和管理数据,以提高程序的运行效率和性能。

本次课程设计的任务是开发一个简单的计算器程序,通过运用所学的数据结构知识,实现基本的算术运算功能。

一、需求分析首先,我们需要明确计算器程序的功能需求。

这个计算器应该能够支持常见的四则运算,即加法、减法、乘法和除法。

用户可以通过输入表达式,例如“2 +3”、“5 2”、“3 4”、“8 /2”等,程序能够正确计算并输出结果。

此外,为了提高用户体验,计算器还应该能够处理错误输入,例如输入的表达式不符合语法规则或者除数为 0 等情况,并给出相应的错误提示信息。

二、数据结构选择为了实现上述功能,我们需要选择合适的数据结构来存储和处理输入的表达式。

在这个计算器程序中,我们可以使用栈这种数据结构。

栈是一种后进先出(Last In First Out,LIFO)的数据结构,非常适合处理表达式的计算。

我们可以创建两个栈,一个用于存储操作数,另一个用于存储操作符。

当用户输入一个表达式时,我们按照从左到右的顺序逐个字符进行处理。

如果是数字,则将其转换为整数并压入操作数栈;如果是操作符,则将其压入操作符栈。

在计算过程中,我们从操作符栈中取出操作符,从操作数栈中取出相应数量的操作数进行计算,将计算结果压回操作数栈。

三、算法设计1、表达式解析算法从左到右扫描表达式。

如果遇到数字,将其作为一个整数提取出来,并压入操作数栈。

如果遇到操作符(+、、、/),则将其压入操作符栈。

如果遇到左括号“(”,则将其压入操作符栈。

如果遇到右括号“)”,则从操作符栈中弹出操作符,从操作数栈中弹出操作数,进行计算,直到遇到左括号为止。

2、计算算法当操作符栈不为空时,从操作符栈中弹出一个操作符。

根据操作符的类型,从操作数栈中弹出相应数量的操作数。

进行计算,并将结果压回操作数栈。

安卓程序课程设计

安卓程序课程设计

安卓程序课程设计一、课程目标知识目标:1. 理解安卓应用程序的基本组成结构,掌握界面布局、组件使用、事件处理等基本知识;2. 学会使用Android Studio进行安卓应用程序的开发、调试与发布;3. 了解安卓应用程序的生命周期,掌握在不同生命周期阶段进行资源管理和任务调度的方法;4. 掌握安卓应用程序的存储方式,包括SharedPreferences、SQLite数据库等。

技能目标:1. 能够运用所学知识设计并开发具有基本功能的安卓应用程序;2. 熟练使用Android Studio进行代码编写、界面布局调试与应用发布;3. 能够根据实际需求,选择合适的存储方式对数据进行管理;4. 培养良好的编程习惯,编写出结构清晰、可读性强的代码。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习安卓开发的热情;2. 增强学生的团队协作意识,培养在团队中沟通、协作解决问题的能力;3. 引导学生关注移动应用开发领域的前沿动态,培养创新意识和探索精神;4. 强化学生的法律法规意识,遵循开发过程中的道德规范和版权规定。

课程性质:本课程为实践性较强的学科,旨在培养学生掌握安卓应用程序开发的基本知识和技能。

学生特点:学生具备一定的编程基础,对移动应用开发感兴趣,但实际操作经验不足。

教学要求:注重理论与实践相结合,强调动手实践,让学生在实际操作中掌握知识,提高技能。

同时,关注学生的情感态度价值观培养,使他们在学习过程中形成良好的编程习惯和团队协作精神。

通过分解课程目标为具体的学习成果,为后续教学设计和评估提供依据。

二、教学内容1. 安卓基础入门- 安卓系统架构与开发环境搭建- 界面布局与常用组件的使用- 事件处理与界面交互2. 安卓高级特性- 安卓生命周期管理与资源调度- 数据存储与共享:SharedPreferences、SQLite数据库- 网络编程与数据传输:HTTP协议、JSON解析3. 实践项目与案例分析- 项目一:开发一个简单的计算器应用- 项目二:设计与实现一个天气查询应用- 案例分析:热门安卓应用的设计与实现4. 应用调试与发布- Logcat与调试技巧- 应用程序的打包与签名- 发布应用到应用商店教学内容安排与进度:第一周:安卓基础入门第二周:安卓高级特性第三周:实践项目一与案例分析第四周:实践项目二与案例分析第五周:应用调试与发布教材章节关联:1. 《Android基础教程》:第1-3章,涵盖安卓基础入门内容;2. 《Android进阶教程》:第4-6章,涵盖安卓高级特性内容;3. 《Android实战项目开发》:第1、3章,提供实践项目与案例分析;4. 《Android应用调试与优化》:第1、2章,涉及应用调试与发布。

Android框架上的简单计算器界面设计

Android框架上的简单计算器界面设计

为了深入理解和应用Android框架系统的控件以及更加熟练的掌握eclips的开发技巧,所以就决定做一个简单的计算器来了解和介绍一下Android界面设计的基本技巧。

界面的样子如下:这个界面由一个编辑框和很多按钮组成。

他的功能跟Windows下的计算其功能差不多,就是实现+-*/等功能。

这个还实现了一个菜单的功能。

按一下Exit就可以离开这个应用程序了。

Android框架定义了很多布局(Layout)架构。

布局就像容器,里面可以装下很多控件。

布局里面还可以套用其他的布局。

这样就可以实现界面的多样化以及设计的灵活性。

在这个界面中,我们应用了一个LinearLayout的布局,它是垂直向下扩展的。

在这个LinearLayout中,我们可以应用一个EditText和一个TableLayout 作为他的子控件。

在TableLayout布局可以实现以表格的形式来布局空间。

而TableRow是用来定义每一行。

在TableLayout中,列的宽度是取其中这一列中宽度最大的控件的宽度。

这个应用程序正好用到5x5的一个表格,TableLayout将是最好的选择了。

Android界面编程的一个优势是他的布局全部可以用xml文件来描述,实现了即改即现的方式。

ADT又在Eclips里面做了一个Outline的插件。

当你打开布局xml文件的时候,Outline就会显示布局的所有控件以及他们的结构。

双击其中的控件就会打开空间的属性。

你就可以直接编辑属性来轻松实现界面的布局。

所改的属性也将立刻在xml文件中显示出来。

以下是描述这个简单计算器的界面xml文件给大家做个参考:android:background="#ff808080"><EditText android:id="@+id/input"android:layout_width="fill_parent"android:layout_height="wrap_content"android:cursorVisible="false"android:gravity="right"android:editable ="false"/><TableLayout xmlns:android="/apk/res/android" android:layout_width="fill_parent"android:layout_height="fill_parent"><TableRowandroid:layout_width="fill_parent"android:layout_height="wrap_content"><Button android:id="@+id/seven"android:text="7"android:layout_height="wrap_content"android:layout_width="63sp"/><Button android:id="@+id/eight"android:text="8"android:layout_width="63sp"android:layout_height="wrap_content" /><Button android:id="@+id/nine"android:text="9"android:layout_width="63sp"android:layout_height="wrap_content" /><Button android:id="@+id/divide"android:text="/"android:layout_width="63sp"android:layout_height="wrap_content" /><Button android:id="@+id/sqrt"android:text="sqrt"android:layout_width="63sp"android:layout_height="wrap_content" /></TableRow><TableRowandroid:layout_width="fill_parent"android:layout_height="wrap_content"><Button android:id="@+id/four"android:text="4"android:layout_width="63sp"android:layout_height="wrap_content" /><Button android:id="@+id/five"android:text="5"<Button android:id="@+id/multiply"android:text="*"android:layout_width="63sp"android:layout_height="wrap_content" /> <Button android:id="@+id/remainder"android:text="%"android:layout_width="63sp"android:layout_height="wrap_content" /></TableRow><TableRowandroid:layout_width="fill_parent"android:layout_height="wrap_content"><Button android:id="@+id/one"android:text="1"android:layout_width="63sp"android:layout_height="wrap_content" /> <Button android:id="@+id/two"android:text="2"android:layout_width="63sp"android:layout_height="wrap_content" /> <Button android:id="@+id/three"android:text="3"android:layout_width="63sp"android:layout_height="wrap_content" /> <Button android:id="@+id/minus"android:text="-"android:layout_width="63sp"android:layout_height="wrap_content" /> <Button android:id="@+id/convert"android:text="1/x"android:layout_width="63sp"android:layout_height="wrap_content" /> </TableRow><TableRowandroid:layout_width="fill_parent"android:layout_height="wrap_content"><Button android:id="@+id/zero"android:text="0"android:layout_width="63sp"android:layout_height="wrap_content" /> <Button android:id="@+id/digit"android:text="."。

基于安卓的计算器的设计与实现

基于安卓的计算器的设计与实现

基于安卓的计算器的设计与实现在设计和实现基于安卓的计算器时,需要考虑以下几个重要的方面:用户界面设计、计算逻辑实现和功能扩展。

首先,用户界面设计是一个计算器的重要组成部分。

一个简洁直观、易于使用的界面可以提供良好的用户体验。

可以考虑使用标准计算器的布局,包括数字键盘、运算符按钮和显示结果的文本框。

此外,还可以添加一些额外的功能,比如一键清除按钮、括号按钮和科学计算模式切换按钮等。

考虑到不同屏幕尺寸和定制化需求,应该使用相对布局或者网格布局来放置UI元素。

其次,计算逻辑实现是计算器的核心部分。

需要支持基本的四则运算,包括加法、减法、乘法和除法。

为了实现连续运算和操作优先级,可以使用栈或者逆波兰表示法。

在用户输入数字和运算符时,应该及时更新显示结果的文本框。

另外,还应该考虑异常情况的处理,比如除数为零的情况。

最后,功能扩展是一个好的设计的关键。

除了基本的四则运算,还可以考虑添加一些其他功能,比如开方、求平方、取余、倒数、阶乘等。

另外,还可以添加一个历史记录功能,记录用户的计算过程和结果,方便用户查看和回顾。

此外,还可以添加一个单位转换功能,支持常见的长度、重量、温度、时间、速度等单位之间的转换。

在实际开发中,可以使用Android Studio作为开发工具。

Android Studio提供了丰富的界面设计工具和模拟器,可以方便地进行界面布局和调试。

可以使用Java语言进行开发,使用Android提供的API来处理用户输入和展示结果。

在代码实现中,可以使用按钮点击事件来处理用户输入。

当用户点击数字按钮时,将所点击的数字添加到一个临时变量中,当用户点击运算符按钮时,将临时变量中的数字和运算符添加到运算式中,并清空临时变量。

当用户点击等号按钮时,根据运算式中的数字和运算符进行实际的计算,并将结果显示在结果文本框中。

当用户点击清空按钮时,将运算式和结果文本框清空。

除了基本逻辑实现外,还可以进行一些优化和改进。

在Android Studio中开发一个简单的计算器应用

在Android Studio中开发一个简单的计算器应用

在Android Studio中开发一个简单的计算器应用随着智能手机的普及,计算器应用成为了人们生活中不可或缺的工具之一。

为了满足用户的需求,我们决定在Android Studio中开发一个简单的计算器应用。

这个应用将提供基本的四则运算功能,并且界面简洁易用。

首先,在Android Studio中创建一个新的项目。

选择合适的应用名称和包名。

接下来,我们需要设计应用的用户界面。

我们希望用户界面简洁明了,方便用户使用。

可以考虑使用一个TextView显示计算结果,以及多个Button用于输入数字和操作符。

在开发计算器的过程中,我们需要处理用户的输入并进行相应的计算。

为此,我们可以使用一个EditText控件来接收用户的输入,并通过按钮的点击事件来获取用户点击的数字和操作符。

然后,我们可以使用Java中的数学库来进行四则运算,并将结果显示在TextView中。

通过Android Studio提供的布局编辑器,我们可以轻松地将TextView和Button布局在界面上。

可以使用LinearLayout或RelativeLayout进行布局,根据需要设置各个控件之间的位置和大小。

此外,还可以设置按钮的点击事件,使其能够响应用户的输入。

在处理用户输入时,需要考虑一些特殊情况。

例如,当用户输入非法字符或进行除法时需要进行错误处理。

可以通过在代码中添加条件判断语句来实现这些功能。

另外,还可以添加一些额外的功能,如清除输入、撤销操作等,以提升用户体验。

在开发过程中,可以使用Android Studio提供的调试工具来检查代码是否正常运行。

可以设置断点,逐步执行代码,并查看变量的值。

这些工具能够帮助我们快速定位和修复错误。

为了使应用具有良好的用户体验,我们还可以添加一些动画效果和过渡效果。

例如,当用户点击按钮时,可以添加按钮缩放、淡入淡出等动画效果,使界面更加生动有趣。

除了基本功能以外,我们还可以考虑添加更多的功能来完善应用。

android开发计算器课程设计

android开发计算器课程设计

android开发计算器课程设计一、教学目标本课程旨在通过学习Android开发计算器,使学生掌握Android应用开发的基本知识和技能,能够独立设计和开发简单的Android计算器应用。

1.理解Android开发的基本概念和框架。

2.掌握Android计算器的界面设计和事件处理。

3.熟悉Android计算器的数据存储和运算逻辑。

4.能够使用Android Studio进行基本的Android应用开发。

5.能够设计并实现一个简单的Android计算器应用。

6.能够对Android计算器应用进行调试和优化。

情感态度价值观目标:1.培养学生的创新意识和问题解决能力。

2.培养学生对Android开发技术的兴趣和热情。

3.培养学生的团队合作精神和自主学习能力。

二、教学内容本课程的教学内容主要包括Android开发的基本概念和框架、Android计算器的界面设计和事件处理、Android计算器的数据存储和运算逻辑等。

1.Android开发的基本概念和框架:介绍Android Studio的使用、Android应用的结构和生命周期、Activity和Service的概念和用法。

2.Android计算器的界面设计:介绍布局文件的使用、控件的属性和事件处理。

3.Android计算器的数据存储和运算逻辑:介绍SharedPreferences和SQLite数据库的使用、运算器的实现和数据的存储。

三、教学方法本课程将采用讲授法、案例分析法和实验法等多种教学方法相结合的方式进行教学。

1.讲授法:通过讲解和演示,使学生理解Android开发的基本概念和框架、Android计算器的界面设计和事件处理、Android计算器的数据存储和运算逻辑。

2.案例分析法:通过分析典型的Android计算器应用案例,使学生掌握Android计算器的界面设计和事件处理、数据存储和运算逻辑的实现。

3.实验法:通过实际操作和调试,使学生掌握Android计算器的界面设计和事件处理、数据存储和运算逻辑的实现。

制作一个简易计算器——基于AndroidStudio实现

制作一个简易计算器——基于AndroidStudio实现

制作⼀个简易计算器——基于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课程设计课程表

android课程设计课程表

android课程设计课程表一、教学目标本课程的教学目标是使学生掌握Android应用程序开发的基本知识和技能,能够独立完成简单的Android应用程序开发。

1.理解Android操作系统的基本原理和架构。

2.掌握Android开发环境搭建和应用程序调试的基本方法。

3.学习Android应用程序的生命周期和界面布局。

4.掌握Android基本组件的使用和自定义。

5.学习Android应用程序的存储和网络通信。

6.能够使用Android Studio进行应用程序开发。

7.能够编写基本的Android界面和逻辑代码。

8.能够使用Android的基本组件和API。

9.能够进行基本的Android应用程序调试和优化。

情感态度价值观目标:1.培养学生对计算机科学和软件开发的兴趣和热情。

2.培养学生独立思考和解决问题的能力。

3.培养学生团队协作和沟通的能力。

二、教学内容根据教学目标,我们选择和了以下教学内容:1.Android操作系统原理和架构。

2.Android开发环境搭建和应用程序调试。

3.Android界面布局和基本组件使用。

4.Android基本API和自定义组件。

5.Android应用程序存储和网络通信。

6.第1-2周:Android操作系统原理和架构。

7.第3-4周:Android开发环境搭建和应用程序调试。

8.第5-6周:Android界面布局和基本组件使用。

9.第7-8周:Android基本API和自定义组件。

10.第9-10周:Android应用程序存储和网络通信。

三、教学方法为了达到教学目标,我们选择以下教学方法:1.讲授法:用于讲解Android操作系统原理和架构,基本API和自定义组件等理论知识。

2.案例分析法:通过分析实际案例,让学生掌握Android界面布局和网络通信等实际应用。

3.实验法:让学生动手实践,完成Android应用程序的开发和调试。

四、教学资源我们选择和准备了以下教学资源:1.教材:《Android应用开发实战》。

简易的计算器课程设计

简易的计算器课程设计

简易的计算器课程设计一、课程目标知识目标:1. 学生能理解计算器的基本功能,掌握开关机、数字输入、基本运算符号的使用。

2. 学生能掌握计算器上各按键的功能,如清除、撤销等操作。

3. 学生了解计算器的类型,如简单计算器、科学计算器等。

技能目标:1. 学生能熟练操作计算器,完成基本的数学运算,如加减乘除、百分比等。

2. 学生能运用计算器解决实际生活中的数学问题,如购物找零、计算面积等。

3. 学生能通过计算器进行简单的数据统计和分析。

情感态度价值观目标:1. 学生培养对数学的兴趣和好奇心,认识到计算器在生活中的重要性。

2. 学生养成良好的计算习惯,尊重数学知识,注重实际应用。

3. 学生在小组合作中,学会分享和倾听,培养团队协作精神。

本课程针对小学四年级学生设计,结合学生的认知特点,注重培养实际操作能力和解决问题的能力。

课程以计算器为工具,引导学生运用数学知识解决实际问题,提高学生对数学学科的兴趣和自信心。

通过分解课程目标,教师可以更好地进行教学设计和评估,确保学生达到预期学习成果。

二、教学内容本章节教学内容主要包括以下三个方面:1. 计算器的基本操作与功能- 认识计算器的各部分名称和功能- 学习开关机、数字输入、基本运算符号的使用- 掌握清除、撤销等操作教学内容关联课本第四章第一节数学工具的使用。

2. 基本数学运算- 加减乘除四则运算- 百分数、乘方运算- 混合运算顺序与计算教学内容关联课本第四章第二节数学运算的应用。

3. 计算器在实际生活中的应用- 解决购物找零问题- 计算简单图形的面积和周长- 数据的统计与处理教学内容关联课本第四章第三节数学与生活。

教学大纲安排如下:第一课时:认识计算器及其基本操作第二课时:基本数学运算与计算器操作第三课时:计算器在实际生活中的应用教学进度根据学生的掌握情况灵活调整,确保学生充分理解和掌握教学内容。

三、教学方法针对本章节内容,采用以下教学方法:1. 讲授法:教师通过生动的语言和形象的表达,向学生介绍计算器的基本操作与功能,以及基本数学运算的规则。

(完整版)基于Android计算器的设计与应用毕业论文

(完整版)基于Android计算器的设计与应用毕业论文

(完整版)基于Android计算器的设计与应⽤毕业论⽂北京北⼤⽅正软件技术学院毕业设计(论⽂)题⽬:基于Android计算器的设计与应⽤系别:软件⼯程分院专业:软件技术学号:姓名:王可可指导⽼师:李强完成⽇期:2014年5 ⽉20 ⽇北京北⼤⽅正软件技术学院毕业设计(论⽂)成绩评定表(理科)年级 11级专业软件技术姓名王可可学号论⽂题⽬:基于Android计算器的设计与应⽤指导教师:李强项⽬评分标准优秀良好合格不合格选题优秀:选题有重要理论意义和实际价值;良好:选题有较强理论意义和实际价值;合格:选题有⼀定理论意义和实际价值;不合格:选题⽋妥。

基础知识优秀:有坚实的理论基础和系统深⼊的专业知识;良好:有较坚实的理论基础和系统深⼊的专业知识;合格:有⼀定的理论基础和专业知识;不合格:基础理论不够全⾯,专业知识不系统。

实践能⼒优秀:体现出较强的实践⼯作能⼒;良好:体现出较好的实践⼯作能⼒;合格:体现出⼀定的实践⼯作能⼒;不合格:体现出⼯作能⼒较差。

写作能⼒优秀:条理清楚,层次分明,⽂笔流畅,学风严谨;良好:条理性好,层次分明,⽂字通顺,⼯作认真;合格:条理较好,层次较分明,⽂字较通顺;不合格:条理不清,写作较差。

论⽂综合评价优秀良好合格不合格指导教师评定意见签字:年⽉⽇毕业设计领导⼩组签字签字:年⽉⽇摘要⽬前⼿机可以说是普及率⾮常⾼的电⼦设备了,由于其便于携带,使⽤⽅便,资费适中等等原因,现在⼿机已经在⼀定程度开始代替固定电话的通话功能,以及⼀些原来电脑软件上的功能了。

⼿机上的软件也随着⼿机的发展变得丰富起来了,时⾄今⽇已经出现了很多专门制作⼿机软件的公司,虽然制作的多是游戏软件,但是⼀些辅助性的⼯具软件也有了很多。

⼿机软件简单说就是可以安装在⼿机上的软件,作⽤⾃然是扩展⼿机的原始功能,使⼿机变得更加的实⽤。

但是⼿机的软件需要安装到相应的系统中才能完美的运⾏。

正是由于考虑到以上这些情况,Android系统是现今⽐较流⾏的⼿机系统,所以本系统选择了java语⾔来作为开发语⾔。

《Android基础》基于Android的简易计算机的设计与实现

《Android基础》基于Android的简易计算机的设计与实现
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity implements OnClickListener{
btMul=(Button) findViewById(R.id.btMul);
btDivide=(Button) findViewById(R.id.btDivide);
btEqu=(Button) findViewById(R.id.btEqu);
btClear=(Button) findViewById(R.id.btClear);
btSix=(Button) indViewById(R.id.btSix);
btSeven=(Button) findViewById(R.id.btSeven);
btEight=(Button) findViewById(R.id.btEight);
btNine=(Button) findViewById(R.id.btNine);
btDivide.setOnClickListener(this);
btEqu.setOnClickListener(this);
btClear.setOnClickListener(this);
btDel.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {

简易计算器课程设计摘要

简易计算器课程设计摘要

简易计算器课程设计摘要一、课程目标知识目标:1. 学生能够掌握简易计算器的基本功能,包括加、减、乘、除等四则运算。

2. 学生能够理解计算器的操作原理,了解显示屏、按键与内部电路之间的关系。

3. 学生能够运用计算器解决日常生活中遇到的基础数学问题。

技能目标:1. 学生能够熟练操作简易计算器,进行快速准确的计算。

2. 学生能够通过使用计算器,培养解决问题的能力和逻辑思维能力。

3. 学生能够通过小组合作,共同探讨计算器的使用技巧,提高团队协作能力。

情感态度价值观目标:1. 学生能够增强对数学学科的兴趣,认识到数学在生活中的重要性。

2. 学生能够树立正确的计算观念,注重计算的准确性和效率。

3. 学生能够培养严谨的学习态度,对待计算任务认真负责。

4. 学生能够学会尊重他人,学会倾听和分享,形成良好的团队合作精神。

课程性质:本课程为信息技术与数学学科的融合课程,以实践操作为主,注重培养学生的动手能力和解决问题的能力。

学生特点:四年级学生具备一定的数学基础和逻辑思维能力,对新鲜事物充满好奇心,喜欢动手操作。

教学要求:教师应结合学生特点,以实际操作为主,引导学生主动探究,注重培养学生的自主学习能力和团队合作精神。

在教学过程中,关注学生的个体差异,鼓励学生积极参与,确保每个学生都能达到课程目标。

通过本课程的学习,使学生能够将所学知识运用到实际生活中,提高综合素质。

二、教学内容本课程教学内容紧密结合课程目标,确保学生掌握简易计算器的使用及其背后的数学概念。

1. 计算器基础知识:- 计算器的发展历程- 计算器的种类及功能- 认识简易计算器的外观、按键布局及其功能2. 基本操作与四则运算:- 认识显示屏,理解操作结果- 学习加、减、乘、除四则运算的操作方法- 练习使用计算器解决实际问题3. 进阶操作与问题解决:- 掌握计算器上的额外功能,如百分比、乘方等- 解决涉及复合运算的数学问题- 通过计算器进行数据比较和分析教学大纲安排如下:- 第一课时:计算器基础知识介绍,认识简易计算器- 第二课时:基本操作学习,加、减、乘、除四则运算- 第三课时:进阶操作学习,掌握额外功能键的使用- 第四课时:综合练习,解决实际生活中的数学问题教学内容与教材关联性:- 章节一:数学基础知识与计算器操作- 章节二:四则运算在实际生活中的应用- 章节三:计算器的进阶功能及其在数学中的应用教学内容注重科学性和系统性,通过理论与实践相结合,使学生在学习过程中逐步提高计算能力和解决问题的能力。

android开发计算器设计开发报告

android开发计算器设计开发报告

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

简单计算器课程设计(DOC)

简单计算器课程设计(DOC)

简单计算器课程设计一. 课程设计的目的Java语言是此刻流行的网络编程语言,它拥有面向对象、跨平台、散布应用等特色。

面向对象的开发方法是此刻世界最流行的开发方法,它不单具有更切近自然的语义,并且有益于软件的保护和继承。

为了进一步稳固讲堂上所学到的知识,深刻掌握Java语言的重要观点及其面向对象的特征,锻炼学生娴熟的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java 程序设计课程设计。

经过此次课程设计,稳固所学Java 语言基本知识,增进Java 语言编写基本功,掌握 JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。

使学生经过该教课环节与手段,把所学课程及有关知识加以举一反三,全面掌握 Java 语言的编程思想及面向对象程序设计的方法,为此后从事实质工作打下坚固的基础。

二. 设计方案论证1.开发环境:JAVA编程工具 JDK 1.5.0 ,操作系统WindowsXP.2.功能描绘 :本计算器能够进行简单的四则运算(加、减、乘、除)但仅限于十进制下,还能够进行(八进制, 十进制, 十六进制)之间的互相变换, 八进制最多能够输入19 位数, 十进制最多能够输入18 位数,十六进制最多能够输入14 位数,backspace 表示退格,clear 表示初始化,在window 下直接运转(Jsp2003.bat )即可,界面为灰白对称。

3.纲要设计 :**********************************************************类名 : This_number_too_big作用 :自定义的异样类,用来办理计算结果溢出继承的父类 : Exception类实现的接口 :没有**********************************************************class This_number_too_big extends Exception{}// 自定义的一个结果溢出异样类**********************************************************类名 : Jsp2003作用:主类继承的父类 : Frame 类实现的接口 : ItemListener类,ActionListener类**********************************************************class Jsp2003 extends Frame implements ItemListener,ActionListener{public int number=0,length=18;//number 是用来记录输入的数字个数,//length是用来设置在不一样进制下同意输入的最多半字位数,默以为十进制char mark='n';//设置运算符号为没有即为‘ n’,它的值是‘ +’‘ - ’‘ * ’‘ / ’public double data=0;//设置运算数据为零public char ch;//用到暂时寄存所按按钮的第一个字符public boolean Refresh=false;//设置 lab 能否要在输入数据的时候刷新,初始为否4.主要方法说明://用来办理按了运算符后的计算 -public void js() throws This_number_too_big //指定由method抛出异常{if (mark=='n') //没有运算符{mark=ch; //,则设置运算符为刚才输入的字符,data=Double.parseDouble(lab.getText());//则设置运算数据为lab 的值Refresh=true;// 则设置下一次输入的时候要刷新lab}else //假如采纳的是连续运算(即没有使用‘=’号)则运转下边的语句{switch (mark) //依据运算符计算结果,并把结果保留到data{ case '+': data+=Double.parseDouble(lab.getText()); break;case '-': data-=Double.parseDouble(lab.getText()); break;case '*': data*=Double.parseDouble(lab.getText()); break;case '/': data/=Double.parseDouble(lab.getText()); break;}lab.setText(Double.toString(data)); //显示运算结果mark=ch;// 设置运算符为刚才按下的运算符Refresh=true;// 则设置下一次输入的时候要刷新 labnumber=lab.getText().length();//设置输入的字符个数// System.out.println(lab.getText());//用来调试用的if (data>Double.MAX_VALUE)//假如 data 超出 double 种类的最大值则抛出自定义的一个异样类{throw new This_number_too_big(); }}}//end js() methodpublic void enter()//办理输入字符{if(Refresh==true)//假如已经设置了运算符则在下一次输入数据的时候要把从前 lab 的内容消除去{lab.setText("0"); number=0; Refresh=false;}if(lab.getText().charAt(0)=='0'&& lab.getText().length()==1)//假如 lab 的内容为 0 则, lab 的内容将被所输入的字符取代,//不然直接在 lab 的内容后边加上所输入的字符{lab.setText(Character.toString(ch)); number++;}elseif(number<length){number++;lab.setText(lab.getText()+ch);}}//end enter() method//八进制或十六进制变换成十进制I public String goto_10(String s,long l)//参数 s:是要变换的字符串,因为输入的控制,保证了字符串的合法性;//参数 l :使用来设置是将 8 进制仍是 16 进制变换成 10 进制,它的有效值为8或 16;{ String str=s; //用来变换的字符串long j=l; //表示进制long lg=0,jing=1;//lg用来记录权乘和,jing用来记录位权char cha;//暂时记录要变换的字符for(int i=1;i<=str.length();i++){ cha=str.charAt(str.length()-i);switch(cha){ case '1': lg=lg+1*jing;break;case '2': lg=lg+2*jing;break;case '3': lg=lg+3*jing;break;case '4': lg=lg+4*jing;break;case '5': lg=lg+5*jing;break;case '6': lg=lg+6*jing;break;case '7': lg=lg+7*jing;break;case '8': lg=lg+8*jing;break;case '9': lg=lg+9*jing;break;case 'A': lg=lg+10*jing;break;case 'B': lg=lg+11*jing;break;case 'C': lg=lg+12*jing;break;case 'D': lg=lg+13*jing;break;case 'E': lg=lg+14*jing;break;case 'F': lg=lg+15*jing;break;}jing*=j; //位权升一级,为下次使用做好准备}return Long.toString(lg);}//end String goto_10() method}3.系统流程图开始初始化数据Double result=0; //储存结果Boolean newnum=true; //能否新数String lastop=” =”; /储存操作符按下数字按钮按下操作符( +-* 、 =)按钮判断把目前文本框的内容转为double 后传给calc 方法calc(double.parsedouble(txt.gettext()))newnumTrue false文本框显示新数;文本框接着显示Lastop=”操作txt.settext(“数txt.settext(txtgettext()+ ”符”newnum=true 字”)newnum=false 数字”)4.详尽设计第一剖析这个说要达成的任务,它的主要任务是达成十六进制、十进制、八进制和二进制之间的互相转变,需要包括负数,但不用考虑小数。

基于android的计算器毕业设计报告

基于android的计算器毕业设计报告

基于android的计算器毕业设计报告1. 引言计算器是一种常用的电子设备,用于进行各种数学计算和运算,如加减乘除、平方根、百分比等。

随着智能手机的普及,人们越来越倾向于使用手机上的计算器应用进行数学计算,因此开发一款基于Android平台的计算器应用成为一项有意义的毕业设计。

2. 设计目标本计算器应用的设计目标是满足用户对于高效、准确计算需求的同时,具备友好的用户界面和良好的用户体验。

3. 功能设计3.1 基本计算功能用户可以通过输入数字和运算符,进行基本的加减乘除运算。

计算器应能正确解析用户输入的表达式,并给出准确的结果。

3.2 科学计算功能计算器还应该具备科学计算功能,如平方根、立方根、指数运算、对数运算等。

用户可以通过在界面上选择相应的按钮进行科学计算。

3.3 历史记录功能计算器应能保存用户的历史计算记录,以便用户可以回顾之前的计算过程和结果。

用户可以随时查看特定的历史记录,并可以清除历史记录。

3.4 单位转换功能计算器还应该具备单位转换功能,如长度单位之间的转换,重量单位之间的转换等。

用户可以在界面上选择需要进行的单位转换,并输入相应的数值,计算器将给出转换后的结果。

4. 用户界面设计4.1 主界面主界面应该简洁清晰,并具备直观明了的操作按钮,供用户选择进行不同的计算。

4.2 科学计算界面科学计算界面应该设计为可选展示的,用户可以通过选择按钮在主界面和科学计算界面之间切换。

4.3 历史记录界面历史记录界面应该能够展示用户之前的计算过程和结果,并提供删除历史记录的功能。

4.4 单位转换界面单位转换界面应该设计为可选展示的,用户可以通过选择按钮在主界面和单位转换界面之间切换。

5. 开发技术和工具本计算器应用基于Android平台进行开发,开发工具可选用Android Studio。

开发语言选择Java,使用Android SDK进行开发。

设计界面可以使用XML或者Android布局进行设计。

android计算器简单实现代码

android计算器简单实现代码

android计算器简单实现代码本⽂实例为⼤家分享了android计算器的具体实现代码,供⼤家参考,具体内容如下java代码:package com.itheima74.simplecalculator4;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.TextView;import android.widget.Toast;import com.iflytek.cloud.InitListener;import com.iflytek.cloud.SpeechConstant;import com.iflytek.cloud.SpeechError;import com.iflytek.cloud.SpeechSynthesizer;import com.iflytek.cloud.SpeechUtility;import com.iflytek.cloud.SynthesizerListener;import com.iflytek.cloud.util.ResourceUtil;import java.util.ArrayList;/*** 简易计算器(第三版)* 功能介绍:* 1.⽀持连续计算* 2.⽀持离线语⾳* 3.科⼤讯飞在线(离线)语⾳合成SDK使⽤步骤:* a.下载SDK,注册APPID* b.拷贝libs⽬录下Msc.jar⾄⼯程libs⽬录,右键:add as library* c.创建assets⽬录,拷贝tts⽂件夹下3个离线发⾳⼈资源* d.创建jniLibs⽬录,拷贝armeabi⽂件夹,x86⽂件(视具体⼿机机型⽽定) * e.初始化SDK*/public class MainActivity extends AppCompatActivity implements View.OnClickListener {private TextView tv;// 显⽰控件private ArrayList<String> mList;// 存储⽤户输⼊集合private double mResult;// 计算结果,当除数为0时,⽆法计算结果,默认为初始值0private boolean mFlag = true;// 控制在线语⾳功能是否开启的变量,默认开启@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);initSDK();initView();initList();}/*** 2.初始化离线语⾳** @param flag 离线语⾳开启或关闭开关* @param msg 要朗读的⽂字*/private void initLocalHeCheng(boolean flag, String msg) {if (flag) {//1.创建SpeechSynthesizer对象,第⼆个参数:本地合成传InitListenerSpeechSynthesizer mTts = SpeechSynthesizer.createSynthesizer(this, new InitListener() {@Overridepublic void onInit(int code) {}});//2.合成参数设置//设置引擎类型为本地mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_LOCAL);//设置本地发⾳⼈mTts.setParameter(SpeechConstant.VOICE_NAME, "xiaoyan");//加载本地合成资源,resPath为本地合成资源路径mTts.setParameter(ResourceUtil.TTS_RES_PATH, getResourcePath());// 设置语速mTts.setParameter(SpeechConstant.SPEED, "60");// 设置⾳调mTts.setParameter(SpeechConstant.PITCH, "50");// 设置⾳量mTts.setParameter(SpeechConstant.VOLUME, "100");// 设置播放器⾳频流类型mTts.setParameter(SpeechConstant.STREAM_TYPE, "3");//设置合成⾳频保存位置(可⾃定义保存位置),保存在“./sdcard/iflytek.pcm”//保存在SD卡需要在AndroidManifest.xml添加写SD卡权限//如果不需要保存合成⾳频,注释该⾏代码//mTts.setParameter(SpeechConstant.TTS_AUDIO_PATH, "./sdcard/iflytek.pcm");//3.开始合成mTts.startSpeaking(msg, mSynListener);}}// 获取发⾳⼈资源路径private String getResourcePath() {StringBuffer tempBuffer = new StringBuffer();// 合成通⽤资源tempBuffer.append(ResourceUtil.generateResourcePath(this, ResourceUtil.RESOURCE_TYPE.assets, "tts/common.jet")); tempBuffer.append(";");// 发⾳⼈资源tempBuffer.append(ResourceUtil.generateResourcePath(this, ResourceUtil.RESOURCE_TYPE.assets, "tts/xiaoyan.jet")); return tempBuffer.toString();}/*** 1.初始化SDK*/private void initSDK() {SpeechUtility.createUtility(this, SpeechConstant.APPID + "=58ba4628");}// 创建⼀个选项菜单@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}// 处理选项菜单的点击事件@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case R.id.exit:this.finish();break;case R.id.open_local_voice:mFlag = true;mFlag = false;break;}return super.onOptionsItemSelected(item);}/*** 2.在线语⾳合成,朗读** @param flag 控制⽅法的执⾏,true:执⾏,false:不执⾏* @param msg 需要朗读的⽂字*//*private void initYuYinHeCheng(boolean flag, String msg) {if (flag) {//1.创建SpeechSynthesizer对象, 第⼆个参数:本地合成时传InitListenerSpeechSynthesizer mTts = SpeechSynthesizer.createSynthesizer(this, null);//2.合成参数设置,详见《科⼤讯飞MSC API⼿册(Android)》SpeechSynthesizer 类mTts.setParameter(SpeechConstant.VOICE_NAME, mVoiceName);//设置发⾳⼈mTts.setParameter(SpeechConstant.SPEED, "50");//设置语速mTts.setParameter(SpeechConstant.VOLUME, "80");//设置⾳量,范围0~100mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD); //设置云端//设置合成⾳频保存位置(可⾃定义保存位置),保存在“./sdcard/iflytek.pcm”//保存在SD卡需要在AndroidManifest.xml添加写SD卡权限//如果不需要保存合成⾳频,注释该⾏代码//mTts.setParameter(SpeechConstant.TTS_AUDIO_PATH, "./sdcard/iflytek.pcm");//3.开始合成mTts.startSpeaking(msg, mSynListener);}}*/// 合成监听器private SynthesizerListener mSynListener = new SynthesizerListener() {//开始播放@Overridepublic void onSpeakBegin() {}//缓冲进度回调//percent为缓冲进度0~100,beginPos为缓冲⾳频在⽂本中开始位置,endPos表⽰缓冲⾳频在⽂本中结束位置, //info为附加信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Android简单计算器课程设计广东工业大学华立学院课程名称手机游戏开发题目名称简单计算器学生学部,系, 机电与信息工程学部专业班级 12计算机科学与技术2班学号学生姓名任课教师2015年 6月 20日一、课程考试,设计,的内容基于Android平台的简单计算器二、课程考试,设计,的要求清晰描述应用的策略和基本框架~并设计相关的类~描述各个类的作用和关系~画出类图关系~叙述使用到的技术点。

目录1课程综述 .............................................. 错误~未定义书签。

2 手机应用设计.......................................... 错误~未定义书签。

2.1 开发背景...................................................................... ........................................................................ 错误~未定义书签。

2.2 设计思想...................................................................... ........................................................................ 错误~未定义书签。

2.3 策略描述.............................................................................................................................................. 错误~未定义书签。

2.4 设计将达到的目标 ..................................................................... ....................................................... 错误~未定义书签。

3概要设计 .............................................. 错误~未定义书签。

3.1 需求分析...................................................................... ........................................................................ 错误~未定义书签。

3.2 基本框架...................................................................... ........................................................................ 错误~未定义书签。

3.3 类设计 ..................................................................... ........................................................................ ..... 错误~未定义书签。

4 详细设计 ............................................. 错误~未定义书签。

4.1 运行过程...................................................................... ........................................................................ 错误~未定义书签。

4.2 类实现 ..................................................................... ........................................................................ ..... 错误~未定义书签。

4.2.1 .............................................................. ........................................................................ .. (6)4.2.2 .............................................................. ........................................................................ ........................................................ 7 4.3 运行描述...................................................................... ........................................................................ ...................................... 8 5 测试 ............................................................... 9 5.1 运行效果 ..................................................................... ........................................................................ ..................................... 9 5.2 测试用例 ..................................................................... ........................................................................ ..................................... 9 总结 (11)参考文献 (12)1 课程综述Android是一种基于Linux内核、开放源代码的操作系统,主要使用于移动设备,如智能手机、平板电脑、电视等。

根据Gartner对智能手机操作系统占有市场份额的预期,到2015年Android操作系统的占有份额将达到50%左右,远高于其他操作系统。

开发程序的第一步便是开发环境的配置,首先是Java SDK的安装、配置和测试,然后是Eclipse的安装与测试,最后是搭建Android开发环境,也就是下载SDK和安装ADT,完成以上步骤便可以开始开发程序了。

本课程主要使用了赋值运算符和算术运算符。

赋值运算符,由于Java语言是强类型的语言,所以赋值时要求类型必须匹配,如果类型不匹配需要能自动转换为对应的类型,否则将报语法错误。

Java的算术运算符有加号(+)、减号(-)、乘号(*)、除号(/)以及模数(%,从整数除法中获得余数)。

整数除法会直接去掉小数,而不是进位。

Button控件主要用于单击操作,处理相应事件。

按钮的事件处理方式有两种,一种是直接给按钮注册监听器,另一种是直接指定处理单击事件的方法。

定义buttonClick方法时,注意两点,一是此类方法必须是public修饰,二是参数列表只能有一个View类型参数,当指定按钮被单击时,作为View传入此方法。

基本流程控制语句主要用到了分支控制语句中的if语句,通过判断输入的值来选择使用语句,使程序按正确顺序逐步执行,为程序提供了执行方向。

12 手机应用设计2.1 开发背景算术涉及人们生活方方面面,计算器能使人们快捷,准确的算账,提高工作效率。

2.2 设计思想本应用程序采用yout下的main布局文件进行布局,将单行文本加入相应区域,将数字按钮和运算符按钮及控制按钮添加到相应区域,同时注册按钮事件监听器。

2.3策略描述计算器的程序设计,必然有数据输入,其中数据包括运算符和数字,均要通过计算器上的button按钮选项输入进去,里面录入的必然是字符型的数据如果进行运算要将输入的数据转化成Double型,以防出错。

主要是通过将数字键和其他符号区别开来进行监听。

2.4 设计将要到达的目标解决日常生活中简单的算数问题,例如9*9=81(如下图)23 概要设计3.1 需求分析日常生活中经常需要用到计算器,比如科学计算,数值计算,会计业务等等,在Applet中实现一个精巧的计算器,可以让用户的操作也更加方便和快捷。

本项目需要实现一个具有四则运算的计算器,能够实现基本的加、减、乘、除运算,界面简洁适用。

3.2 基本框架该计算器是由一个显示输入数据和结果的显示区域,10个数字按钮,4个运算符按钮,一个等号按钮,,一个小数点按钮和一个清屏按钮组成的。

清屏按钮的作用是清除输入数据和结果。

3.3 类设计ActivityNumberAction CommandAction calculator34 详细设计4.1 运行过程4.2 类实现public class calculator extends Activity {private Button[] btnNum = new Button[11];private Button[] btnCommand = new Button[5];private EditText editText = null;private Button btnClear = null;private String lastCommand;private boolean clearFlag;private boolean firstFlag;private double result;public calculator() {result = 0;firstFlag = true;clearFlag = false;4lastCommand = "="; }@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(yout.activity_main);btnCommand[0] = (Button) findViewById(R.id.plus); btnCommand[1] = (Button) findViewById(R.id.minus); btnCommand[2] = (Button) findViewById(R.id.multiply); btnCommand[3] = (Button) findViewById(R.id.divide); btnCommand[4] = (Button) findViewById(R.id.equal);btnNum[0] = (Button) findViewById(R.id.num0); btnNum[1] = (Button) findViewById(R.id.num1); btnNum[2] = (Button) findViewById(R.id.num2); btnNum[3] = (Button) findViewById(R.id.num3); btnNum[4] = (Button) findViewById(R.id.num4); btnNum[5] = (Button) findViewById(R.id.num5); btnNum[6] = (Button) findViewById(R.id.num6); btnNum[7] = (Button) findViewById(R.id.num7); btnNum[8] = (Button) findViewById(R.id.num8); btnNum[9] = (Button) findViewById(R.id.num9); btnNum[10] = (Button) findViewById(R.id.point); editText = (EditText) findViewById(R.id.print); editText.setText("0.0");// 实例化监听器对象NumberAction na = new NumberAction(); CommandAction ca = new CommandAction();for (Button bc : btnCommand) {bc.setOnClickListener(ca);}5for (Button bc : btnNum) {bc.setOnClickListener(na);}// clear按钮的动作btnClear = (Button) findViewById(R.id.clear); btnClear.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {editText.setText("0.0");// 初始化各项值result = 0; // x的值firstFlag = true; // 是首次运算clearFlag = false; // 不需要清空lastCommand = "="; // 运算符}});}4.2.1private class NumberAction implements OnClickListener { @Overridepublic void onClick(View view) {Button btn = (Button) view;String input = btn.getText().toString();if (firstFlag) {if (input.equals(".")) {return;}if (editText.getText().toString().equals("0.0")) {editText.setText("");6}firstFlag = false;} else {String editTextStr = editText.getText().toString();if (editTextStr.indexOf(".") != -1 && input.equals(".")) { return;}if (editTextStr.equals("-") && input.equals(".")) { return;}if (editTextStr.equals("0") && !input.equals(".")) { return;}}if (clearFlag) {editText.setText("");clearFlag = false;}editText.setText(editText.getText().toString() + input); }}4.2.2private class CommandAction implements OnClickListener {@Overridepublic void onClick(View view) {Button btn = (Button) view;String inputCommand = (String) btn.getText();7if (firstFlag) {if (inputCommand.equals("-")) {editText.setText("-");firstFlag = false;}} else {if (!clearFlag) {calculater(Double.parseDouble(editText.getText().toString()));}lastCommand = inputCommand;clearFlag = true;}}}4.3 运行描述先输入一个数字,再输入一个运算符,再输入另一个数字,然后按等号按钮,得到结果。

相关文档
最新文档