四则运算,安卓版

题目:四则运算安卓版

设计思想:安卓版四则运算相对来说思路较为简单,分为三部分:简单,一般,复杂。简单里面主要是加减法,一般里面是乘除法,复杂里面是涉及四则运算的,有加减乘除。分为四个界面(1)首页,(2)简单页面,(3)一般难度页面,(4)复杂页面。在首页可以选择自己相应的难度,从而调用事件跳转到对应的界面,自动出题,填出结果,然后提交判断是否正确。如果想继续做,可以点击下一题。

实验代码:

package com.jingpan.calculating;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

    private Button b1;
    private Button b2;
    private Button b3;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        b1=(Button)findViewById(R.id.button1);
        b2=(Button)findViewById(R.id.button2);
        b3=(Button)findViewById(R.id.button3);
        
        b1.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent=new Intent(MainActivity.this,SimpleActivity.class);
                startActivity(intent);
                finish();
            }
        });
       b2.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent=new Intent(MainActivity.this,CommonActivity.class);
                startActivity(intent);
                finish();
            }
        });
       b3.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent=new Intent(MainActivity.this,ComplexActivity.class);
                startActivity(intent);
                finish();
            }
        });
        
    }
   
    
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    //@Override
//    public boolean onOptionsItemSelected(MenuItem item) {
//        // Handle action bar item clicks here. The action bar will
//        // automatically handle clicks on the Home/Up button, so long
//        // as you specify a parent activity in AndroidManifest.xml.
//        int id = item.getItemId();
//        if (id == R.id.action_settings) {
//            return true;
//        }
//        return super.onOptionsItemSelected(item);
//    }
}

 

package com.jingpan.calculating;

import java.util.Random;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Interpolator;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class SimpleActivity extends Activity {

    private TextView t;
    private EditText e;
    private Button bn;
    private EditText et;
    private int r;
    private Button bnext;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        
        setContentView(R.layout.simplemain);
        t=(TextView)findViewById(R.id.textView2);
        e=(EditText)findViewById(R.id.editText1);
        bn=(Button)findViewById(R.id.button1);
        et=(EditText)findViewById(R.id.editText2);
        bnext=(Button)findViewById(R.id.button2);
        int a,b;
        /*int n;
        n=Integer.valueOf(e.getText().toString());*/
        a=(int) (1+Math.random()*10);
        b=(int) (1+Math.random()*10);
        int c;
        char ch;
        
        c=(int)(1+Math.random()*10);
        if(c/2==0)
        {
            ch='+';
            r=a+b;
        }
        else{
            ch='-';
            r=a-b;
        }
            
        t.setText(""+a+" "+ch+" "+b+" "+"=");
        bn.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
            int result;
            result=Integer.parseInt(et.getText().toString());
            String t="";
            if(result==r)
            {
                t="答对了!!!";
            }
            else
            {
                t="答错了!!!正确答案是"+r;
            }
            Toast.makeText(SimpleActivity.this, t, Toast.LENGTH_LONG).show();
            }
        });
        bnext.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent=new Intent(SimpleActivity.this,SimpleActivity.class);
                startActivity(intent);
                finish();
            }
        });
    }
   
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}
<RelativeLayout 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.jingpan.calculating.MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="95dp"
        android:layout_marginTop="22dp"
        android:text="简单" />

  

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView3"
        android:layout_below="@+id/editText1"
        android:layout_marginTop="41dp"
        android:text="计算式:" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView4"
        android:layout_alignBottom="@+id/textView4"
        android:layout_alignLeft="@+id/textView1"
        android:text="TextView" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView4"
        android:layout_below="@+id/textView4"
        android:layout_marginTop="38dp"
        android:text="结果:" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView5"
        android:layout_alignBottom="@+id/textView5"
        android:layout_toRightOf="@+id/textView5"
        android:ems="10"
        />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText2"
        android:layout_below="@+id/editText2"
        android:layout_marginTop="51dp"
        android:text="确认" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button1"
        android:layout_alignBottom="@+id/button1"
        android:layout_marginLeft="19dp"
        android:layout_toRightOf="@+id/textView2"
        android:text="下一题" />
  
</RelativeLayout>
package com.jingpan.calculating;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class CommonActivity extends Activity {

    private TextView t;
    private EditText e;
    private Button bn;
    private EditText et;
    private double r;
    private Button bnext;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            
            
            setContentView(R.layout.commonmain);
            t=(TextView)findViewById(R.id.textView2);
            e=(EditText)findViewById(R.id.editText1);
            bn=(Button)findViewById(R.id.button1);
            et=(EditText)findViewById(R.id.editText2);
            bnext=(Button)findViewById(R.id.button2);
            float a,b;
            /*int n;
            n=Integer.valueOf(e.getText().toString());*/
            a=(int) (1+Math.random()*10);
            b=(int) (1+Math.random()*10);
            int c;
            char ch;
            
            c=(int)(1+Math.random()*10);
            if(c/2==0)
            {
                ch='*';
                r=(float)(a*b);
            }
            else{
                ch='/';
                r=(float)(a/b);
            }
                
            t.setText(""+a+" "+ch+" "+b+" "+"=");
            bn.setOnClickListener(new View.OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                float result;
                result=Float.parseFloat(et.getText().toString());
                String t="";
                if(result==r)
                {
                    t="答对了!!!";
                }
                else
                {
                    t="答错了!!!正确答案是"+r;
                }
                Toast.makeText(CommonActivity.this, t, Toast.LENGTH_LONG).show();
                }
            });
            bnext.setOnClickListener(new View.OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent intent=new Intent(CommonActivity.this,CommonActivity.class);
                    startActivity(intent);
                    finish();
                }
            });
        }
   
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}
<RelativeLayout 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.jingpan.calculating.MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="95dp"
        android:layout_marginTop="22dp"
        android:text="一般" />


    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView3"
        android:layout_alignBottom="@+id/textView3"
        android:layout_toRightOf="@+id/textView3"
        android:ems="10"
         >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView3"
        android:layout_below="@+id/editText1"
        android:layout_marginTop="41dp"
        android:text="计算式:" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView4"
        android:layout_alignBottom="@+id/textView4"
        android:layout_alignLeft="@+id/textView1"
        android:text="TextView" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView4"
        android:layout_below="@+id/textView4"
        android:layout_marginTop="38dp"
        android:text="结果:" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView5"
        android:layout_alignBottom="@+id/textView5"
        android:layout_toRightOf="@+id/textView5"
        android:ems="10"
        />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText2"
        android:layout_below="@+id/editText2"
        android:layout_marginTop="51dp"
        android:text="确认" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button1"
        android:layout_alignBottom="@+id/button1"
        android:layout_marginLeft="19dp"
        android:layout_toRightOf="@+id/textView2"
        android:text="下一题" />
  
