课后练习——计算器运算

package com.example.wang.jisuanji;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Main2Activity extends Activity {

    //单目运算可以实现连续进行,实现不了运算符之间的运算

    String str = "";
    String str1="";
    String str2="";
    String string="";
    String stringq="";
    String stringh="";

    String[] strings=new String[200];

    String[] strings1=new String[200];

    TextView input;
    TextView output;
    Button bt_0;
    Button bt_1;
    Button bt_2;
    Button bt_3;
    Button bt_4;
    Button bt_5;
    Button bt_6;
    Button bt_7;
    Button bt_8;
    Button bt_9;
    Button bt_jia;
    Button bt_jian;
    Button bt_cheng;
    Button bt_chu;
    Button bt_DEL;
    Button bt_C;
    Button bt_dian;
    Button bt_deng;
    int i, j;
    int g =0;
    int k=0;
    double a = 0;
    double b = 0;
    double c=0 ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        input = (TextView) findViewById(R.id.input);
        output = (TextView) findViewById(R.id.output);
        bt_0 = (Button) findViewById(R.id.bt_0);
        bt_1 = (Button) findViewById(R.id.bt_1);
        bt_2 = (Button) findViewById(R.id.bt_2);
        bt_3 = (Button) findViewById(R.id.bt_3);
        bt_4 = (Button) findViewById(R.id.bt_4);
        bt_5 = (Button) findViewById(R.id.bt_5);
        bt_6 = (Button) findViewById(R.id.bt_6);
        bt_7 = (Button) findViewById(R.id.bt_7);
        bt_8 = (Button) findViewById(R.id.bt_8);
        bt_9 = (Button) findViewById(R.id.bt_9);
        bt_jia = (Button) findViewById(R.id.bt_jia);
        bt_jian = (Button) findViewById(R.id.bt_jian);
        bt_cheng = (Button) findViewById(R.id.bt_cheng);
        bt_chu = (Button) findViewById(R.id.bt_chu);
        bt_dian = (Button) findViewById(R.id.bt_dian);
        bt_DEL = (Button) findViewById(R.id.bt_DEL);
        bt_C = (Button) findViewById(R.id.bt_C);
        bt_deng = (Button) findViewById(R.id.bt_deng);

        Bt_OnClickListener bt_onClickListener = new Bt_OnClickListener();

        bt_0.setOnClickListener(bt_onClickListener);
        bt_1.setOnClickListener(bt_onClickListener);
        bt_2.setOnClickListener(bt_onClickListener);
        bt_3.setOnClickListener(bt_onClickListener);
        bt_4.setOnClickListener(bt_onClickListener);
        bt_5.setOnClickListener(bt_onClickListener);
        bt_6.setOnClickListener(bt_onClickListener);
        bt_7.setOnClickListener(bt_onClickListener);
        bt_8.setOnClickListener(bt_onClickListener);
        bt_9.setOnClickListener(bt_onClickListener);
        bt_dian.setOnClickListener(bt_onClickListener);
        //bt_jia.setOnClickListener(bt_onClickListener);
        bt_C.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                str = "0";
                input.setText(str);
                str = "";
                output.setText("");
                string="";
                a=0;
                k=g=0;
            }
        });

        bt_jia.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Button bt = (Button) v;
                str1 = str;//str1放前一个数据
             //   string = str;//存放加号以前的数据
                str = str + bt.getText().toString();

                strings[g]=str;
                Log.e("TAG","strings["+g+"]="+strings[g]);
                g++;

                input.setText(str);

                stringq=string;
                if (i==1)
                {
                   // a = a-Double.parseDouble(stringq);
                    if (a==0)
                    {
                        a =Double.parseDouble(stringq)-a;
                    }
                    else
                    {
                        Log.e("TAG","jianss_a="+a);
                        a =a-Double.parseDouble(stringq);
                    }
                }
                else if (i==2)
                {
                    if (a==0)
                    {
                        a=a+1;
                    }
                    a = Double.parseDouble(stringq)*a;
                }
                else if(i==3)
                {
                    if (a==0)
                    {
                        a=a+1;
                        a = Double.parseDouble(stringq)/a;
                    }
                    else
                    {
                        a =a/Double.parseDouble(stringq);
                    }
                }
                else if (i==3)
                {
                    if (a==0)
                    {
                        a=a+1;
                        a = Double.parseDouble(stringq)/a;
                    }
                    else
                    {
                        a =a/Double.parseDouble(stringq);
                    }
                }

                else
                {
                    a = Double.parseDouble(stringq)+a;
                }
                string="";

                i = jia();//返回一个0
            }
        });

        bt_jian.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Button bt = (Button) v;
                str1 = str;//str1放前一个数据
                //   string = str;//存放加号以前的数据
                str = str + bt.getText().toString();

                strings[g]=str;
                Log.e("TAG","strings["+g+"]="+strings[g]);
                g++;
                input.setText(str);

                stringq=string;
                    if (a==0)
                    {
                        a =Double.parseDouble(stringq)-a;
                    }
                    else if (i==0)
                    {
                        Log.e("TAG","jian1_a="+a);
                        a =a+Double.parseDouble(stringq);
                    }
                    else if (i==2)
                    {
                        if (a==0)
                        {
                            a=a+1;
                        }
                        a = Double.parseDouble(stringq)*a;
                    }
                    else if(i==3)
                    {
                        if (a==0)
                        {
                            a=a+1;
                            Log.e("TAG","a==="+a);
                            a = Double.parseDouble(stringq)/a;
                            Log.e("TAG","a===1"+a);
                        }
                        else
                        {
                            Log.e("TAG","a=="+a);
                            a =a/Double.parseDouble(stringq);
                            Log.e("TAG","a==1"+a);
                        }
                    }

                    else if (i==3)
                    {
                        if (a==0)
                        {
                            a=a+1;
                            a = Double.parseDouble(stringq)/a;
                        }
                        else
                        {
                            a =a/Double.parseDouble(stringq);
                        }
                    }
                else
                    {
                        Log.e("TAG","jian_a="+a);
                        a =a-Double.parseDouble(stringq);
                    }
                    Log.e("TAG", "jian_a1=" + a);

                i = jian();//返回一个0

                string="";
            }
        });

        bt_cheng.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Button bt = (Button) v;
                str1 = str;//str1放前一个数据
                //   string = str;//存放加号以前的数据
                str = str + bt.getText().toString();
                strings[g]=str;

                Log.e("TAG","stringscheng["+g+"]="+strings[g]);
                g++;
                input.setText(str);

                stringq=string;

                Log.e("TAG","stringscheng1["+g+"]="+string);
                if (a==0)
                {
                    a=a+1;
                    a=a*Double.parseDouble(stringq);
                }
                else if (i==0)
                {
                    //Log.e("TAG","jianqwe_a="+a);
                    a =a+Double.parseDouble(stringq);
                    //Log.e("TAG","jianqweqq_a="+a);
                }
                else if (i==1)
                {
                    if (a==0)
                    {
                        a =Double.parseDouble(stringq)-a;
                    }
                    else
                    {
                        Log.e("TAG","jian_a="+a);
                        a =a-Double.parseDouble(stringq);

                    }
                }
                else if(i==3)
                {
                    if (a==0)
                    {
                        a=a+1;
                        a = Double.parseDouble(stringq)/a;

                    }
                    else
                    {
                        a =a/Double.parseDouble(stringq);

                        //Log.e("TAG","stringDEL2="+string);
                    }
                }
                else
                {
                    a = Double.parseDouble(stringq)*a;

                }

                string="";
                i = cheng();
            }
        });

        bt_chu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Button bt = (Button) v;
                str1 = str;//str1放前一个数据
                //   string = str;//存放加号以前的数据
                str = str + bt.getText().toString();
                strings[g]=str;
                Log.e("TAG","strings["+g+"]="+strings[g]);
                g++;
                input.setText(str);
                stringq=string;
                if (a==0)
                {
                    a=a+1;
                    a = Double.parseDouble(stringq)/a;
                }

                else if (i==0)
                {
                    Log.e("TAG","jian1_a="+a);
                    a =a+Double.parseDouble(stringq);
                }
                else if (i==2)
                {
                    if (a==0)
                    {
                        a=a+1;
                    }
                    a = Double.parseDouble(stringq)*a;
                }
                else if (i==1)
                {
                    if (a==0)
                    {
                        a =Double.parseDouble(stringq)-a;
                    }
                    else
                    {
                        Log.e("TAG","jian_a="+a);
                        a =a-Double.parseDouble(stringq);

                    }
                }

                else
                {
                    a =a/Double.parseDouble(stringq);
                }

                //    string="";
                //    string1 = "";//存放加号以后的数据
                //   //23+23+45=
                string="";
                i = chu();//返回一个0
            }
        });

        bt_deng.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Button bt = (Button) v;
                str1 = str;//str1放前一个数据
                str = str + bt.getText().toString();
                strings[g]=str;
                Log.e("TAG","strings["+g+"]="+strings[g]);
                g++;
                input.setText(str);
                deng(i);
                str = "" + c;//使下一次输入时显示页面为c

            }
        });

        bt_DEL.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.e("TAG", "stringsDEL[" + g + "]=" + strings[g - 2]);
                input.setText(strings[g - 2]);
                str=strings[g-2];
                g--;
                //string=str2;
                string=strings1[k-1];

                Log.e("TAG","stringDEL="+string);
                k--;
            }
        });

    }

    class Bt_OnClickListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            Button bt = (Button) v;
            str1 = str;//str1放前一个数据

            str = str + bt.getText().toString();

            strings[g]=str;
            Log.e("TAG","strings["+g+"]="+strings[g]);
            g++;
            input.setText(str);

