Android开发实战:创建一个简单的计算器应用
- 格式:docx
- 大小:37.49 KB
- 文档页数:3
⽤AndroidStudio做⼀个简易的计算器界⾯对于计算器的界⾯,我是在xml⽂件⾥编写<TableLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MyCale"><TextViewandroid:gravity="right"android:id="@+id/input1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:height="100px"android:text="3+4"android:textSize="50px"/><TextViewandroid:id="@+id/input2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:height="200px"android:text="7"android:textSize="100px"/><TableLayoutandroid:stretchColumns="0,1,2,3"><TableRow><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:height="140px"android:text="AC"android:textSize="50px"/><Buttonandroid:layout_width="match_parent"android:layout_height="match_parent"android:height="140px"android:text="DEL"android:textSize="50px"/><Buttonandroid:layout_width="match_parent"android:layout_height="match_parent"android:height="140px"android:text="+/-"android:textSize="50px"/><Buttonandroid:layout_width="72dp"android:layout_height="match_parent"android:height="140px"android:text="÷"android:textSize="50px"/></TableRow><TableRow><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:height="140px"android:text="7"android:textSize="50px"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:height="140px"android:text="8"android:textSize="50px"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_width="wrap_content" android:layout_height="wrap_content" android:height="140px"android:text="×"android:textSize="50px"/></TableRow><TableRow><Buttonandroid:layout_width="wrap_content" android:layout_height="wrap_content" android:height="140px"android:text="4"android:textSize="50px"/><Buttonandroid:layout_width="wrap_content" android:layout_height="wrap_content" android:height="140px"android:text="5"android:textSize="50px"/><Buttonandroid:layout_width="wrap_content" android:layout_height="wrap_content" android:height="140px"android:text="6"android:textSize="50px"/><Buttonandroid:layout_width="wrap_content" android:layout_height="wrap_content" android:height="140px"android:text="-"android:textSize="50px"/></TableRow><TableRow><Buttonandroid:layout_width="wrap_content" android:layout_height="wrap_content" android:height="140px"android:text="1"android:textSize="50px"/><Buttonandroid:layout_width="wrap_content" android:layout_height="wrap_content" android:height="140px"android:text="2"android:textSize="50px"/><Buttonandroid:layout_width="wrap_content" android:layout_height="wrap_content" android:height="140px"android:text="3"android:textSize="50px"/><Buttonandroid:layout_width="wrap_content" android:layout_height="wrap_content" android:height="140px"android:text="+"android:textSize="50px"/></TableRow><TableRow><Buttonandroid:layout_span="2"android:layout_width="match_parent"android:layout_height="match_parent" android:height="140px"android:text="0"android:textSize="50px"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content" android:height="140px"android:text="."android:textSize="50px"/><Buttonandroid:layout_height="wrap_content" android:layout_width="wrap_content"</TableLayout></TableLayout>下⾯是我在编写时遇到的问题:1.Tablelayout⾥如何使⼀⾏的四个按钮占满⼀⾏?<TableLayoutandroid:stretchColumns="0,1,2,3">控制某列的按钮拉伸占满剩下的空间,0是第⼀列。
c语言制作简单的计算器在计算机编程领域中,C语言是一种广泛使用的编程语言之一。
它具有简单易学的特点,并且能够进行复杂的计算和逻辑处理。
今天,我们就来学习一下如何使用C语言来制作一个简单的计算器。
首先,我们需要明确我们计算器的功能和界面设计。
本次制作的计算器将具有基本的四则运算功能,即加法、减法、乘法和除法。
我们将在控制台中实现计算器的操作,并通过简单的用户界面进行交互。
接下来,我们需要创建一个C语言程序的框架。
首先,我们需要包含头文件,以便在程序中使用各种函数和变量。
我们可以使用"#include" 来引入头文件,例如:```c#include <stdio.h>```然后,我们需要定义主函数 `main()`。
在这个函数中,我们将编写计算器的逻辑代码。
让我们开始编写函数吧!首先,我们需要声明一些变量来存储用户输入的数字和运算符。
我们可以使用 `int` 来定义整数变量,并用 `char` 定义字符变量。
例如:```cint num1, num2, result;char operator;```接下来,我们需要提示用户输入要进行的运算,并读取用户输入的数字和运算符。
我们可以使用 `printf` 和 `scanf` 函数来完成这个任务,例如:```cprintf("请输入第一个数字: ");scanf("%d", &num1);printf("请输入运算符(+, -, *, /): ");scanf(" %c", &operator);printf("请输入第二个数字: ");scanf("%d", &num2);```注意,我们在读取运算符之前添加了空格,这是为了消除输入缓冲区中可能残留的换行符等字符。
接下来,我们需要编写代码来进行实际的计算操作。
为了深入理解和应用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="."。
在Android Studio中开发一个简单的计算器应用随着智能手机的普及,计算器应用成为了人们生活中不可或缺的工具之一。
为了满足用户的需求,我们决定在Android Studio中开发一个简单的计算器应用。
这个应用将提供基本的四则运算功能,并且界面简洁易用。
首先,在Android Studio中创建一个新的项目。
选择合适的应用名称和包名。
接下来,我们需要设计应用的用户界面。
我们希望用户界面简洁明了,方便用户使用。
可以考虑使用一个TextView显示计算结果,以及多个Button用于输入数字和操作符。
在开发计算器的过程中,我们需要处理用户的输入并进行相应的计算。
为此,我们可以使用一个EditText控件来接收用户的输入,并通过按钮的点击事件来获取用户点击的数字和操作符。
然后,我们可以使用Java中的数学库来进行四则运算,并将结果显示在TextView中。
通过Android Studio提供的布局编辑器,我们可以轻松地将TextView和Button布局在界面上。
可以使用LinearLayout或RelativeLayout进行布局,根据需要设置各个控件之间的位置和大小。
此外,还可以设置按钮的点击事件,使其能够响应用户的输入。
在处理用户输入时,需要考虑一些特殊情况。
例如,当用户输入非法字符或进行除法时需要进行错误处理。
可以通过在代码中添加条件判断语句来实现这些功能。
另外,还可以添加一些额外的功能,如清除输入、撤销操作等,以提升用户体验。
在开发过程中,可以使用Android Studio提供的调试工具来检查代码是否正常运行。
可以设置断点,逐步执行代码,并查看变量的值。
这些工具能够帮助我们快速定位和修复错误。
为了使应用具有良好的用户体验,我们还可以添加一些动画效果和过渡效果。
例如,当用户点击按钮时,可以添加按钮缩放、淡入淡出等动画效果,使界面更加生动有趣。
除了基本功能以外,我们还可以考虑添加更多的功能来完善应用。
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计算器的界面设计和事件处理、数据存储和运算逻辑的实现。
基于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 课题背景随着社会的发展,经济水平的提高,手机越来越普及。
制作⼀个简易计算器——基于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 :实现⼀个计算器--(四则运算)计算器的功能介绍:Dot 的效果展⽰:侃侃 Dot:改进的地⽅:不⾜的地⽅:补充知识:android 中的事件处理步骤如何将信息显⽰到 View(EditText)上:异常的类型:Name: Dot (从某点开始,到某点结束)功能: + 、- 、* 、/ 、%(清零,退格操作)版本:1.0Dot 与其他的计算器相⽐没有太⼤的竞争⼒,甚⾄在处理⼀些极端的问题时还存在很⼤的不⾜,例如:⼤数的四则运算,对于这个问题处理的还不够到位,⽬前只能实现⼀些简单的四则运算(只能说⾃⼰的⽔平太菜,还没有掌握⼀些实质性的内容,这个是⾃⼰需要检讨的)另外:⾮常感谢 Android ⽼师教给我们的知识,使我们可以设计出第⼀款属于⾃⼰的 app.相对于最原始的设计,更新了哪些东西呢?1、改变按钮的形状,由原始的长⽅形 -- 椭圆状,使得按钮更加形象化。
2、增加背景图⽚,使⽤户的体验效果更好。
3、增加退格操作,使得⽤户在输错信息时不⽤全盘清零,可以删除刚刚写的某个字符。
1、未实现⼀些⼤数的运算。
2、当退格退完后,再按退格时会⾃动退出(不影响总体效果,但还是有那么⼀点 bug )3、⽬前两个数操作就需要 '=' ⼀下,但是可以实现多项式的运算,只是每次都需要 '='(后续会进⾏修改,逐渐完善)a 、找到事件⽬标对象(Button),通过 findViewById(),遍历⼦对象。
b 、实现view.onClickLisenter 接⼝,重写 onClick ⽅法。
c 、在事件⽬标对象上注册,btn.setOnClickListener (实现类的对象)a 、为 EditText 定义 id -- etResultb 、通过 findViewById 获取 etResult 对象c 、通过 etResult.setText() 将信息显⽰到计算器界⾯上a 、RuntimeExceptiona、RuntimeException运⾏时异常,不要求处理(但最好处理⼀下),与业务相关,⽐较主观(每个应⽤都可以采⽤⾃⼰的⽅式进⾏处理),⼀般不严重, 对效果不会产⽣太⼤的影响。
c语言小项目开发实例C语言是一种广泛应用于计算机科学领域的编程语言,它具有高效、简洁、可移植等特点,因此在各种小项目开发中都有着广泛的应用。
本文将介绍几个基于C语言的小项目开发实例,希望能够对初学者有所帮助。
一、简单计算器计算器是我们日常生活中经常使用的工具,而用C语言编写一个简单的计算器也是一个不错的练手项目。
下面是一个简单的计算器代码:```#include <stdio.h>int main(){char op;float num1, num2, result;printf("请输入运算符:+、-、*、/\n");scanf("%c", &op);printf("请输入两个数字:\n");scanf("%f %f", &num1, &num2);switch(op){case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':result = num1 / num2;break;default:printf("输入的运算符有误!\n"); return 0;}printf("计算结果为:%f\n", result);return 0;}```这个计算器可以进行加、减、乘、除四种基本运算,用户只需要输入运算符和两个数字即可得到计算结果。
这个小项目可以帮助初学者熟悉C语言的基本语法和流程控制语句。
二、猜数字游戏猜数字游戏是一种简单有趣的游戏,玩家需要根据提示猜出一个随机生成的数字。
下面是一个简单的猜数字游戏代码:```#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){int num, guess, count = 0;srand(time(0));num = rand() % 100 + 1;printf("猜数字游戏开始!\n");do{printf("请输入一个1-100之间的整数:\n");scanf("%d", &guess);count++;if(guess > num){printf("猜大了!\n");}else if(guess < num){printf("猜小了!\n");}else{printf("恭喜你猜对了!你一共猜了%d次。
编写一个简单的计算器程序计算器程序是一种非常实用的工具,它可以帮助我们进行数学计算,并简化复杂的运算过程。
本文将介绍如何编写一个简单的计算器程序,实现基本的加减乘除运算。
首先,我们需要确定计算器程序的功能和界面设计。
在本文中,我们将使用Python编程语言来编写计算器程序,并使用命令行界面(CLI)进行交互。
这意味着我们将在终端窗口中输入表达式,并显示结果。
接下来,我们需要考虑计算器程序的基本运算功能。
一个简单的计算器需要实现四个基本的运算:加法、减法、乘法和除法。
我们将使用函数来实现每个运算功能。
以下是一个示例代码:```pythondef add(x, y):return x + ydef subtract(x, y):return x - ydef multiply(x, y):return x * ydef divide(x, y):return x / y```在这个示例代码中,我们定义了四个函数,每个函数接受两个参数,并返回计算结果。
接下来,我们需要处理输入表达式并调用相应的运算函数。
我们将使用一个循环来持续接收用户输入,并在用户输入“exit”时退出程序。
以下是一个示例代码:```pythonwhile True:expression = input("请输入一个表达式:")if expression == "exit":break#解析表达式,提取运算符和操作数operator = Nonefor op in ["+", "-", "*", "/"]:if op in expression:operator = opbreakif not operator:print("表达式错误,请重新输入!") continueoperands = expression.split(operator) x = float(operands[0])y = float(operands[1])if operator == "+":result = add(x, y)elif operator == "-":result = subtract(x, y)elif operator == "*":result = multiply(x, y)elif operator == "/":result = divide(x, y)print("运算结果:", result)print("谢谢使用,再见!")```在这个示例代码中,我们使用了一个无限循环来持续接收用户输入。
如何创建一个简单的计算器程序计算器程序是计算机编程中的基本项目之一。
无论是日常的数学运算还是简单的计算任务,计算器程序能够提供方便和效率。
在本文中,我们将探讨如何创建一个简单的计算器程序。
1. 设计界面首先,我们需要设计一个用户界面,使用户能够输入运算表达式并获取计算结果。
一个简单的设计方法是使用文本框和按钮。
文本框用于接收用户输入的表达式,按钮用于触发计算并显示结果。
2. 获取用户输入在程序中,我们需要获取用户在文本框中输入的运算表达式。
为了实现这一点,我们可以使用编程语言提供的输入函数或方法。
例如,Python中的`input()`函数可以用于获取用户输入。
3. 解析表达式一旦获取到用户输入的运算表达式,我们需要解析它以便进行计算。
通常,我们可以使用栈这种数据结构来解析表达式。
栈能够方便地处理运算符的优先级和顺序。
4. 执行计算通过解析表达式,我们可以得到一个数字列表和一个操作符列表。
接下来,我们需要按照运算的顺序执行计算。
对于每个操作符,我们从数字列表中取出相应数量的数字进行计算,并将计算结果放回数字列表。
5. 显示结果计算完成后,我们将结果显示在用户界面中的某个区域中。
可以使用文本框或标签等控件来显示计算结果。
6. 处理错误在设计计算器程序时,我们还需要考虑错误处理。
例如,当用户输入的表达式不符合语法规则或包含除数为零的除法运算时,我们需要给出相应的错误提示。
7. 添加额外功能除了基本的四则运算,我们还可以给计算器程序添加其他功能,如求平方、开方、求正弦等。
这些功能可以根据用户的需求进行扩展。
通过以上步骤,我们可以创建一个简单的计算器程序。
该程序能够接收用户输入的数学表达式,解析并执行计算,并将结果显示在界面中。
这个计算器程序可以帮助用户快速进行基本的数学运算。
当然,如果需要更高级的功能和更复杂的计算,可能需要使用更专业的计算器软件或编程技术。
总结:本文介绍了创建一个简单的计算器程序的基本步骤。
简易计算器实验报告一、实验目的本次实验的目的是设计并实现一个简易计算器,能够进行基本的四则运算(加、减、乘、除),以及处理括号的优先级运算,提高对程序设计和逻辑思维的理解与应用能力。
二、实验原理1、四则运算的优先级规则在数学运算中,先计算括号内的表达式,然后按照先乘除后加减的顺序进行计算。
乘除法的优先级高于加减法,如果在同一级运算中,按照从左到右的顺序进行。
2、数据结构的选择使用栈(Stack)数据结构来存储操作数和运算符。
栈具有先进后出的特点,非常适合处理表达式中的括号和优先级。
3、算法思路首先,将输入的表达式进行解析,将数字和运算符分别存储到不同的栈中。
然后,根据运算符的优先级进行计算,将计算结果重新压入栈中,直到表达式计算完毕。
三、实验设备及环境1、编程工具:选择了 Python 语言作为主要的编程工具,使用PyCharm 集成开发环境进行代码编写和调试。
2、操作系统:Windows 10 操作系统。
四、实验步骤1、定义数据结构定义两个栈,一个用于存储操作数(operandStack),一个用于存储运算符(operatorStack)。
2、表达式解析遍历输入的表达式字符串,将数字转换为整数并压入操作数栈,将运算符压入运算符栈。
遇到左括号直接压入运算符栈,遇到右括号则进行括号内的运算。
3、运算处理当运算符栈不为空时,取出栈顶的运算符和两个操作数进行计算。
根据运算符的优先级进行相应的运算,将结果压入操作数栈。
4、最终结果当表达式解析完毕后,操作数栈中的唯一元素即为表达式的计算结果。
五、代码实现```pythonclass SimpleCalculator:def __init__(self):selfoperandStack =selfoperatorStack =def calculate(self, expression):for char in expression:if charisdigit():selfoperandStackappend(int(char))elif char in '+/()':if char =='(':selfoperatorStackappend(char)elif char ==')':while selfoperatorStack-1!='(':operator = selfoperatorStackpop()operand2 = selfoperandStackpop()operand1 = selfoperandStackpop()result = selfperformOperation(operand1, operand2, operator)selfoperandStackappend(result)selfoperatorStackpop()else:while selfoperatorStack and selfhasHigherPrecedence(selfoperatorStack-1, char):operator = selfoperatorStackpop()operand2 = selfoperandStackpop()operand1 = selfoperandStackpop()result = selfperformOperation(operand1, operand2, operator)selfoperandStackappend(result)selfoperatorStackappend(char)while selfoperatorStack:operator = selfoperatorStackpop()operand2 = selfoperandStackpop()operand1 = selfoperandStackpop()result = selfperformOperation(operand1, operand2, operator)selfoperandStackappend(result)return selfoperandStackpop()def hasHigherPrecedence(self, op1, op2):if op1 in '/' and op2 in '+':return Trueelif op1 in '+' and op2 in '+':return Falseelif op1 in '/' and op2 in '/':return Falsereturn Falsedef performOperation(self, operand1, operand2, operator):if operator =='+':return operand1 + operand2elif operator =='':return operand1 operand2elif operator =='':return operand1 operand2elif operator =='/':if operand2 == 0:raise ValueError("除数不能为 0")return operand1 / operand2if __name__ =="__main__":calculator = SimpleCalculator()expression ="2 + 3 (4 1) / 2"result = calculatorcalculate(expression)print("计算结果:", result)```六、实验结果与分析1、测试用例及结果输入表达式:"2 + 3 4",计算结果:14输入表达式:"(2 + 3) 4",计算结果:20输入表达式:"5 2 3",计算结果:-1输入表达式:"10 / 2 + 1",计算结果:62、结果分析对于简单的四则运算表达式,计算器能够正确计算出结果。
开发一个简单科学计算器(基于对话框模式的应用程序)一.开发目标及软件功能开发一个科学计算器程序,要求采用基于对话框模式的应用程序,至少具有加、减、乘、除四个基本功能,并在此基础上扩展平方、开方、三角函数等功能。
(1)仔细阅读操作过程,学习如何根据编译信息,定位语法错误。
(2)将瞥告与错误一律看作是错误。
(3)学习并模仿书上的程序书写风格。
二.编程步骤1.启动Visual C++6.0>选择File | new菜单项,弹出N HV对话框。
单击Projects选项卡, 项目类型选择MFC AppWizaid(exe),在Project name中填入工程名,在Location中填用户子目录路径(设置用户程序子目录的目的是,将所有编程时产生的中间文件和最终执行程序文件全部放在自己的目录中,以便管理)。
2.在程序向导的第1步选择建立一个基于对话框(Dialog based)的应用程序,点击“Finish” 结束向导。
3.在对话框上添加各类控件,设计对话框的界面如图所示。
在对话框中右键点击,弹出属性设置对话框(DialogProperties),标题(caption)中填入“迷你计算器”;其余各控件的参数设置如下表所示。
4.为对话框中的控件添加相应的成员变量:点击菜单“Vhw -^ClassWizard v,点击Member Variables"标签项,为对话框中的三个编辑框控件添加对应的成员变量如图所示。
添加成员变量的步骤为:选中'TDC_FIRSTS点击"Add Viarable",在弹出的对话框中,指定成员变量名为“m.first",分类为"Valued变量类型为"doubled点击“OK”确定。
其余依此类推。
5.为运算符按钮添加相应的消息映射函数:点击菜单“View —ClassWizaid”,选中**Message Maps” 标签,目标ID 号中选择“IDC—ADD”,在“Messages” 中选择“EN_CLICKED”,双击,弹出“添加成员函数”对话框,默认函数名为“OnAdd”,点击“OK”。
Android中使⽤GridLayout⽹格布局来制作简单的计算器App关于GridLayout在android4.0版本之前,如果想要达到⽹格布局的效果,⾸先可以考虑使⽤最常见的LinearLayout布局,但是这样的排布会产⽣如下⼏点问题:1、不能同时在X,Y轴⽅向上进⾏控件的对齐。
2、当多层布局嵌套时会有性能问题。
3、不能稳定地⽀持⼀些⽀持⾃由编辑布局的⼯具。
其次考虑使⽤表格布局TabelLayout,这种⽅式会把包含的元素以⾏和列的形式进⾏排列,每⾏为⼀个TableRow对象,也可以是⼀个View对象,⽽在TableRow中还可以继续添加其他的控件,每添加⼀个⼦控件就成为⼀列。
但是使⽤这种布局可能会出现不能将控件占据多个⾏或列的问题,⽽且渲染速度也不能得到很好的保证。
android4.0以上版本出现的GridLayout布局解决了以上问题。
GridLayout布局使⽤虚细线将布局划分为⾏、列和单元格,也⽀持⼀个控件在⾏、列上都有交错排列。
⽽GridLayout使⽤的其实是跟LinearLayout类似的API,只不过是修改了⼀下相关的标签⽽已,所以对于开发者来说,掌握GridLayout还是很容易的事情。
GridLayout的布局策略简单分为以下三个部分:⾸先它与LinearLayout布局⼀样,也分为⽔平和垂直两种⽅式,默认是⽔平布局,⼀个控件挨着⼀个控件从左到右依次排列,但是通过指定android:columnCount设置列数的属性后,控件会⾃动换⾏进⾏排列。
另⼀⽅⾯,对于GridLayout布局中的⼦控件,默认按照wrap_content的⽅式设置其显⽰,这只需要在GridLayout布局中显式声明即可。
其次,若要指定某控件显⽰在固定的⾏或列,只需设置该⼦控件的android:layout_row和android:layout_column属性即可,但是需要注意:android:layout_row=”0”表⽰从第⼀⾏开始,android:layout_column=”0”表⽰从第⼀列开始,这与编程语⾔中⼀维数组的赋值情况类似。
Android开发实战:创建一个简单的计算器应用在当今的移动应用开发领域,Android平台凭借其广泛的用户群体和开放的生态系统成为了最受关注和热门的开发平台之一。
本文将引导读者通过实际案例,学习如何使用Android Studio和Java语言开发一个简单的计算器应用。
第一步:创建项目打开Android Studio并选择“创建新项目”,然后填写应用的名称和包名等信息。
选择适当的最低API级别和目标API级别,这取决于您所需的最低兼容版本和目标用户群。
第二步:设计界面在项目结构中打开“res”文件夹,然后右击“layout”文件夹并选择“新建布局资源文件”。
在弹出的对话框中输入布局文件的名称,并选择“约束布局”作为根布局。
通过拖拽和调整视图的位置和大小,设计一个简洁明了的计算器界面,包括数字按钮、运算符按钮和显示结果的文本框。
第三步:编写代码在“java”文件夹下的包名文件夹中,找到并打开“”文件。
在类的内部,创建必要的成员变量和UI元素的引用,如按钮和文本框。
然后,在“onCreate”方法中使用“findViewById”方法将UI元素与代码中的实例进行关联。
接下来,编写计算逻辑的代码。
您可以使用Java语言提供的数学运算方法,例如“add”、“subtract”、“multiply”和“divide”等。
在用户点击等号按钮时,获取用户输入的数字和运算符,并将其传递给计算方法进行计算。
最后,将计算结果显示在文本框中。
第四步:测试和调试使用模拟器或真实设备运行应用,并在计算器界面上测试各种场景和功能。
确保计算逻辑和用户交互的一致性,并处理各种可能的异常情况。
如果发现问题或错误,使用调试工具和日志输出来跟踪和修复错误。
第五步:发布应用一旦您对应用的功能和用户体验感到满意,您可以将其准备以APK文件的形式发布到Google Play商店或其他应用市场。
在发布前,确保应用的版本号、应用图标、应用截图和应用描述等信息准备完备。
模拟简单的计算器,输入两个数及运算符,进行两个数的加、减、乘、除四则运算,如输
本文主要讲述简单计算器的用法,它可以帮助我们解决计算麻烦。
简单计算器支持四则运算,包括加、减、乘、除,用户只需输入两个数,再选择其中一种运算符,便可以求解出运算结果。
比如在计算1+2时,首先,将1放入计算器,再按加号运算以把1+2,最后将2放入计算器,按等号,就可以得出1+2的结果。
同理,计算4*5时,需要将4输入计算器,然后按乘法号,将计算器的结果和5放入计算器,最后按等号即可得出4*5的结果。
由此可见,简单计算器的使用方法是非常容易的,只需要输入两个数,再选择相应的运算符,即可完成运算,计算非常方便。
简单计算器因其简单易用,安装软件和数据识别计算任务中非常有用,可以帮助我们更快、更准确地完成我们的工作。
Java源代码package com.example.jisuanqi; import java.util.Date;import android.app.Activity;import android.os.Bundle;import android.view.View;importandroid.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText;public class MainActivity extends Activity {private Button one;private Button two;private Button four; private Button five; private Button six; private Button seven; private Button eight; private Button nine; private Button zero; private Button dot; private Button add; private Button sub; private Button mult; private Button division; private Button amount; private Button clear;private Button sqrt;private Button pow;private EditText led;String num1 = "";String num2 = "";double num3 = 0;String rezult = "";String sign = null;int mark = 0;boolean flag = true;boolean dotmark = true;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState) ;setContentView(yout.activity_m ain);zero = (Button) findViewById(R.id.zero);one = (Button) findViewById(R.id.one);two = (Button) findViewById(R.id.two);three = (Button) findViewById(R.id.three);four = (Button) findViewById(R.id.four);five = (Button) findViewById(R.id.five);six = (Button) findViewById(R.id.six);seven = (Button) findViewById(R.id.seven);eight = (Button) findViewById(R.id.eight);nine = (Button) findViewById(R.id.nine);dot = (Button) findViewById(R.id.dot);add = (Button)findViewById(R.id.add);sub = (Button) findViewById(R.id.sub);mult = (Button) findViewById(R.id.mult);division = (Button) findViewById(R.id.division);clear = (Button) findViewById(R.id.clear);amount = (Button) findViewById(R.id.amount);time = (Button) findViewById(R.id.time);pow = (Button) findViewById(R.id.pow);sqrt = (Button) findViewById(R.id.sqrt);led = (EditText) findViewById(R.id.led);zero.setOnClickListener(new OnClickListener() {public void onClick(View v) {if (mark == 0) {num1 = num1 + "0";led.setText(num1);} else if (mark == 1) {num2 = num2 + "0";led.setText(num1 + sign + num2);} else {num1 = String.valueOf(num3);num2 = num2 + "0";led.setText(num1 + sign + num2);}}});one.setOnClickListener(new OnClickListener() {public void onClick(View v) {if (mark == 0) {num1 = num1 + "1";led.setText(num1);} else if (mark == 1) {num2 = num2 + "1";led.setText(num1 + sign + num2);} else {num1 = String.valueOf(num3);num2 = num2 + "1";led.setText(num1 + sign + num2);}}});two.setOnClickListener(new OnClickListener() {public void onClick(View v) {if (mark == 0) {num1 = num1 + "2";led.setText(num1);} else if (mark == 1) {num2 = num2 + "2";led.setText(num1 + sign + num2);} else {num1 = String.valueOf(num3);num2 = num2 + "2";led.setText(num1 + sign + num2);}}});three.setOnClickListener(new OnClickListener() {public void onClick(View v) {if (mark == 0) {num1 = num1 + "3";led.setText(num1);} else if (mark == 1) {num2 = num2 + "3";led.setText(num1 + sign + num2);} else {num1 = String.valueOf(num3);num2 = num2 + "3";led.setText(num1 + sign + num2);}}});four.setOnClickListener(new OnClickListener() {public void onClick(View v) {if (mark == 0) {num1 = num1 + "4";led.setText(num1);} else if (mark == 1) {num2 = num2 + "4";led.setText(num1 + sign +num2);} else {num1 = String.valueOf(num3);num2 = num2 + "4";led.setText(num1 + sign + num2);}}});five.setOnClickListener(new OnClickListener() {public void onClick(View v) {if (mark == 0) {num1 = num1 + "5";led.setText(num1);} else if (mark == 1) {num2 = num2 + "5";led.setText(num1 + sign + num2);} else {num1 = String.valueOf(num3);num2 = num2 + "5";led.setText(num1 + sign + num2);}}});six.setOnClickListener(newOnClickListener() {public void onClick(View v) {if (mark == 0) {num1 = num1 + "6";led.setText(num1);} else if (mark == 1) {num2 = num2 + "6";led.setText(num1 + sign + num2);} else {num1 = String.valueOf(num3);num2 = num2 + "6";led.setText(num1 + sign + num2);}}});seven.setOnClickListener(new OnClickListener() {public void onClick(View v) {if (mark == 0) {num1 = num1 + "7";led.setText(num1);} else if (mark == 1) {num2 = num2 + "7";led.setText(num1 + sign + num2);} else {num1 =String.valueOf(num3);num2 = num2 + "7";led.setText(num1 + sign + num2);}}});eight.setOnClickListener(new OnClickListener() {public void onClick(View v) {if (mark == 0) {num1 = num1 + "8";led.setText(num1);} else if (mark == 1) {num2 = num2 + "8";led.setText(num1 + sign + num2);} else {num1 = String.valueOf(num3);num2 = num2 + "8";led.setText(num1 + sign + num2);}}});nine.setOnClickListener(new OnClickListener() {public void onClick(View v) {if (mark == 0) {num1 = num1 + "9";led.setText(num1);} else if (mark == 1) {num2 = num2 + "9";led.setText(num1 + sign + num2);} else {num1 = String.valueOf(num3);num2 = num2 + "9";led.setText(num1 + sign + num2);}}});add.setOnClickListener(new OnClickListener() {public void onClick(View v) {if (flag) {sign = "+";mark++;flag = false;dotmark = true;}}});sub.setOnClickListener(new OnClickListener() {public void onClick(View v) {if (flag) {sign = "-";mark++;flag = false;dotmark = true;}}});mult.setOnClickListener(new OnClickListener() {public void onClick(View v) {if (flag) {sign = "*";mark++;flag = false;dotmark = true;}}});division.setOnClickListener(new OnClickListener() {public void onClick(View v) {if (flag) {sign = "÷";mark++;flag = false;dotmark = true;}}});pow.setOnClickListener(newOnClickListener() {public void onClick(View v) {if (flag) {sign = "^";mark++;flag = false;dotmark = true;}}});dot.setOnClickListener(new OnClickListener() {public void onClick(View v) {if (dotmark) {if (mark == 0) {num1 = num1 + ".";led.setText(num1);} else if (mark == 1) {num2 = num2 + ".";led.setText(num1 + sign + num2);} else {num1 = String.valueOf(num3);num2 = num2 + ".";led.setText(num1 + sign + num2);}dotmark = false;}}});amount.setOnClickListener(new OnClickListener() { // 等于时发生的运算public void onClick(View v) {flag = true;dotmark = true;if (sign.equals("+")) {double x = Double.parseDouble(num1);double y = Double.parseDouble(num2);num3 = x + y;rezult =String.valueOf(num3);led.setText(num1 + sign + num2 + "=" + rezult);num2 = "";} else if (sign.equals("-")) {double x = Double.parseDouble(num1);double y = Double.parseDouble(num2);num3 = x - y;rezult = String.valueOf(num3);led.setText(num1 + sign + num2 + "=" + rezult);num2 = "";} else if (sign.equals("*")) {double x = Double.parseDouble(num1);double y = Double.parseDouble(num2);num3 = x * y;rezult = String.valueOf(num3);led.setText(num1 + sign + num2 + "=" + rezult);num2 = "";} else if (sign.equals("÷")) {double x = Double.parseDouble(num1);double y =Double.parseDouble(num2);num3 = x / y;rezult = String.valueOf(num3);led.setText(num1 + sign + num2 + "=" + rezult);num2 = "";} else if (sign.equals("^")) {double x = Double.parseDouble(num1);double y = Double.parseDouble(num2);num3 = Math.pow(x, y);rezult = String.valueOf(num3);led.setText(num1 + sign + num2 + "=" + rezult);num2 = "";}}});clear.setOnClickListener(new OnClickListener() {public void onClick(View v) {num1 = "";num2 = "";num3 = 0;mark = 0;sign = "";led.setText("0");flag = true;dotmark = true;}});sqrt.setOnClickListener(new OnClickListener() {public void onClick(View v) {if (mark == 0 && !num1.equals("") && num2.equals("")) {double parent = Double.parseDouble(num1);double root = Math.sqrt(parent);rezult = String.valueOf(root);led.setText(rezult);num1 = "";}}});time.setOnClickListener(new OnClickListener() {public void onClick(View v) {Date date = new Date();led.setText(date.toLocaleString());}});}}Layout(布局)<LinearLayoutxmlns:android="http://schemas /apk/res/android"xmlns:tools="http://schemas.a /tools"android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:orientation="vertical "tools:context=".MainActivity" ><LinearLayoutandroid:layout_width="fill_pa rent"android:layout_height="wrap_c ontent"android:layout_weight="2" android:orientation="horizont al"><EditTextandroid:id="@+id/led" android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_margin="3dip" android:background="#ccc" android:gravity="top|right"android:text="" android:textColor="#000" android:textSize="12pt"/> </LinearLayout><LinearLayoutandroid:layout_width="fill_pa rent"android:layout_height="wrap_c ontent"android:layout_weight="1"android:orientation="horizont al"><Buttonandroid:id="@+id/time" android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_weight="1" android:text="time"android:textSize="10pt"/><Buttonandroid:id="@+id/pow"android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_weight="1"android:text="pow" android:textSize="10pt"/><Buttonandroid:id="@+id/sqrt" android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_weight="1" android:text="sqrt"android:textSize="10pt"/><Buttonandroid:id="@+id/clear" android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_weight="1" android:text="clear" android:textSize="10pt"/> </LinearLayout><LinearLayoutandroid:layout_width="fill_pa rent"android:layout_height="wrap_c ontent"android:layout_weight="1" android:orientation="horizont al"><Buttonandroid:id="@+id/seven" android:layout_width="fill_pa rent"android:layout_height="fill_parent"android:layout_weight="1"android:text="7" android:textSize="12pt"/><Buttonandroid:id="@+id/eight" android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_weight="1"android:text="8" android:textSize="12pt"/><Buttonandroid:id="@+id/nine" android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_weight="1"android:text="9" android:textSize="12pt"/><Buttonandroid:id="@+id/division" android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_weight="1"android:text="÷" android:textSize="12pt"/> </LinearLayout><LinearLayoutandroid:layout_width="fill_pa rent"android:layout_height="wrap_c ontent"android:layout_weight="1" android:orientation="horizont al"><Buttonandroid:id="@+id/four" android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_weight="1"android:text="4" android:textSize="12pt"/><Buttonandroid:id="@+id/five" android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_weight="1"android:text="5" android:textSize="12pt"/><Buttonandroid:id="@+id/six" android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_weight="1"android:text="6" android:textSize="12pt"/><Buttonandroid:id="@+id/mult" android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_weight="1"android:text="*" android:textSize="12pt"/> </LinearLayout><LinearLayoutandroid:layout_width="fill_pa rent"android:layout_height="wrap_c ontent"android:layout_weight="1" android:orientation="horizont al"><Buttonandroid:id="@+id/one" android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_weight="1"android:text="1" android:textSize="12pt"/><Buttonandroid:id="@+id/two" android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_weight="1"android:text="2" android:textSize="12pt"/><Buttonandroid:id="@+id/three" android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_weight="1"android:text="3" android:textSize="12pt"/><Buttonandroid:id="@+id/sub" android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_weight="1"android:text="-"android:textSize="12pt"/> </LinearLayout><LinearLayoutandroid:layout_width="fill_pa rent"android:layout_height="wrap_c ontent"android:layout_weight="1" android:orientation="horizont al"><Buttonandroid:id="@+id/dot" android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_weight="1"android:text="." android:textSize="12pt"/><Buttonandroid:id="@+id/zero" android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_weight="1"android:text="0" android:textSize="12pt"/><Buttonandroid:id="@+id/amount" android:layout_width="fill_pa rent"android:layout_height="fill_p arent"android:layout_weight="1"android:text="=" android:textSize="12pt"/><Buttonandroid:id="@+id/add" android:layout_width="fill_pa rent"。
寰烁软件开发考试题姓名:分数:一、选择题(每题1分,总分56分)1.二进制语言是属于( )A.面向机器语言B.面向问题语言C.面向过程语言D.面向汇编语言2.下列语言中不属于面向过程的语言是( )A.高级语言B.低级语言C.C语言D.PASCAL语言3.下列字符中属于键盘符号的是( )A.\B.\nC. \tD. \b4.下列字符列中,不是用来表达转义字符是( )A.\\B.\'C.074D. \05.不是C语言提供的合法关键字是()A.switchB.beginC.caseD.default6.下列字符列中,能作为单个标识符是()lA.? aB. a=2C.a.3D. a___37.在C语言中,下列说法中错误的是()A.函数定义可以分为两个部分:函数说明部分和函数体B.主函数可以调用任何非主函数C.任何非主函数可以调用其它任何非主函数D.程序可以从任何函数开始执行8.下列字符列中,可以作为“字符串常量”的是( )A. ABCB. ABC”C.’abc’D.’a’9.在以字节存储字符的系统中,’\n ’在内存占用的字节数是( )A.1B.2C.3D.410.字符串”XyZ”在内存占用的字节数是( )A.3B.4C.6D.811.在以下字符列中,合法的长整型常数是( )A. OLB. 4962710C. 0.054838743D. 2.1869el012.一个char型数据,它的值在内存中存放的是()A.ASCll代码值B.BCD代码值C.内码值D.十进制代码值13.设变量 m,n,a,b,c,d均为以执行(m=a==)||(n=c==d)后,m,n的值是( )A.0,0B.0,1C.l,0D.1,114.设a为5,执行下列计算后,b的值不为2的是( )A. b=a/2B. b=6-(--a)C. b=a%2D. b=a<3?3:215.执行语句“x=(a=3,b=a--);”后,X,a,b的值依次为( )A.3,3,2B.2,3,2C.3,2,3D.2,3,316.设整型变量m,n,a,b,c,d均为1,执行“( m=a>b)&&(n=a>b)"后m,n的值是( )A.0,0B.0,lC.1,0D.1,l17. 设有代码“int a=3;”,则执行了语句“a+=a-= a*a;”后,变量a的值是( )A.3B. 0C. 9D. -1218.在以下一组运算符中,优先级最高的运算符是( )A.<=B.=C.%D.&&19.设整型变量i的值为3,则计算表达式i---i后表达式的值为( )A.0B.lC.2D.表达式出错20.设整型变量 a、b、c均为2,表达式 a+++b+++c++ 的结果是( )A.6B.9C.8D.表达式出错21.若已定义 x和 y为double类型,则表达式: x=l, y=x+3/2结果是( )A.lB.2C.2.0D.2.522.设a为整型变量,下列C表达式中,不能表达数学关系式:10A.10B.a==11||a==12|| a==13|| a==14C.a>10&&a<15D.!(a<=10)&&!(a>=15)23.下列表达式中,正确的C赋值表达式是( )A.a=7+b+C=a+7B. C=7+b++=a+7C.a=(7+b, b++, a+7)D. a= 7+b, c=a+724.若有以下定义: char a;int b;float c; double d;则表达式a*b+d-c 值的类型为( )A.floatB. intC. charD. double25.表达式“9!=7”的值是( )A.trueB.非0值C.0D.126.用十进制数表示表达式“12|012”的运算结果是( )A.1B.0C. 14D. 1627.设字符型变量 a=3,b=6,计算表达式 C=(a^b)<< 2后C的二进制值是( )A. 00011100B.00000111C. 00000001D. 0001010028.设 a,b和 c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为 0的是()A.’a’&&b’B.a<=bC.a||b+c&&b-cD. !((a<b)&&!c||1)29.设Ch是Char型变量,其值为’A’,则下面表达式的值是()ch=(ch>=’A’&&ch<=’Z’)?(ch+32):chA.’A’B.’a’C.’Z’D.’z’30.设有无符号短整型变量i、j、k,i值为013,j值为 OX13。
Android开发实战:创建一个简单的计算器应用
在如今移动互联网的时代,手机已经成为每个人生活中不可或缺的一部分。
而现代手机中最重要的应用之一,莫过于计算器。
在这篇文章中,我将向大家介绍如何使用Android开发来创建一个简单的计算器应用,让我们一起开始这个富有挑战的实战项目吧!
1. 搭建开发环境
要开始开发一个Android应用,首先需要搭建开发环境。
目前,Android Studio是最常用的开发工具。
你可以去官方网站上下载并安装它。
安装完成后,你可以打开Android Studio,创建一个新的项目来开始你的开发之旅。
2. 设计应用界面
在开发Android应用的过程中,视觉化界面设计是非常重要的一步。
你可以使用Android Studio提供的可视化编辑器来设计你的应用界面。
这里,我们将创建一个简单的计算器应用,所以我们的界面将包含一些按钮和文本框。
3. 添加事件处理器
一旦界面设计完成,接下来需要为按钮添加事件处理器。
在计算器应用中,按钮被点击后,需要相应地执行一些计算操作。
你可以在Java代码中编写事件处理器,然后将其与按钮关联起来。
在事件处理器中,你可以使用适当的逻辑来执行所需的计算操作,并将结果显示在文本框中。
4. 实现基本的计算功能
一个计算器应用的核心是它的计算功能。
在这个实战项目中,我
们将实现基本的加减乘除运算。
你可以使用Java语言中的运算符来实
现这些功能,并确保逻辑正确,并处理一些异常情况,如除以零等。
5. 优化用户体验
在设计应用界面以及实现计算功能之后,你可以考虑进一步优化
用户体验。
例如,你可以添加一些动画效果来让用户感觉更加流畅,
或者添加一些提示信息来引导用户操作。
你还可以考虑添加更多的功能,如清除按钮或百分比计算等,以提高应用的实用性和用户满意度。
6. 调试和测试
在完成应用的开发之后,你需要进行调试和测试来确保应用的正
常运行。
你可以使用Android Studio的调试工具来定位和解决代码中
的错误。
此外,你还可以模拟不同的使用情况和输入来测试应用的性
能和稳定性。
7. 发布和推广
最后,当你对应用的性能和质量满意之后,你可以考虑发布和推
广你的应用。
你可以通过Google Play等应用商店来发布你的应用,
并为用户提供下载和安装。
除此之外,你还可以在社交媒体和在线论
坛等平台上宣传你的应用,以吸引更多的用户使用。
通过这个实战项目,你将学到许多有关Android应用开发的知识
和技能。
从搭建开发环境到实现计算功能,再到优化用户体验,这个
项目将带领你逐步掌握Android开发的各个方面。
希望你能从中获得丰富的经验和乐趣,并且能够在将来的开发工作中运用这些知识。
加油吧,Android开发者!。