package com.example.szys; import android.media.AudioManager; import android.os.Bundle; import android.os.SystemClock; import android.app.Activity; import android.view.Menu; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.text.DecimalFormat; import android.support.v4.app.Fragment; import android.text.InputType; import android.os.Bundle; import android.view.ContextMenu; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.os.Build; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.ContextMenu.ContextMenuInfo; import android.widget.Button; import android.widget.Chronometer; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private Chronometer timer; // AudioManager mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); // Button bz,bj; 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.activity_main); text=new StringBuffer(); editText1=(EditText)findViewById(R.id.editText2); editText2=(EditText)findViewById(R.id.editText1); // editText3=(EditText)findViewById(R.id.editText3); timer=(Chronometer)this.findViewById(R.id.chronometer1); /* bz=(Button)findViewById(R.id.button15); bj=(Button)findViewById(R.id.button16);*/ /* bz.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER, AudioManager.FX_FOCUS_NAVIGATION_UP); } });*/ /* bj.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE, AudioManager.FX_FOCUS_NAVIGATION_UP); } });*/ //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++; } timer.stop(); 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; timer.setBase(SystemClock.elapsedRealtime()); timer.start(); startService(new Intent(MainActivity.this, MusicService.class)); } }); 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); // } // } // }); } @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) { // TODO Auto-generated method stub switch (item.getItemId()) { case R.id.help: Intent intent1=new Intent(this,Hellp.class); startActivity(intent1); break; case R.id.about: Intent intent2=new Intent(this,About.class); startActivity(intent2); break; default: break; } return super.onOptionsItemSelected(item); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // TODO Auto-generated method stub super.onCreateContextMenu(menu, v, menuInfo); if(v.getId()==R.id.chronometer1){ this.getMenuInflater().inflate(R.menu.context, menu); menu.setHeaderIcon(R.drawable.ic_launcher); menu.setHeaderTitle("计时器选项"); } } @Override public boolean onContextItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case R.id.item1: timer.setBase(SystemClock.elapsedRealtime()); timer.start(); break; case R.id.item2: timer.stop(); break; case R.id.item3: timer.setBase(SystemClock.elapsedRealtime()); timer.stop(); break; default: break; } return super.onContextItemSelected(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.example.hhhhhh.MainActivity$PlaceholderFragment" android:background="@drawable/jsqbg" > <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="确定" /> <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="时间" /> --> <Button android:id="@+id/button1" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button10" android:layout_alignTop="@+id/button14" android:text="开始" /> <Chronometer android:id="@+id/chronometer1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/button11" android:layout_below="@+id/button1" android:layout_marginTop="34dp" android:text="Chronometer" /> <!-- <Button android:id="@+id/button15" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/chronometer1" android:layout_alignLeft="@+id/button1" android:text="增大音量" /> --> <!-- <Button android:id="@+id/button16" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/button15" android:layout_toRightOf="@+id/button12" android:text="减小音量" /> --> </RelativeLayout>

package com.example.szys; 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; } }

package com.example.szys; import android.app.Service; import android.content.Intent; import android.media.MediaPlayer; import android.os.IBinder; import android.util.Log; public class MusicService extends Service { private MediaPlayer mp; private String TAG="Main"; @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { super.onCreate(); mp=MediaPlayer.create(this,R.raw.big); Log.i(TAG, "MusicService onCreate被运行"); } @Override public int onStartCommand(Intent intent, int flags, int startId) { // TODO Auto-generated method stub mp.start(); Log.i(TAG, "MusicService onStartCommand被运行"); return super.onStartCommand(intent, flags, startId); } // @SuppressWarnings("deprecation") // @Override // public void onStart(Intent intent, int startId) { // super.onStart(intent, startId); // mp.start(); // } @Override public void onDestroy() { super.onDestroy(); mp.stop(); Log.i(TAG, "MusicService onDestroy被运行"); } }

package com.example.szys; import android.app.ActionBar; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class Hellp extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.hellp); ActionBar actionBar = getActionBar();// 获取ActionBar对象 actionBar.setDisplayShowHomeEnabled(true);// 显示应用程序图标 actionBar.setDisplayHomeAsUpEnabled(true);// 将应用程序图标转变为 } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case android.R.id.home: Intent intent = new Intent(this, MainActivity.class); startActivity(intent); break; default: break; } return super.onOptionsItemSelected(item); } }

package com.example.szys; import android.app.ActionBar; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class About extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.about); ActionBar actionBar = getActionBar();//获取ActionBar对象 actionBar.setDisplayShowHomeEnabled(true);//显示应用程序图标 actionBar.setDisplayHomeAsUpEnabled(true);//将应用程序图标转变为 } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case android.R.id.home: Intent intent=new Intent(this,MainActivity.class); startActivity(intent); break; default: break; } return super.onOptionsItemSelected(item); } }

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/RelativeLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/hbg"> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:textColor="#40E0D0" android:text="@string/help" /> </RelativeLayout>

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/RelativeLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/about"> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:textColor="#F0F000" android:text="@string/about" /> </RelativeLayout>

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <AnalogClock android:id="@+id/analogClock1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>

<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/help" android:showAsAction="always" android:title="帮助"></item> <item android:id="@+id/about" android:showAsAction="always" android:title="关于"></item> <item android:id="@+id/item4" android:showAsAction="always" android:actionLayout="@layout/clock" android:title="时钟"></item> </menu>

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Szys</string>
<string name="action_settings">Settings</string>
<string name="hello_world">四则运算!</string>
<string name="help">本程序为小学生四则运算出题软件,可以输入题目数量进行答题,最终输出答题情况!谢谢使用!</string>
<string name="about">在数学中,当一级运算(加减)和二级运算(乘除)同时出现在一个式子中时,它们的运算顺序是先乘除,后加减,如果有括号就先算括号内后算括号外,同一级运算顺序是从左到右,这样的运算叫四则运算。
四则是指加法、减法、乘法、除法的计算法则。
一道四则运算的算式并不需要一定有四种运算符号,一般指由两个或两个以上运算符号及括号,把多数合并成一个数的运算。
加减互为逆运算;乘除互为逆运算;乘法是加法的简便运算。
统称为四则运算</string>
</resources>
点击开始按钮就开始背景音乐的播放!!!
小组成员:刁怿 201306114456
叶鹏 201306114457
侯圣燊201306114402
陈秋亮201306114208