//            if (DEL_OnClick(v)==8)
//            {
//                string=str2;
//            }
            str2=string;
            strings1[k]=str2;

            Log.e("TAG", "strings1111[" + k + "]=" + strings1[k]);
            k++;
                string = string + bt.getText().toString();
            //str2=bt.getText().toString();

            output.setText("");
        }
    }

    public int jia() {  return 0; }

    public int jian() { return 1; }

    public int cheng() { return 2; }

    public int chu() {  return 3; }

    //结果
    public void   deng(int i) {

        if (i == 0) {//执行加法

            stringh=string;

            b = Double.parseDouble(stringh);

            c = a+b;
            }
        if (i == 1) {
            stringh=string;

            b = Double.parseDouble(stringh);
            c = a-b;
        }
        if (i == 2) {
            stringh=string;

            b = Double.parseDouble(stringh);

            c = a*b;
        }
        if (i == 3) {

            stringh=string;
            b = Double.parseDouble(stringh);
            c = (double)a/b;
        }
        output.setText("" + c);
        }
}

java

<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.wang.jisuanji.MainActivity"
    android:rowCount="6"
    android:columnCount="4">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ccc"
        android:layout_columnSpan="4"
        android:layout_rowWeight="1"
        android:textSize="40sp"
        android:gravity="right|center_vertical"
        android:id="@+id/input"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ccc"
        android:layout_columnSpan="4"
        android:layout_rowWeight="1"
        android:textSize="40sp"
        android:gravity="right|center_vertical"
        android:id="@+id/output"/>
    <Button
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="C"
        android:textSize="25sp"
        android:id="@+id/bt_C"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>
    <Button
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="DEL"
        android:textSize="25sp"
        android:id="@+id/bt_DEL"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>
    <Button
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="÷"
        android:textSize="25sp"
        android:id="@+id/bt_chu"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>
    <Button
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="×"
        android:textSize="25sp"
        android:id="@+id/bt_cheng"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>
    <Button
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="7"
        android:textSize="25sp"
        android:id="@+id/bt_7"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>
    <Button
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="8"
        android:textSize="25sp"
        android:id="@+id/bt_8"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>
    <Button
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="9"
        android:textSize="25sp"
        android:id="@+id/bt_9"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>
    <Button
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="-"
        android:textSize="25sp"
        android:id="@+id/bt_jian"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>
    <Button
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="4"
        android:textSize="25sp"
        android:id="@+id/bt_4"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>
    <Button
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="5"
        android:textSize="25sp"
        android:id="@+id/bt_5"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>
    <Button
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="6"
        android:textSize="25sp"
        android:id="@+id/bt_6"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>
    <Button
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="+"
        android:onClick="jia_OnClick"
        android:textSize="25sp"
        android:id="@+id/bt_jia"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>
    <Button
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="1"
        android:textSize="25sp"
        android:id="@+id/bt_1"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>
    <Button
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="2"
        android:textSize="25sp"
        android:id="@+id/bt_2"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>
    <Button
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="3"
        android:textSize="25sp"
        android:id="@+id/bt_3"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>
    <Button
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="="
        android:textSize="25sp"
        android:id="@+id/bt_deng"
        android:onClick="deng_OnClick"
        android:layout_rowSpan="2"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>
    <Button
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="0"
        android:textSize="25sp"
        android:layout_columnSpan="2"
        android:id="@+id/bt_0"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>

    <Button
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="."
        android:textSize="40sp"
        android:id="@+id/bt_dian"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>

