zoukankan      html  css  js  c++  java
  • 四则运算安卓版ver.mk3

    在原有的基础上做了些许改动以及添加了一点小功能,以下是代码:

      1 package com.example.add;
      2 
      3 import java.io.File;
      4 
      5 import com.example.add.opt;
      6 import com.example.add.R;
      7 
      8 import java.text.DecimalFormat;
      9 
     10 import android.media.MediaPlayer;
     11 import android.os.Bundle;
     12 import android.view.View;
     13 import android.app.Activity;
     14 import android.widget.Button;
     15 import android.widget.EditText;
     16 import android.widget.Toast;
     17 
     18     public class MainActivity extends Activity {
     19         
     20         MediaPlayer mp;
     21         int x;//题目个数
     22         int y=0;
     23         int n;
     24         int i=1;
     25         char[] op = { '+', '-', '*', '/' };
     26         int[] nov = new int[4];
     27         int zf;//控制正负
     28         int zz;//题型控制
     29         String str = new String();
     30         String str1 = new String();
     31         int[] num1 = new int[5];
     32         String s[] = new String[5];
     33         int num2=0;
     34         float[] anser=new float[5];//用户的答案
     35         float[] trueanser=new float[5];//正确答案
     36         File file;
     37         int a=0;
     38         int b=0;
     39         int bb=0;
     40         long begin=0,end=0,time=0;
     41         String ss;
     42         // int c = 0;
     43         opt opt=new opt();;
     44         EditText editText,xs;
     45         StringBuffer text,text1;
     46         String number_1="",number_2="";
     47         boolean clicked=false;
     48         byte style=0;
     49         Button btn_1,btn_2,btn_3,btn_4,btn_5,btn_6,btn_7,btn_8,btn_9,btn_0;
     50         Button start,btn_eq,btn_dot,btn_clear,btn_m1,btn_m2,btn_m3;
     51         private Button btn_dot1;
     52         /** Called when the activity is first created. */
     53         
     54         public void stop(){
     55             mp.reset();
     56             mp=MediaPlayer.create(this, R.raw.unity);
     57         }
     58         @Override
     59         public void onCreate(Bundle savedInstanceState) {
     60             super.onCreate(savedInstanceState);
     61             setContentView(R.layout.fragment_main);
     62             text=new StringBuffer();
     63             editText=(EditText)findViewById(R.id.result);
     64             xs=(EditText)findViewById(R.id.xs);
     65             mp=MediaPlayer.create(this, R.raw.unity);
     66             //editText.setFocusable(false);
     67             btn_1=(Button) findViewById(R.id.btn_1);
     68             btn_1.setOnClickListener(new Button.OnClickListener(){
     69 
     70                 public void onClick(View v) {
     71                     // TODO Auto-generated method stub
     72                     if(clicked){
     73                         editText.setText("");
     74                         clicked=false;
     75                         text.setLength(0);
     76                     }
     77                     text.append("7");
     78                     editText.setText(text.toString());
     79                     
     80                 }
     81                 
     82             });
     83             btn_2=(Button) findViewById(R.id.btn_2);
     84             btn_2.setOnClickListener(new Button.OnClickListener(){
     85                 
     86                 public void onClick(View v) {
     87                     // TODO Auto-generated method stub
     88                     if(clicked){
     89                         editText.setText("");
     90                         clicked=false;
     91                         text.setLength(0);
     92                     }
     93                     text.append("8");
     94                     editText.setText(text.toString());
     95                 }
     96             });
     97             btn_3=(Button) findViewById(R.id.btn_3);
     98             btn_3.setOnClickListener(new Button.OnClickListener(){
     99                 
    100                 public void onClick(View v) {
    101                     // TODO Auto-generated method stub
    102                     if(clicked){
    103                         editText.setText("");
    104                         clicked=false;
    105                         text.setLength(0);
    106                     }
    107                     text.append("9");
    108                     editText.setText(text.toString());
    109                 }
    110                 
    111             });
    112             btn_4=(Button) findViewById(R.id.btn_4);
    113             btn_4.setOnClickListener(new Button.OnClickListener(){
    114                 
    115                 public void onClick(View v) {
    116                     // TODO Auto-generated method stub
    117                     if(clicked){
    118                         editText.setText("");
    119                         clicked=false;
    120                         text.setLength(0);
    121                     }
    122                     text.append("4");
    123                     editText.setText(text.toString());
    124                 }
    125                 
    126             });
    127             btn_5=(Button) findViewById(R.id.btn_5);
    128             btn_5.setOnClickListener(new Button.OnClickListener(){
    129                 
    130                 public void onClick(View v) {
    131                     // TODO Auto-generated method stub
    132                     if(clicked){
    133                         editText.setText("");
    134                         clicked=false;
    135                         text.setLength(0);
    136                     }
    137                     text.append("5");
    138                     editText.setText(text.toString());
    139                 }
    140                 
    141             });
    142             btn_6=(Button) findViewById(R.id.btn_6);
    143             btn_6.setOnClickListener(new Button.OnClickListener(){
    144                 
    145                 public void onClick(View v) {
    146                     // TODO Auto-generated method stub
    147                     if(clicked){
    148                         editText.setText("");
    149                         clicked=false;
    150                         text.setLength(0);
    151                     }
    152                     text.append("6");
    153                     editText.setText(text.toString());
    154                 }
    155                 
    156             });
    157             btn_7=(Button) findViewById(R.id.btn_7);
    158             btn_7.setOnClickListener(new Button.OnClickListener(){
    159                 
    160                 public void onClick(View v) {
    161                     // TODO Auto-generated method stub
    162                     if(clicked){
    163                         editText.setText("");
    164                         clicked=false;
    165                         text.setLength(0);
    166                     }
    167                     text.append("1");
    168                     editText.setText(text.toString());
    169                 }
    170                 
    171             });
    172             btn_8=(Button) findViewById(R.id.btn_8);
    173             btn_8.setOnClickListener(new Button.OnClickListener(){
    174                 
    175                 public void onClick(View v) {
    176                     // TODO Auto-generated method stub
    177                     if(clicked){
    178                         editText.setText("");
    179                         clicked=false;
    180                         text.setLength(0);
    181                     }
    182                     text.append("2");
    183                     editText.setText(text.toString());
    184                 }
    185                 
    186             });
    187             btn_9=(Button) findViewById(R.id.btn_9);
    188             btn_9.setOnClickListener(new Button.OnClickListener(){
    189                 
    190                 public void onClick(View v) {
    191                     // TODO Auto-generated method stub
    192                     if(clicked){
    193                         editText.setText("");
    194                         clicked=false;
    195                         text.setLength(0);
    196                     }
    197                     text.append("3");
    198                     editText.setText(text.toString());
    199                 }
    200                 
    201             });
    202            
    203             btn_0=(Button) findViewById(R.id.btn_0);
    204             btn_0.setOnClickListener(new Button.OnClickListener(){
    205                 
    206                 public void onClick(View v) {
    207                     // TODO Auto-generated method stub
    208                     if(clicked){
    209                         editText.setText("");
    210                         clicked=false;
    211                         text.setLength(0);
    212                     }
    213                     text.append("0");
    214                     editText.setText(text.toString());
    215                 }
    216                 
    217             });
    218             
    219             btn_dot=(Button) findViewById(R.id.btn_dot);
    220             btn_dot.setOnClickListener(new Button.OnClickListener(){
    221                 
    222                 public void onClick(View v) {
    223                     // TODO Auto-generated method stub
    224                     if(clicked){
    225                         editText.setText("");
    226                         clicked=false;
    227                         text.setLength(0);
    228                     }
    229                     if(editText.getText().toString().indexOf(".")==-1){//已经有.了
    230                         if(text.length()==0){
    231                             text.append("0.");
    232                         }else{
    233                             text.append(".");
    234                         }
    235                         editText.setText(text.toString());
    236                     }
    237                 }
    238                 
    239             });
    240             
    241             btn_dot1=(Button) findViewById(R.id.btn_10);
    242             btn_dot1.setOnClickListener(new Button.OnClickListener(){
    243                 
    244                 public void onClick(View v) {
    245                     // TODO Auto-generated method stub
    246                     if(clicked){
    247                         editText.setText("");
    248                         clicked=false;
    249                         text.setLength(0);
    250                     }
    251                     text.append("-");
    252                     editText.setText(text.toString());
    253                 }
    254                 
    255             });
    256             
    257             btn_m1=(Button) findViewById(R.id.music1);
    258             btn_m1.setOnClickListener(new Button.OnClickListener(){
    259                 
    260                 public void onClick(View v) {
    261                     // TODO Auto-generated method stub
    262                     mp.start();
    263                 }
    264             });
    265             
    266             btn_m2=(Button) findViewById(R.id.music2);
    267             btn_m2.setOnClickListener(new Button.OnClickListener(){
    268                 
    269                 public void onClick(View v) {
    270                     // TODO Auto-generated method stub
    271                     stop();
    272                 }
    273             });
    274 
    275             btn_m3=(Button) findViewById(R.id.music3);
    276             btn_m3.setOnClickListener(new Button.OnClickListener(){
    277                 
    278                 public void onClick(View v) {
    279                     // TODO Auto-generated method stub
    280                     mp.pause();
    281                 }
    282             });
    283             
    284             btn_eq=(Button) findViewById(R.id.btn_eq);
    285             btn_eq.setOnClickListener(new Button.OnClickListener(){
    286                 
    287                 public void onClick(View v) {
    288                     // TODO Auto-generated method stub
    289                     if(b==1)
    290                     {
    291                         if(editText.getText().toString().length()!=0)
    292                         {
    293                             try
    294                             {
    295                                 x=Integer.parseInt(editText.getText().toString());
    296                                 if(x>=0 && x<=5)b++;
    297                                 else Toast.makeText(MainActivity.this, "输入有误", 1).show();
    298                             }
    299                             catch(NumberFormatException x)
    300                             {
    301                                 Toast.makeText(MainActivity.this, "输入有误", 1).show();
    302                             }
    303                         }
    304                         else Toast.makeText(MainActivity.this, "输入有误", 1).show();
    305                         editText.setText("");
    306                         number_1="";
    307                         number_2="";
    308                         style=0;
    309                         clicked=false;
    310                         text.setLength(0);
    311                 begin=System.currentTimeMillis();
    312                     }
    313                     if(b==2)
    314                     {
    315                         if(n!=0)anser[i-2]=Float.parseFloat(editText.getText().toString());
    316                         str1="第"+i+"道题目为:";
    317                         n=(int)(Math.random() * 4 + 2);//随机出运算符的数量
    318                         zz=(int)(Math.random()*2);
    319                         for(int j=0;j<n;j++)
    320                         {
    321                             //zf=(int)(Math.random()*2);
    322                             //if(zf==0)//323                             //    num1[j]=-(int)(Math.random()*100);//产生随机数
    324                             //else        //
    325                                 num1[j]=(int)(Math.random()*100);
    326                                 if(zz==1)num1[j]=(int)(Math.random()*10+1);
    327                         }
    328                         for(int k=0;k<n-1;k++)
    329                         {
    330                             nov[k]=(int)(Math.random()*4);
    331                             if(nov[k]==3&&num1[k+1]==0)
    332                             {
    333                                 do
    334                                 {
    335                                     num1[k+1]=(int)(Math.random()*100);
    336                                 }while(num1[k+1]==0);
    337                             }
    338                         }
    339                         str="";
    340                         if(zz==0)
    341                         {
    342                             for(int j=0;j<n;j++)
    343                             {
    344                                 //if(num1[j]<0)str=str+"("+String.valueOf(num1[j])+")";
    345                                 str=str+String.valueOf(num1[j]);
    346                                 if(j==n-1)
    347                                 {
    348                                     //try
    349                                     //{
    350                                         //int ii=0;
    351                                         try{
    352                                             trueanser[i-1]=opt.Math(str);
    353                                             DecimalFormat df = new DecimalFormat("#.00");
    354                                             trueanser[i-1]=Float.parseFloat(df.format(trueanser[i-1]));
    355                                         } catch (Exception e1) {
    356                                             // TODO 自动生成的 catch 块
    357                                             e1.printStackTrace();
    358                                         }
    359                                     //}
    360                                     /*catch (Exception e1)
    361                                     {
    362                                         System.out.println(e1);
    363                                         //e1.printStackTrace();
    364                                     }*/
    365                                     str=str+"=";
    366                                     //str=str+String.valueOf(trueanser[i-1]);
    367                                     xs.setText(str1+str);
    368                                     break;
    369                                 }
    370                                 str=str+op[nov[j]];
    371                             }
    372                         }
    373                         if(zz==1)
    374                         {
    375                             trueanser[i-1]=1;
    376                             str=String.valueOf(num1[0])+"!=";
    377                             for(int j=1;j<=num1[0];j++)
    378                             trueanser[i-1]=trueanser[i-1]*j;
    379                             //str=str+String.valueOf(trueanser[i-1]);
    380                             xs.setText(str1+str);
    381                         }
    382                         if(i==x+1)
    383                         {
    384                             b=3;
    385                             anser[i-2]=Float.parseFloat(editText.getText().toString());
    386                         }
    387                         else i++;
    388                         editText.setText("");
    389                         number_1="";
    390                         number_2="";
    391                         style=0;
    392                         clicked=false;
    393                         text.setLength(0);
    394                     }
    395                     if(b==3)
    396                     {
    397                         ss="";
    398                         y=0;
    399                         for(int j=0;j<x;j++)
    400                         {
    401                             if(anser[j]==trueanser[j])y++;
    402                             ss=ss+(j+1)+":"+trueanser[j]+";
    ";
    403                         }
    404                         end=System.currentTimeMillis();
    405                         time=(end-begin)/1000;
    406                         xs.setText("答题完成!答对"+y+"道!
    "+"用时:"+time+"s  正确答案:");
    407                         editText.setSingleLine(false); 
    408                         editText.setHorizontallyScrolling(false); 
    409                         editText.setText(ss);
    410                         
    411                         b=0;
    412                         number_1="";
    413                         number_2="";
    414                         style=0;
    415                         clicked=false;
    416                         text.setLength(0);
    417                     }
    418                 }
    419             });
    420             start=(Button) findViewById(R.id.start);
    421             start.setOnClickListener(new Button.OnClickListener(){
    422                 
    423                 public void onClick(View v) {
    424                     // TODO Auto-generated method stub
    425                     xs.setText("请输入出题数量!(1-5)");
    426                     n=0;
    427                     i=1;
    428                     b=1;
    429                 }
    430             });
    431             btn_clear=(Button) findViewById(R.id.btn_clear);
    432             btn_clear.setOnClickListener(new Button.OnClickListener(){
    433                 
    434                 public void onClick(View v) {
    435                     // TODO Auto-generated method stub
    436                     editText.setText("");
    437                     number_1="";
    438                     number_2="";
    439                     style=0;
    440                     clicked=false;
    441                     text.setLength(0);
    442                 }
    443             });
    444         }
    445     }
    MainActivity
      1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      2     android:layout_width="fill_parent"
      3     android:layout_height="fill_parent"
      4     android:orientation="vertical"  
      5 android:background="@drawable/a1"
      6 >
      7     
      8     <TextView
      9         android:id="@+id/xs1"
     10         android:layout_width="wrap_content"
     11         android:layout_height="wrap_content"
     12         
     13         android:singleLine="true"
     14         android:ellipsize="marquee"
     15         android:focusable="true"
     16         android:focusableInTouchMode="true"
     17         
     18         android:text="欢迎使用四则运算程序 ! ! !"
     19         android:textColor="#ffd700"
     20         android:textSize="28sp" >
     21 
     22         <requestFocus />
     23     </TextView>
     24 
     25     <EditText
     26         android:hint="此处显示题目"
     27         android:id="@+id/xs"
     28         android:layout_width="wrap_content"
     29         android:layout_height="wrap_content"
     30         android:ems="20"
     31         android:focusable="false"
     32         
     33         >
     34 
     35         <requestFocus />
     36     </EditText>
     37 
     38     
     39     
     40     
     41     <EditText
     42         android:id="@+id/result"
     43         android:layout_width="match_parent"
     44         android:layout_height="wrap_content"
     45         android:cursorVisible="false"
     46         android:digits="1234567890."
     47         android:ems="20"
     48         android:focusable="false"
     49         android:numeric="decimal"
     50         android:singleLine="true" />
     51 
     52     <TableLayout
     53         android:layout_width="fill_parent"
     54         android:layout_height="wrap_content"
     55         android:stretchColumns="0,1,2,3" >
     56 
     57         <TableRow>
     58 
     59             <Button
     60                 android:id="@+id/btn_1"
     61                 android:text="7" />
     62 
     63             <Button
     64                 android:id="@+id/btn_2"
     65                 android:text="8" />
     66 
     67             <Button
     68                 android:id="@+id/btn_3"
     69                 android:text="9" />
     70         </TableRow>
     71 
     72         <TableRow>
     73 
     74             <Button
     75                 android:id="@+id/btn_4"
     76                 android:text="4" />
     77 
     78             <Button
     79                 android:id="@+id/btn_5"
     80                 android:text="5" />
     81 
     82             <Button
     83                 android:id="@+id/btn_6"
     84                 android:text="6" />
     85         </TableRow>
     86 
     87         <TableRow>
     88 
     89             <Button
     90                 android:id="@+id/btn_7"
     91                 android:text="1" />
     92 
     93             <Button
     94                 android:id="@+id/btn_8"
     95                 android:text="2" />
     96 
     97             <Button
     98                 android:id="@+id/btn_9"
     99                 android:text="3" />
    100         </TableRow>
    101 
    102         <TableRow>
    103 
    104             <Button
    105                 android:id="@+id/btn_dot"
    106                 android:text="." />
    107 
    108             <Button
    109                 android:id="@+id/btn_0"
    110                 android:text="0" />
    111 
    112             <Button
    113                 android:id="@+id/btn_10"
    114                 android:text="-" />
    115         </TableRow>
    116     </TableLayout>
    117 
    118     <TableLayout
    119         android:layout_width="match_parent"
    120         android:layout_height="wrap_content" >
    121 
    122         <TableRow
    123             android:id="@+id/tableRow1"
    124             android:layout_width="wrap_content"
    125             android:layout_height="wrap_content" >
    126 
    127             <Button
    128                 android:id="@+id/start"
    129                 android:layout_width="105.0dip"
    130                 android:layout_height="50.0dip"
    131                 android:text="开始" />
    132 
    133             <Button
    134                 android:id="@+id/btn_eq"
    135                 android:layout_width="105.0dip"
    136                 android:layout_height="50.0dip"
    137                 android:text="确定" />
    138 
    139             <Button
    140                 android:id="@+id/btn_clear"
    141                 android:layout_width="105.0dip"
    142                 android:layout_height="50.0dip"
    143                 android:text="清除" />
    144 
    145         </TableRow>
    146 
    147         <TableRow
    148             android:id="@+id/tableRow2"
    149             android:layout_width="wrap_content"
    150             android:layout_height="wrap_content" >
    151 
    152             <TextView
    153                 android:id="@+id/textView1"
    154                 android:layout_width="wrap_content"
    155                 android:layout_height="wrap_content"
    156                 android:text="" />
    157 
    158         </TableRow>
    159 
    160         <TableRow
    161             android:id="@+id/tableRow3"
    162             android:layout_width="wrap_content"
    163             android:layout_height="wrap_content" >
    164 
    165             <TextView
    166                 android:id="@+id/textView2"
    167                 android:layout_width="wrap_content"
    168                 android:layout_height="wrap_content"
    169                 android:text="" />
    170 
    171         </TableRow>
    172 
    173         <TableRow
    174             android:id="@+id/tableRow4"
    175             android:layout_width="wrap_content"
    176             android:layout_height="wrap_content" >
    177 
    178             <Button
    179                 android:id="@+id/music1"
    180                 android:layout_width="wrap_content"
    181                 android:layout_height="wrap_content"
    182                 android:text="播放" />
    183 
    184             <Button
    185                 android:id="@+id/music3"
    186                 android:layout_width="wrap_content"
    187                 android:layout_height="wrap_content"
    188                 android:text="暂停" />
    189 
    190             <Button
    191                 android:id="@+id/music2"
    192                 android:layout_width="wrap_content"
    193                 android:layout_height="wrap_content"
    194                 android:text="停止" />
    195 
    196         </TableRow>
    197     </TableLayout>
    198     
    199 
    200 </LinearLayout>
    fragment_main
     1 package com.example.add;
     2 import java.util.Stack;
     3 public class opt
     4 {
     5     public float Math(String str) throws Exception
     6     { 
     7         String[] operater =new String[20]; 
     8         String[] number = new String[20]; 
     9         Stack countStack1 = new Stack(); 
    10         Stack countStack2 = new Stack(); 
    11         float result =0;
    12         float x=0;
    13         number = str.split("\/|\*|\+|\-"); 
    14         operater= str.split("\d+");
    15         if(number.length<2)throw new Exception("请输入两位计算数以上!");
    16         for(int i = 0; i<number.length;i++)
    17         {
    18             try
    19             {
    20                 x=Float.parseFloat(number[i]);
    21             }
    22             catch(NumberFormatException e)
    23             {
    24                 throw new Exception("输入错误!请重新输入!");
    25             }
    26             if(operater[i].equals("/"))if(x==0)throw new Exception("除数不能为0!");
    27             countStack1.push(number[i]);
    28             if(i!=number.length-1)
    29             {
    30                 if(operater[i+1]!=null)countStack1.push(operater[i+1]);
    31             }
    32         }
    33         while(!countStack1.isEmpty())countStack2.push(countStack1.pop());
    34         String op;
    35         while(!countStack2.isEmpty())
    36         { 
    37             result=0;
    38             op=countStack2.pop().toString();
    39             if(op.equals("*"))
    40             {
    41                 result=Float.parseFloat(countStack1.pop().toString())*Float.parseFloat(countStack2.pop().toString());
    42                 if(number.length==2)return result;
    43                 countStack1.push(result);
    44                 continue;
    45             }
    46             if(op.equals("/"))
    47             {
    48                 result=Float.parseFloat(countStack1.pop().toString())/Float.parseFloat(countStack2.pop().toString());
    49                 if(number.length==2)return result;
    50                 countStack1.push(result);
    51                 continue;
    52             }
    53             countStack1.push(op);
    54         }
    55         while(!countStack1.isEmpty())countStack2.push(countStack1.pop());
    56         while(!countStack2.isEmpty())
    57         {
    58             result=0;
    59             op = countStack2.pop().toString();
    60             if(op.equals("+"))
    61             {
    62                 result=Float.parseFloat(countStack1.pop().toString())+Float.parseFloat(countStack2.pop().toString());
    63                 countStack1.push(result);
    64                 continue;
    65             }
    66             if(op.equals("-"))
    67             {
    68                 result=Float.parseFloat(countStack1.pop().toString())-Float.parseFloat(countStack2.pop().toString());
    69                 countStack1.push(result);
    70                 continue;
    71             }
    72             countStack1.push(op);
    73         }
    74         return result;
    75     }
    76 }
    opt

    音乐文件就不发啦,只要自行丢一个MP3文件到res/raw里,改名为unity或者到代码里更改文件名都可

    PS:送上背景图片~

  • 相关阅读:
    Django的一点基本知识点
    python函数定义及作用域
    爬取妹子图片
    mysql常用命令大全
    python扫面端口
    python中重要的基础概念
    pexpect模块获取root密码
    mysql
    requests库
    C#中使用SQLite数据库简介(上)
  • 原文地址:https://www.cnblogs.com/SiPine/p/5059202.html
Copyright © 2011-2022 走看看