`

实现一个简易计算器

 
阅读更多

actibity_main.xml

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background_1"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/editText"
        android:layout_width="fill_parent"
        android:layout_marginTop="40dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_height="60dp"       
        android:editable="false"//设置为不可编辑
        android:gravity="bottom|right"//光标设置到最右边
        android:textSize="40sp"
        android:text="@string/editText" />

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:layout_marginTop="150dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp">

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <Button
                android:id="@+id/button_clear"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_clear" />

            <Button
                android:id="@+id/button_div"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_div"/>

            <Button
                android:id="@+id/button_mul"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_mul"/>

            <Button
                android:id="@+id/button_delete"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_delete"/>

        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
            
            <Button
                android:id="@+id/button_7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_7"/>

            <Button
                android:id="@+id/button_8"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_8"/>

            <Button
                android:id="@+id/button_9"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_9"/>

            <Button
                android:id="@+id/button_sub"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_sub"/>
            
        </TableRow>

        <TableRow
            android:id="@+id/tableRow3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
            
            <Button
                android:id="@+id/button_4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_4"/>

            <Button
                android:id="@+id/button_5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_5"/>

            <Button
                android:id="@+id/button_6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_6"/>

            <Button
                android:id="@+id/button_add"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_add"/>
            
        </TableRow>

        <TableRow
            android:id="@+id/tableRow4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
            
            <Button
                android:id="@+id/button_1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_1"/>

            <Button
                android:id="@+id/button_2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_2"/>

            <Button
                android:id="@+id/button_3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_3"/>

            <Button
                android:id="@+id/button_paren"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_paren"/>
            
        </TableRow>
          <TableRow
            android:id="@+id/tableRow5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
            
            <Button
                android:id="@+id/button_0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_0"/>

            <Button
                android:id="@+id/button_point"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_point"/>

            <Button
                android:id="@+id/button_com"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_com"/>

            <Button
                android:id="@+id/button_equal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onClick"
                android:text="@string/button_equal"/>
            
        </TableRow>
    </TableLayout>
</LinearLayout>



MainActivity.java

 

public class MainActivity extends Activity implements OnClickListener{
	
	//声明变量
	private EditText editText;
	private Button button_0;
	private Button button_1;
	private Button button_2;
	private Button button_3;
	private Button button_4;
	private Button button_5;
	private Button button_6;
	private Button button_7;
	private Button button_8;
	private Button button_9;
	private Button button_clear;
	private Button button_div;
	private Button button_mul;
	private Button button_delete;
	private Button button_sub;
	private Button button_add;
	private Button button_paren;
	private Button button_point;
	private Button button_com;
	private Button button_equal;	
	
	private List<Item> items=new ArrayList<Item>();

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		//获得对象引用
		editText=(EditText)this.findViewById(R.id.editText);
		button_0=(Button)this.findViewById(R.id.button_0);
		button_1=(Button)this.findViewById(R.id.button_1);
		button_2=(Button)this.findViewById(R.id.button_2);
		button_3=(Button)this.findViewById(R.id.button_3);
		button_4=(Button)this.findViewById(R.id.button_4);
		button_5=(Button)this.findViewById(R.id.button_5);
		button_6=(Button)this.findViewById(R.id.button_6);
		button_7=(Button)this.findViewById(R.id.button_7);
		button_8=(Button)this.findViewById(R.id.button_8);
		button_9=(Button)this.findViewById(R.id.button_9);
		button_clear=(Button)this.findViewById(R.id.button_clear);
		button_div=(Button)this.findViewById(R.id.button_div);
		button_mul=(Button)this.findViewById(R.id.button_mul);
		button_delete=(Button)this.findViewById(R.id.button_delete);
		button_sub=(Button)this.findViewById(R.id.button_sub);
		button_add=(Button)this.findViewById(R.id.button_add);
		button_paren=(Button)this.findViewById(R.id.button_paren);
		button_point=(Button)this.findViewById(R.id.button_point);
		button_com=(Button)this.findViewById(R.id.button_com);
		button_equal=(Button)this.findViewById(R.id.button_equal);		
		
		//注册监听器,匿名内部类	
		editText.setOnClickListener(this);
		button_0.setOnClickListener(this);
		button_1.setOnClickListener(this);
		button_2.setOnClickListener(this);
		button_3.setOnClickListener(this);
		button_4.setOnClickListener(this);
		button_5.setOnClickListener(this);
		button_6.setOnClickListener(this);
		button_7.setOnClickListener(this);
		button_8.setOnClickListener(this);
		button_9.setOnClickListener(this);
		button_clear.setOnClickListener(this);
		button_div.setOnClickListener(this);
		button_mul.setOnClickListener(this);
		button_delete.setOnClickListener(this);
		button_sub.setOnClickListener(this);
		button_add.setOnClickListener(this);
		button_paren.setOnClickListener(this);
		button_point.setOnClickListener(this);
		button_com.setOnClickListener(this);
		button_equal.setOnClickListener(this);		
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		String string=editText.getText().toString();
		switch(v.getId()){
		case R.id.button_0:
			editText.append("0");
			break;
		case R.id.button_1:
			editText.append("1");
			break;
		case R.id.button_2:
			editText.append("2");
			break;
		case R.id.button_3:
			editText.append("3");
			break;
		case R.id.button_4:
			editText.append("4");
			break;
		case R.id.button_5:
			editText.append("5");
			break;
		case R.id.button_6:
			editText.append("6");
			break;
		case R.id.button_7:
			editText.append("7");
			break;
		case R.id.button_8:
			editText.append("8");
			break;
		case R.id.button_9:
			editText.append("9");
			break;
		case R.id.button_clear:
			editText.setText("");
			items.clear();
			break;
		case R.id.button_div:
			items.add(new Item(Double.parseDouble(editText.getText().
toString()),Types.NUM));
			checkAndComputer();
			items.add(new Item(0,Types.DIV));
			editText.setText("");
			break;
		case R.id.button_mul:
			items.add(new Item(Double.parseDouble(editText.getText().
toString()),Types.NUM));
			checkAndComputer();
			items.add(new Item(0,Types.X));
			editText.setText("");
			break;
		case R.id.button_delete:
			break;
		case R.id.button_sub:
			items.add(new Item(Double.parseDouble(editText.getText().
toString()),Types.NUM));
			checkAndComputer();
			items.add(new Item(0,Types.SUB));
			editText.setText("");
			break;
		case R.id.button_add:
			items.add(new Item(Double.parseDouble(editText.getText().
toString()),Types.NUM));
			checkAndComputer();
			items.add(new Item(0,Types.ADD));
			editText.setText("");
			break;
		case R.id.button_paren:
			break;
		case R.id.button_point:
			break;
		case R.id.button_com:
			break;
		case R.id.button_equal:
			items.add(new Item(Double.parseDouble(editText.getText().
toString()),Types.NUM));
			checkAndComputer();
			editText.setText(items.get(0).value+"");
			items.clear();
			break;
		}
	}

	public void checkAndComputer(){
		if(items.size()>=3){			
			double a=items.get(0).value;
			double b=items.get(2).value;
			int opt=items.get(1).type;			
			items.clear();			
			switch(opt){
			case Types.ADD:
				items.add(new Item(a+b,Types.NUM));
				break;
			case Types.SUB:
				items.add(new Item(a-b,Types.NUM));
				break;
			case Types.X:
				items.add(new Item(a*b,Types.NUM));
				break;
			case Types.DIV:
				items.add(new Item(a/b,Types.NUM));
				break;
			}
		}
	}
}
Item.java
public class Item {
	
	public Item(double value,int type){
		this.value=value;
		this.type=type;
	}
	
	public double value=0;
	public int type=0;
	
}
Types.java

 

public class Types {

	public static final int ADD=1;
	public static final int SUB=2;
	public static final int X=3;
	public static final int DIV=4;
	public static final int NUM=1;
}
 
 
 
  • 大小: 153.2 KB
分享到:
评论

相关推荐

    用vc实现一个简易计算器功能

    编程实现一个简易计算器,实现基本的加减乘除运算功能。在计算器的面板上,有0—9数字的按钮,同时还有加减乘除的运算按钮已经清空运算框按钮,用户可以直接点击 面板进行输入数字并计算。输入和输出结果数据共用一...

    java实现简易计算器

    以上就是基于Java实现简易计算器的基本思路和关键步骤。实际的代码实现会更具体地涉及语法细节和逻辑处理。如果你已经有一个名为"计算器"的Java源代码文件,你可以通过编译和运行它来体验这个计算器的工作原理。

    javaEE网页版简易计算器(源码)

    在本项目中,"javaEE网页版简易计算器(源码)"是一个基于JavaEE平台的Web应用程序,旨在实现一个简单的在线计算器,支持2位数之间的基本数学运算,包括加法、减法、乘法和除法。这个项目利用了MyEclipse作为开发...

    java 简易计算器的实现

    总之,Java实现简易计算器是一个学习基础编程概念的好项目,包括类的定义、方法的使用、控制流以及用户输入处理。这个项目可以帮助初学者更好地理解面向对象编程和Java的核心特性。通过阅读和理解"简易计算器.java...

    51单片机实现简易计算器功能

    总结来说,51单片机实现简易计算器是一个综合性的工程实践,涵盖了硬件接口设计、软件编程和系统集成等多个方面。通过这样的项目,不仅可以提升对单片机的理解,还能锻炼解决问题和动手实践的能力。对于电子爱好者和...

    基于java的简易计算器

    基于java的简易计算器,实现简单的加减乘除功能,用于学习java基础知识参考

    简易计算器_c++jianyijisuanqi_if_简易计算器_labview_

    实现简易计算器,我们可以创建一个前面板,包含两个数值输入控件、一个运算选择下拉框、一个运算结果显示标签,以及一个运行按钮。 背后的代码面板(也叫程序框图)将使用条件结构(if选板)来处理不同的运算情况。...

    嵌入式实验报告-简易计算器.pdf

    本实验报告的主要目的是设计和实现一个具有加减乘除功能的简易计算器,使用数码管和4X4矩阵式键盘来实现计算器的功能。下面是本实验报告的知识点总结: 1. 计算器的原理:计算器的原理是基于数码管和4X4矩阵式键盘...

    简易计算器做单元测试.docx

    本文将详细介绍如何使用MyEclipse软件和JUnit4框架来实现一个简易计算器的单元测试。单元测试是软件测试的一种,旨在对软件中的最小单元进行测试,以确保其正确性和可靠性。JUnit4是Java语言中的一种流行的单元测试...

    EDA大作业_简易计算器

    通过设计和实现简易计算器,我们加深了对EDA的理解和认识。我们学习了如何使用逻辑门来设计数字电路,如何使用逐位加法和逐位乘法来实现加法和乘法运算。同时,我们也学习了如何将计算器下载到实验箱上,以验证...

    jquery实现简易计算器源码下载

    【jQuery 实现简易计算器】 jQuery 是一款广泛应用于前端开发的 JavaScript 库,它简化了 JavaScript 的 DOM 操作、事件处理和动画制作等任务。在这个项目中,我们将探讨如何使用 jQuery 来实现一个简易计算器,这...

    微型计算机课程设计-简易计算器(李智).pdf

    本设计项目使用DOSBox来模拟微型计算机的运行环境,实现简易计算器的设计。 知识点3:中断 中断是计算机科学中一个重要的概念,指计算机在执行当前任务时, suddenly受到外部事件或信号的中断,需要暂停当前任务,...

    Qt实现简易计算器

    首先,我们看到标题是"Qt实现简易计算器",这意味着我们要创建一个具有基本计算功能的用户界面。在这个项目中,我们有以下关键文件: 1. `main.cpp`:这是程序的入口点,通常包含了Qt应用的初始化代码,如`...

    android开发——简易计算器的设计报告.pdf

    Android 简易计算器设计报告 Android 简易计算器设计报告是 Android 开发领域中的一个重要项目,该报告...该报告为 Android 开发者提供了一个完整的设计和实现方案,旨在帮助他们快速开发和实现简易计算器应用程序。

    逆波兰实现的简易计算器

    6. **用户交互**:为了实现一个简易计算器,我们还需要设计用户界面,允许用户输入RPN表达式并显示计算结果。C#提供了多种UI框架,如Windows Forms或WPF,可以创建一个简单的文本框让用户输入,一个按钮触发计算,...

    C++关于简易计算器的实现

    在C++编程中,实现一个简易计算器涉及到许多关键知识点,包括表达式解析、数据类型处理以及错误处理。这里我们将深入探讨这些主题。 首先,中缀表达式是我们日常使用的数学表达式形式,例如 "2 + 3 * 4"。然而,在...

Global site tag (gtag.js) - Google Analytics