</GridLayout>

xml

后退功能

时间: 2024-10-14 16:03:43

课后练习——计算器运算的相关文章

Python 3.x--使用re模块,实现计算器运算实例

要求:使用re模块,通过正则表达式,实现计算器运算功能. 思路:1.匹配函数中最内层的括号,提取函数使用re.search,先计算乘除,后计算加减,注意针对正负号的处理,使用re.split,可以截取函数前后的部分,重新拼接结果. 2.加减.乘除及去括号单独写函数调用 具体代码: 1 import re 2 3 #乘除运算处理,可以处理不含括号的加减和乘除函数(只处理乘除) 4 def multi_and_divi(arg): 5 #传入参数为列表,如:['3*2-1*9/3',0] 6 val

Python新手必备练习4---开发一个计算器程序

总是有朋友问我,在听我讲的课时感觉都能听懂,我讲的例子照着写也能做出来,但一到自己想不照抄而是自己写的时候,就发现完全没有思路,不知如何下手.对此我只能说,还是因为练习的少,平常从来不写代码,学了点语法就想啪啪啪实现复杂的功能是不现实的,学习语言是一个循序渐近的过程,不经过几万行代码的洗礼,是很难成为一个优秀的程序员的,为了帮助初学者找一些好的练习基本功的例子,我近期会整理我讲课一来的一些Python练习程序分享给大家,想学好Python的同学可以照着例子一一去做,我敢保证,把我列出的练习程序列

