zoukankan      html  css  js  c++  java
  • 四则运算(28日)

    Not

    CHECKED

    OUT  

    CHECKED

    OUT

    DONE!:

    SPRINT

    GOAL:

    BETA-READY

    RELEASE 

    四则运算的界面设计

     安装ADT,在Java环境下设计

    四则运算的基本功能

    对按钮事件的处理 

     四则运算的错误处理  由用户输入题量后作答后计算输出  

    四则运算功能的测试   支持加减乘除的运算  
    四则运算功能的新功能   暂无  

    以下是我们经过努力后的成果。

    //主要界面代码
    
    <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.example.hhhhhh.MainActivity$PlaceholderFragment"
        android:background="@drawable/aaa" >
    
        <EditText
            android:id="@+id/editText1"
            android:layout_width="300dp"
            android:layout_height="100dp"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:ems="10" />
    
        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/editText2"
            android:layout_below="@+id/editText2"
            android:text="0" />
    
        <Button
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/editText2"
            android:layout_toRightOf="@+id/button2"
            android:text="1" />
    
        <Button
            android:id="@+id/button4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/button3"
            android:layout_alignBottom="@+id/button3"
            android:layout_toRightOf="@+id/button3"
            android:text="2" />
    
        <Button
            android:id="@+id/button5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/button4"
            android:layout_alignBottom="@+id/button4"
            android:layout_toRightOf="@+id/button4"
            android:text="3" />
    
        <Button
            android:id="@+id/button6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/button2"
            android:layout_below="@+id/button2"
            android:text="4" />
    
        <Button
            android:id="@+id/button7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/button6"
            android:layout_alignBottom="@+id/button6"
            android:layout_toRightOf="@+id/button6"
            android:text="5" />
    
        <Button
            android:id="@+id/button8"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/button7"
            android:layout_alignBottom="@+id/button7"
            android:layout_toRightOf="@+id/button7"
            android:text="6" />
    
        <Button
            android:id="@+id/button9"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/button8"
            android:layout_alignBottom="@+id/button8"
            android:layout_toRightOf="@+id/button8"
            android:text="7" />
    
        <Button
            android:id="@+id/button10"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/button6"
            android:layout_toLeftOf="@+id/button7"
            android:text="8" />
    
        <Button
            android:id="@+id/button11"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/button10"
            android:layout_alignBottom="@+id/button10"
            android:layout_toRightOf="@+id/button10"
            android:text="9" />
    
        <Button
            android:id="@+id/button12"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/button11"
            android:layout_alignBottom="@+id/button11"
            android:layout_toRightOf="@+id/button11"
            android:text="." />
    
        <Button
            android:id="@+id/button13"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/button12"
            android:layout_alignBottom="@+id/button12"
            android:layout_alignLeft="@+id/button9"
            android:text="确定" />
    
        <Button
            android:id="@+id/button1"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/editText2"
            android:layout_alignBottom="@+id/editText2"
            android:layout_alignRight="@+id/button5"
            android:text="开始" />
    
        <EditText
            android:id="@+id/editText2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/editText1"
            android:layout_below="@+id/editText1"
            android:ems="10"
            android:focusable="false"
            android:text="四则运算小程序欢迎您!" />
    
        <Button
            android:id="@+id/button14"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/button13"
            android:layout_below="@+id/button13"
            android:text="清除" />
    
        <EditText
            android:id="@+id/editText3"
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:layout_alignBaseline="@+id/button14"
            android:layout_alignBottom="@+id/button14"
            android:layout_alignLeft="@+id/button11"
            android:layout_marginLeft="14dp"
            android:ems="10"
            android:inputType="time" 
            android:text="待定!">
            
            <requestFocus />
        </EditText>
    
        <Button
            android:id="@+id/button15"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/editText3"
            android:layout_alignBottom="@+id/editText3"
            android:layout_toLeftOf="@+id/editText3"
            android:text="时间" />
    
    </RelativeLayout>
    
    
    
    
    //主要的类方法用来计算
    
    package com.example.jjjjfcfy;
    
    
    
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    
    import com.example.jjjjfcfy.ooo;
    
    import java.text.DecimalFormat;
    
    import android.support.v7.app.ActionBarActivity;
    import android.support.v7.app.ActionBar;
    import android.support.v4.app.Fragment;
    import android.text.InputType;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.ViewGroup;
    import android.os.Build;
    import android.app.Activity;
    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 MainActivity extends Activity {
            
            int x;//题目个数
            int y=0;
            int n;
            //int time=0;
            int i=1;
            char[] op = { '+', '-', '*', '/' };
            int[] nov = new int[4];
            int zf;//控制正负
            int zz;//题型控制
            String str = new String();
            String str1 = new String();
            //String str2 = new String();
            int[] num1 = new int[5];
            String s[] = new String[5];
            int num2=0;
            float[] anser=new float[5];//用户的答案
            float[] trueanser=new float[5];//正确答案
            File file;
            int a=0;
            int b=0;
            int bb=0;
            // int c = 0;
            ooo opt=new ooo();
            EditText editText1,editText2,editText3;
            StringBuffer text,text1;
            String number_1="",number_2="";
            boolean clicked=false;
            byte style=0;
            Button button1,button2,button3,button4,button5,button6,button7,button8,button9,button10;
            Button button11,button12,button13,button14,button15;
            /** Called when the activity is first created. */
            @Override
            public void onCreate(Bundle savedInstanceState) {
                //time++;
                super.onCreate(savedInstanceState);
                setContentView(R.layout.fragment_main);
                text=new StringBuffer();
                editText1=(EditText)findViewById(R.id.editText2);
                editText2=(EditText)findViewById(R.id.editText1);
                editText3=(EditText)findViewById(R.id.editText3);
                //editText.setFocusable(false);
                button9=(Button) findViewById(R.id.button9);
                button9.setOnClickListener(new Button.OnClickListener(){
    
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        if(clicked){
                            editText1.setText("");
                            clicked=false;
                            text.setLength(0);
                        }
                        text.append("7");
                        editText1.setText(text.toString());
                        
                    }
                    
                });
                button10=(Button) findViewById(R.id.button10);
                button10.setOnClickListener(new Button.OnClickListener(){
                    
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        if(clicked){
                            editText1.setText("");
                            clicked=false;
                            text.setLength(0);
                        }
                        text.append("8");
                        editText1.setText(text.toString());
                    }
                });
                button11=(Button) findViewById(R.id.button11);
                button11.setOnClickListener(new Button.OnClickListener(){
                    
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        if(clicked){
                            editText1.setText("");
                            clicked=false;
                            text.setLength(0);
                        }
                        text.append("9");
                        editText1.setText(text.toString());
                    }
                    
                });
                button6=(Button) findViewById(R.id.button6);
                button6.setOnClickListener(new Button.OnClickListener(){
                    
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        if(clicked){
                            editText1.setText("");
                            clicked=false;
                            text.setLength(0);
                        }
                        text.append("4");
                        editText1.setText(text.toString());
                    }
                    
                });
                button7=(Button) findViewById(R.id.button7);
                button7.setOnClickListener(new Button.OnClickListener(){
                    
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        if(clicked){
                            editText1.setText("");
                            clicked=false;
                            text.setLength(0);
                        }
                        text.append("5");
                        editText1.setText(text.toString());
                    }
                    
                });
                button8=(Button) findViewById(R.id.button8);
                button8.setOnClickListener(new Button.OnClickListener(){
                    
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        if(clicked){
                            editText1.setText("");
                            clicked=false;
                            text.setLength(0);
                        }
                        text.append("6");
                        editText1.setText(text.toString());
                    }
                    
                });
                button3=(Button) findViewById(R.id.button3);
                button3.setOnClickListener(new Button.OnClickListener(){
                    
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        if(clicked){
                            editText1.setText("");
                            clicked=false;
                            text.setLength(0);
                        }
                        text.append("1");
                        editText1.setText(text.toString());
                    }
                    
                });
                button4=(Button) findViewById(R.id.button4);
                button4.setOnClickListener(new Button.OnClickListener(){
                    
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        if(clicked){
                            editText1.setText("");
                            clicked=false;
                            text.setLength(0);
                        }
                        text.append("2");
                        editText1.setText(text.toString());
                    }
                    
                });
                button5=(Button) findViewById(R.id.button5);
                button5.setOnClickListener(new Button.OnClickListener(){
                    
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        if(clicked){
                            editText1.setText("");
                            clicked=false;
                            text.setLength(0);
                        }
                        text.append("3");
                        editText1.setText(text.toString());
                    }
                    
                });
                button2=(Button) findViewById(R.id.button2);
                button2.setOnClickListener(new Button.OnClickListener(){
                    
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        if(clicked){
                            editText1.setText("");
                            clicked=false;
                            text.setLength(0);
                        }
                        text.append("0");
                        editText1.setText(text.toString());
                    }
                    
                });
                button12=(Button) findViewById(R.id.button12);
                button12.setOnClickListener(new Button.OnClickListener(){
                    
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        if(clicked){
                            editText1.setText("");
                            clicked=false;
                            text.setLength(0);
                        }
                        if(editText1.getText().toString().indexOf(".")==-1){//已经有.了
                            if(text.length()==0){
                                text.append("0.");
                            }else{
                                text.append(".");
                            }
                            editText1.setText(text.toString());
                        }
                    }
                    
                });
                button13=(Button) findViewById(R.id.button13);
                button13.setOnClickListener(new Button.OnClickListener(){
                    
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        if(b==1)
                        {
                            if(editText1.getText().toString().length()!=0)
                            {
                                try
                                {
                                    x=Integer.parseInt(editText1.getText().toString());
                                    if(x>=0 && x<=5)b++;
                                    else Toast.makeText(MainActivity.this, "输入错误", 1).show();
                                }
                                catch(NumberFormatException x)
                                {
                                    Toast.makeText(MainActivity.this, "输入错误", 1).show();
                                }
                            }
                            else Toast.makeText(MainActivity.this, "输入误", 1).show();
                            editText1.setText("");
                            number_1="";
                            number_2="";
                            style=0;
                            clicked=false;
                            text.setLength(0);
                        }
                        if(b==2)
                        {
                            if(n!=0)anser[i-2]=Float.parseFloat(editText1.getText().toString());
                            str1="第"+i+"条题目为:
    ";
                            n=(int)(Math.random() * 4 + 2);//随机出运算符的数量
                            zz=(int)(Math.random()*2);
                            for(int j=0;j<n;j++)
                            {
                                //zf=(int)(Math.random()*2);
                                //if(zf==0)////    num1[j]=-(int)(Math.random()*100);//产生随机数
                                //else        //
                                    num1[j]=(int)(Math.random()*100);
                                    if(zz==1)num1[j]=(int)(Math.random()*10+1);
                            }
                            for(int k=0;k<n-1;k++)
                            {
                                nov[k]=(int)(Math.random()*4);
                                if(nov[k]==3&&num1[k+1]==0)
                                {
                                    do
                                    {
                                        num1[k+1]=(int)(Math.random()*100);
                                    }while(num1[k+1]==0);
                                }
                            }
                            str="";
                            if(zz==0)
                            {
                                for(int j=0;j<n;j++)
                                {
                                    //if(num1[j]<0)str=str+"("+String.valueOf(num1[j])+")";
                                    str=str+String.valueOf(num1[j]);
                                    if(j==n-1)
                                    {
                                        //try
                                        //{
                                            //int ii=0;
                                            try{
                                                trueanser[i-1]=opt.Math(str);
                                                DecimalFormat df = new DecimalFormat("#.00");
                                                trueanser[i-1]=Float.parseFloat(df.format(trueanser[i-1]));
                                            } catch (Exception e1) {
                                                // TODO 自动生成的 catch 块
                                                e1.printStackTrace();
                                            }
                                        //}
                                        /*catch (Exception e1)
                                        {
                                            System.out.println(e1);
                                            //e1.printStackTrace();
                                        }*/
                                        str=str+"=";
                                        //str=str+String.valueOf(trueanser[i-1]);
                                        editText2.setText(str1+str);
                                        break;
                                    }
                                    str=str+op[nov[j]];
                                }
                            }
                            if(zz==1)
                            {
                                trueanser[i-1]=1;
                                str=String.valueOf(num1[0])+"!=";
                                for(int j=1;j<=num1[0];j++)
                                trueanser[i-1]=trueanser[i-1]*j;
                                //str=str+String.valueOf(trueanser[i-1]);
                                editText2.setText(str1+str);
                            }
                            if(i==x+1)
                            {
                                b=3;
                                anser[i-2]=Float.parseFloat(editText1.getText().toString());
                            }
                            else i++;
                            editText1.setText("");
                            number_1="";
                            number_2="";
                            style=0;
                            clicked=false;
                            text.setLength(0);
                        }
                        if(b==3)
                        {
                            y=0;
                            for(int j=0;j<x;j++)
                            {
                                if(anser[j]==trueanser[j])y++;
                            }
                            editText2.setText("答题完成了,谢谢您的参与!"+"
    "+"恭喜您!答对了"+y+"道!");
                            b=0;
                            editText1.setText("");
                            number_1="";
                            number_2="";
                            style=0;
                            clicked=false;
                            text.setLength(0);
                        }
                    }
                });
                button1=(Button) findViewById(R.id.button1);
                button1.setOnClickListener(new Button.OnClickListener(){
                    
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        editText2.setText("请输入题量!(5以内)");
                        n=0;
                        i=1;
                        b=1;
                    }
                });
                button14=(Button) findViewById(R.id.button14);
                button14.setOnClickListener(new Button.OnClickListener(){
                    
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        editText1.setText("");
                        number_1="";
                        number_2="";
                        style=0;
                        clicked=false;
                        text.setLength(0);
                    }
                });
          //      button15=(Button) findViewById(R.id.button15);
       //         button15.setOnClickListener(new Button.OnClickListener(){
                    
              //      public void onClick(View v) {
                        // TODO Auto-generated method stub
                        //for(time = 0; time < 10000; time++){
                //            editText3.setText("");
                    //        str2="待定";//+time+"s";
                   //        editText3.setText(str2);
                            //System.out.println("读取:" + i);
                      //  }
                        
            //        }
             //   });
            }
        }
    
    
    
    
    
    //其中的内部类
    
    package com.example.jjjjfcfy;
    
    import java.util.Stack;
    public class ooo
    {
        public float Math(String str) throws Exception
        { 
            String[] operater =new String[20]; 
            String[] number = new String[20]; 
            Stack countStack1 = new Stack(); 
            Stack countStack2 = new Stack(); 
            float result =0;
            float x=0;
            number = str.split("\/|\*|\+|\-"); 
            operater= str.split("\d+");
            if(number.length<2)throw new Exception("请输入两位计算数以上!");
            for(int i = 0; i<number.length;i++)
            {
                try
                {
                    x=Float.parseFloat(number[i]);
                }
                catch(NumberFormatException e)
                {
                    throw new Exception("输入错误!请重新输入!");
                }
                if(operater[i].equals("/"))if(x==0)throw new Exception("除数不能为0!");
                countStack1.push(number[i]);
                if(i!=number.length-1)
                {
                    if(operater[i+1]!=null)countStack1.push(operater[i+1]);
                }
            }
            while(!countStack1.isEmpty())countStack2.push(countStack1.pop());
            String op;
            while(!countStack2.isEmpty())
            { 
                result=0;
                op=countStack2.pop().toString();
                if(op.equals("*"))
                {
                    result=Float.parseFloat(countStack1.pop().toString())*Float.parseFloat(countStack2.pop().toString());
                    if(number.length==2)return result;
                    countStack1.push(result);
                    continue;
                }
                if(op.equals("/"))
                {
                    result=Float.parseFloat(countStack1.pop().toString())/Float.parseFloat(countStack2.pop().toString());
                    if(number.length==2)return result;
                    countStack1.push(result);
                    continue;
                }
                countStack1.push(op);
            }
            while(!countStack1.isEmpty())countStack2.push(countStack1.pop());
            while(!countStack2.isEmpty())
            {
                result=0;
                op = countStack2.pop().toString();
                if(op.equals("+"))
                {
                    result=Float.parseFloat(countStack1.pop().toString())+Float.parseFloat(countStack2.pop().toString());
                    countStack1.push(result);
                    continue;
                }
                if(op.equals("-"))
                {
                    result=Float.parseFloat(countStack1.pop().toString())-Float.parseFloat(countStack2.pop().toString());
                    countStack1.push(result);
                    continue;
                }
                countStack1.push(op);
            }
            return result;
        }
    }
    View Code

    以下是一部分虚拟安卓系统的运行图 :

                   首先进入后页面是这样的:

    然后点击开始后是这样的:

    这个时候通过点击按键来输入题量,效果是这样的:

    然后点击确定,就会有题目出来:

    再点击按键输入答案:

    输完答案按确定,会顺势出来下一条题目:

    重复上面,当最后一道题输完答案后就会出现提示:

         我们小组一直耿耿于怀,亦是这道程序的很大缺憾就是时间的读取,暂时还没有完善,我们小组会努力的!谢谢!

    附带:背景图

  • 相关阅读:
    粒子贴片渲染的边缘柔化。
    灯塔,大海,大风。(一)
    紫色乐趣。
    灯塔,大海,大风。(三)
    Maya中实现快速伪SPH粒子。
    灯塔,大海,大风。(二)
    灯塔,大海,大风。Final.
    2D流体火焰,低精度测试。
    灯塔,大海,大风。(四)
    2010年冬视觉特效作品集。
  • 原文地址:https://www.cnblogs.com/chenqiuliang/p/4536623.html
Copyright © 2011-2022 走看看