</RelativeLayout>

 

package com.jingpan.calculating;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class ComplexActivity extends Activity{
    private TextView t;
    private EditText e;
    private Button bn;
    private EditText et;
    private double r;
    private Button bnext;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            
            
            setContentView(R.layout.complexmain);
            t=(TextView)findViewById(R.id.textView2);
            e=(EditText)findViewById(R.id.editText1);
            bn=(Button)findViewById(R.id.button1);
            et=(EditText)findViewById(R.id.editText2);
            bnext=(Button)findViewById(R.id.button2);
            float a,b,d,e;
            /*int n;
            n=Integer.valueOf(e.getText().toString());*/
            a=(int) (1+Math.random()*10);
            b=(int) (1+Math.random()*10);
            d=(int) (1+Math.random()*10);
            int c;
            char ch = 0;
            char ch1 = 0;
            
            c=(int)(1+Math.random()*10);
            e=(int)(1+Math.random()*10);
            if(c/4==0)
            {
                ch='+';
                if(e/4==0)
                {
                    ch1='+';
                    r=(float)(a+b+d);
                }
                else if(e/4==1)
                {
                    ch1='-';
                    r=(float)(a-b-d);
                }
                else if(e/4==2)
                {
                    ch1='*';
                    r=(float)(a*b*d);
                }
                else if(e/4==3)
                {
                    ch1='*';
                    r=(float)(a*b*d);
                }
            t.setText(""+a+" "+ch+" "+b+" "+ch1+" "+d+" "+"=");
            }
            
            if(c/4==1)
            {
                ch='-';
                if(e/4==0)
                {
                    ch1='+';
                    r=(float)(a-b+d);
                }
                else if(e/4==1)
                {
                    ch1='-';
                    r=(float)(a-b-d);
                }
                else if(e/4==2)
                {
                    ch1='*';
                    r=(float)(a-b*d);
                }
                else if(e/4==3)
                {
                    ch1='/';
                    r=(float)(a-b/d);
                }
                t.setText(""+a+" "+ch+" "+b+" "+ch1+" "+d+" "+"=");
            }
            if(c/4==2)
            {
                ch='*';
                if(e/4==0)
                {
                    ch1='+';
                    r=(float)(a*b+d);
                }
                else if(e/4==1)
                {
                    ch1='-';
                    r=(float)(a*b-d);
                }
                else if(e/4==2)
                {
                    ch1='*';
                    r=(float)(a*b*d);
                }
                else if(e/4==3)
                {
                    ch1='/';
                    r=(float)(a*b/d);
                }
                t.setText(""+a+" "+ch+" "+b+" "+ch1+" "+d+" "+"=");
            }
                
            
            bn.setOnClickListener(new View.OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                float result;
                result=Float.parseFloat(et.getText().toString());
                String t="";
                if(result==r)
                {
                    t="答对了!!!";
                }
                else
                {
                    t="答错了!!!正确答案是"+r;
                }
                Toast.makeText(ComplexActivity.this, t, Toast.LENGTH_LONG).show();
                }
            });
            bnext.setOnClickListener(new View.OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent intent=new Intent(ComplexActivity.this,ComplexActivity.class);
                    startActivity(intent);
                    finish();
                }
            });
        }
}
<RelativeLayout 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.jingpan.calculating.MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="95dp"
        android:layout_marginTop="22dp"
        android:text="复杂" />

   

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView3"
        android:layout_below="@+id/editText1"
        android:layout_marginTop="41dp"
        android:text="计算式:" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView4"
        android:layout_alignBottom="@+id/textView4"
        android:layout_alignLeft="@+id/textView1"
        android:text="TextView" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView4"
        android:layout_below="@+id/textView4"
        android:layout_marginTop="38dp"
        android:text="结果:" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView5"
        android:layout_alignBottom="@+id/textView5"
        android:layout_toRightOf="@+id/textView5"
        android:ems="10"
        />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText2"
        android:layout_below="@+id/editText2"
        android:layout_marginTop="51dp"
        android:text="确认" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button1"
        android:layout_alignBottom="@+id/button1"
        android:layout_marginLeft="19dp"
        android:layout_toRightOf="@+id/textView2"
        android:text="下一题" />
  
</RelativeLayout>

试验截图:

缺陷日志:本次试验虽然实现了主要功能但是还是存在很大的缺陷,因为在运算除法的时候小数点的位数无法控制。界面也不是很友好,存在很大的问题,还需要改进。

实验总结:

原文地址:https://www.cnblogs.com/apan008/p/5360395.html