比较不熟的JavaScript点滴,慢慢前行,附带简单复杂化的php小计算器一份

interface.php 1 <html> 2 <head> 3 <meta charset="utf-8" /> 4 <title>这是一个简单的计算器</title> 5 </head> 6 <body> 7 <h4>这是一个简单复杂化的计算器</h4> 8 <hr/> 9 <form action="operation.php" me

python 简单编写的计算器程序

计算器思路 1.要求输入公式 2.检测公式是否包含字母 3.如果包含字母则需要重新输入,否则进行下一步运算 4.检测是否存在括号,如果存在括号,把括号里面的值进行优先级运算,然后赋值到原位,没有则按照优先级运算,取出最后运算结果 流程图 具体代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = 'weibinf' import re   #导入模块 def kuohao(self):   #判断是否存在括号     se

自己做的javascript简易计算器

html <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>javascript任务2-简易计算器</title> <link rel="stylesheet" href="style/demo.css"> </head> <body&g

C指针原理(10)-编译原理-小型计算器实现

.打开cygwin,进入home目录,home目录在WINDOWS系统的cygwin安装目录映射为home目录. 2.首先,在home目录中新建文件夹,在文件夹中放置如下内容的test1.l /*统计字数*/ %{ int?chars=0; int?words=0; int?lines=0; %} %% [a-zA-Z]+??{words++;chars+=strlen(yytext);} \n??{chars++;lines++;} .???{chars++;} %% main(int?arg

magedu Linux运维学习的第二天

回显,回声 echo echo hello > /dve/pts/1 打开图形界面 init 5 关闭图形界面 init 3 ctrl+alt+F1-6字符,F7图形界面 chvt 改变虚拟终端 chvt +数字 startx  图形的软件打开 poweroff centOS 6.8与7.2都正常关闭断电 hostname 显示主机的名字 lsb_release -a  显示centOS 版本 cat /etc/redhat-release cat /etc/centos-release nan

eclipse+webservice开发实例

1.參考文献: 1.利用Java编写简单的WebService实例  http://nopainnogain.iteye.com/blog/791525 2.Axis2与Eclipse整合开发Web Service  http://tech.ddvip.com/2009-05/1242968642120461.html 3.http://blog.csdn.net/lightao220/article/details/3489015 4.http://clq9761.iteye.com/blog

1.环境搭建与命令入门

1.环境搭建 参考书上的搭建步骤在VirtualBox下搭建了Cent OS 6.5环境.书上已经说的很清楚,不再赘述. 2.命令入门 2.1 语系的支持 输入命令后如果结果显示乱码,可以使用echo $LANG 显示当前的语系.注意Linux下任何时候都对文字大小写敏感.LANG=en_US此命令可以修改当前的显示语系. 2.2 bc计算器下设置小数点 默认Linux下的bc计算器运算时是显示的整数,如果想要显示小数则要输入scale=3这里的3表示是保留小数点后3位小数. 3.几个重要的按键