团队成员:陈淑筠、杨家安、陈曦

团队选题:小学四则运算APP

第一次冲刺阶段时间:11.17~11.27

本次发布我们增加了CalculatorsActivity.java、YunsuanActivity.java、ResultActivity.java这三个Activity,主要有MainActivity.java、TypesActivity.java、CalculatorActivity.java、CalculatorsActivity.java、YunsuanActivity.java、ResultActivity.java这六个Actvity,其中MainActivity.java:主界面,TypesActivity.java:按了主界面中的“进入”按钮后,跳到练习题类型选择“单题练习”或“多选择练习”,CalculatorActivity.java:是“单题练习“界面,CalculatorsActivity.java:是”多选择练习“的提供给用户的选择功能界面,YunsuanActivity.java:是”多选择练习“的按用户选择的功能的出题界面。

新增的代码和界面如下:

CalculatorsActivity.java:

package com.example.calculator;

import android.os.Bundle;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener; public class CalculatorsActivity extends Activity {
private Button beginbtn;
private RadioGroup choice;
private int[] string=new int[]{1,2,3,4};
private EditText edweishu,editshu,timeminutes,timeseconds; @Override
protected void onCreate(Bundle savedInstanceState) {
ActionBar actionBar=getActionBar();
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculators);
beginbtn=(Button)findViewById(R.id.button1);
final RadioGroup choice=(RadioGroup)findViewById(R.id.group);
final int[] string=new int[]{1,2,3,4};
choice.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override
public void onCheckedChanged(RadioGroup arg0, int arg1) {
// TODO Auto-generated method stub
RadioButton r=(RadioButton)findViewById(arg1);
r.getText();
}
});
edweishu=(EditText)findViewById(R.id.editText1);
editshu=(EditText)findViewById(R.id.editText2);
timeminutes=(EditText)findViewById(R.id.editText3);
timeseconds=(EditText)findViewById(R.id.editText4); //"开始"按钮的点击事件
beginbtn.setOnClickListener(new OnClickListener() {
int send=0;
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
for(int i=0;i<4;i++){
RadioButton r=(RadioButton)choice.getChildAt(i);
if(r.isChecked()){
send=string[i];
break;
}
}
String strweishu=edweishu.getText().toString();
String strtishu=editshu.getText().toString();
String strtimeminutes=timeminutes.getText().toString();
String strtimeseconds=timeseconds.getText().toString(); int intweishu=Integer.parseInt(strweishu);
int inttishu=Integer.parseInt(strtishu);
int inttimeminutes=Integer.parseInt(strtimeminutes);
int inttimeseconds=Integer.parseInt(strtimeseconds); Intent intent=new Intent(CalculatorsActivity.this,YunsuanActivity.class);
Bundle bundle=new Bundle();
bundle.putInt("suanfa", send);
bundle.putInt("tishu", inttishu);
bundle.putInt("weishu",intweishu);
bundle.putInt("timeminutes", inttimeminutes);
bundle.putInt("timeseconds", inttimeseconds);
intent.putExtras(bundle); startActivity(intent);
}
});
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.calculators, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case android.R.id.home:
//创建启动MainActivity的Intent
Intent intent=new Intent(this,TypesActivity.class);
//添加额外的Flag,将Activity栈中处于MainActivity之上的Activity弹出
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
break; default:
break;
}
return super.onOptionsItemSelected(item);
} }

activity_calculators.xml:

<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"
android:background="@drawable/animal"
tools:context=".CalculatorsActivity" > <TableLayout android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" > <TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="输入位数" /> <EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="5"
android:inputType="number" > <requestFocus />
</EditText>
</TableRow> <TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" > <TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="输入题数" /> <EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="5"
android:inputType="number" />
</TableRow> <TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" > <TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="输入时间" /> <EditText
android:id="@+id/editText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="3"
android:inputType="number" /> <TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="分" /> <EditText
android:id="@+id/editText4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="3"
android:inputType="number"/> <TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="秒" />
</TableRow> <TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
>
<RadioGroup
android:id="@+id/group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
> <RadioButton
android:id="@+id/radio0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="@string/add" /> <RadioButton
android:id="@+id/radio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/radio0"
android:layout_below="@+id/radio0"
android:text="@string/jian" /> <RadioButton
android:id="@+id/radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cheng" /> <RadioButton
android:id="@+id/radio3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/chu" />
</RadioGroup>
</TableRow> <TableRow
android:id="@+id/tableRow5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" > </TableRow> <Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="开始" /> </TableLayout>
</RelativeLayout>

运行界面:

   

YunsuanActivity.java:

package com.example.calculator;

import android.os.Bundle;
import android.os.SystemClock;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.text.InputType;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.Chronometer.OnChronometerTickListener;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView; public class YunsuanActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
ActionBar actionBar=getActionBar();
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_yunsuan);
final LinearLayout ll=(LinearLayout)findViewById(R.id.yunsuan);
Intent inten=getIntent();
Bundle bundle=inten.getExtras();
final int tishu=bundle.getInt("tishu");
int weishu=bundle.getInt("tishu");
int inttimeminutes=bundle.getInt("timeminutes");
int inttimeseconds=bundle.getInt("timeseconds"); final int suanfa=bundle.getInt("suanfa");
final EditText[] input=new EditText[tishu];
TextView[] showti=new TextView[tishu];
final int[] shu1=new int[tishu];
final int[] shu2=new int[tishu];
final int[] result=new int[tishu];
final String[] user=new String[tishu];
final Chronometer ch=new Chronometer(this);
ch.setBase(SystemClock.elapsedRealtime());
ch.setFormat("已用时间,%s");
ch.start(); String show="";
String suan="";
ll.addView(ch); //题数设定
int setweishu=1;
for(int i=0;i<weishu;i++){
setweishu*=10;
}
//加法
if(suanfa==1){
suan="+";
for(int i=0;i<tishu;i++){
show="";
int a=(int)(Math.random()*setweishu);
int b=(int)(Math.random()*setweishu);
shu1[i]=a;
shu2[i]=b;
result[i]=a+b;
String sa=Integer.toString(a);
String sb=Integer.toString(b);
showti[i]=new TextView(this);
show+="\n"+sa+suan+sb+"=";
showti[i].setText(show); input[i]=new EditText(this);
input[i].setInputType(InputType.TYPE_CLASS_NUMBER);
ll.addView(showti[i]);
ll.addView(input[i]);
} final Button finish=new Button(this);
finish.setText("完成");
ll.addView(finish); //计时器时间到
final int timeover=inttimeminutes*60+inttimeseconds;
ch.setOnChronometerTickListener(new OnChronometerTickListener() { @Override
public void onChronometerTick(Chronometer arg0) {
// TODO Auto-generated method stub
if(SystemClock.elapsedRealtime()-ch.getBase()>=timeover*1000){
finish.callOnClick();
} }
}); //点击“完成”按钮事件
finish.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
for(int i=0;i<user.length;i++){
if(TextUtils.isEmpty(input[i].getText())){
user[i]="null";
}
else{
user[i]=input[i].getText().toString();
}
}
ch.stop();
String time=ch.getText().toString();
Intent intent=new Intent(YunsuanActivity.this,ResultActivity.class);
Bundle bundle=new Bundle();
bundle.putIntArray("shu1", shu1);
bundle.putIntArray("shu2", shu2);
bundle.putStringArray("user", user);
bundle.putInt("suanfa", suanfa);
bundle.putIntArray("result", result);
bundle.putString("time", time);
intent.putExtras(bundle);
startActivity(intent);
}
});
} //减法
if(suanfa==2){
suan="-";
for(int i=0;i<tishu;i++){
show="";
int a=(int)(Math.random()*setweishu);
int b=(int)(Math.random()*setweishu);
if(a<b){
int c=a;a=b;b=c;
}
shu1[i]=a;
shu2[i]=b;
result[i]=a-b;
String sa=Integer.toString(a);
String sb=Integer.toString(b);
showti[i]=new TextView(this);
show+="\n"+sa+suan+sb+"=";
showti[i].setText(show); input[i]=new EditText(this);
input[i].setInputType(InputType.TYPE_CLASS_NUMBER);
ll.addView(showti[i]);
ll.addView(input[i]);
} final Button finish=new Button(this);
finish.setText("完成");
ll.addView(finish);
final int timeover=inttimeminutes*60+inttimeseconds;
ch.setOnChronometerTickListener(new OnChronometerTickListener() { @Override
public void onChronometerTick(Chronometer arg0) {
// TODO Auto-generated method stub
if(SystemClock.elapsedRealtime()-ch.getBase()>=timeover*1000){
finish.callOnClick();
}
}
}); finish.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
for(int i=0;i<user.length;i++){
if(TextUtils.isEmpty(input[i].getText())){
user[i]="null";
}
else{
user[i]=input[i].getText().toString();
}
}
ch.stop();
String time=ch.getText().toString(); Intent intent=new Intent(YunsuanActivity.this,ResultActivity.class);
Bundle bundle=new Bundle();
bundle.putIntArray("shu1", shu1);
bundle.putIntArray("shu2", shu2);
bundle.putStringArray("user", user);
bundle.putInt("suanfa", suanfa);
bundle.putIntArray("result", result);
bundle.putString("time", time); intent.putExtras(bundle);
startActivity(intent);
}
});
} //乘法
if(suanfa==3){
suan="*";
for (int i=0;i<tishu;i++){
show="";
int a=(int)(Math.random() * setweishu);
int b=(int)(Math.random() * setweishu);
shu1[i]=a;
shu2[i]=b;
result[i]=a*b;
String sa=Integer.toString(a);
String sb=Integer.toString(b);
showti[i]=new TextView(this);
show+="\n"+sa+suan+sb+"=";
showti[i].setText(show);
input[i]=new EditText(this);
input[i].setInputType(InputType.TYPE_CLASS_NUMBER);
ll.addView(showti[i]);
ll.addView(input[i]);
}
final Button finish=new Button(this);
finish.setText("完成");
ll.addView(finish);
final int timeover=inttimeminutes*60+inttimeseconds; ch.setOnChronometerTickListener(new OnChronometerTickListener() { @Override
public void onChronometerTick(Chronometer arg0) {
// TODO Auto-generated method stub
if(SystemClock.elapsedRealtime()-ch.getBase()>=timeover*1000){
finish.callOnClick();
}
}
}); finish.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
for(int i=0;i<user.length;i++){
if(TextUtils.isEmpty(input[i].getText())){
user[i]="null";
}
else{
user[i]=input[i].getText().toString();
}
}
ch.stop();
String time=ch.getText().toString(); Intent intent=new Intent(YunsuanActivity.this,ResultActivity.class);
Bundle bundle=new Bundle();
bundle.putIntArray("shu1", shu1);
bundle.putIntArray("shu2", shu2);
bundle.putStringArray("user", user);
bundle.putInt("suanfa", suanfa);
bundle.putIntArray("result", result);
bundle.putString("time", time); intent.putExtras(bundle);
startActivity(intent);
} });
} //除法
if(suanfa==4){
suan="/";
for (int i=0;i<tishu;i++){
show="";
int a=(int)(Math.random() * setweishu);
int b=(int)(Math.random() * setweishu);
if(a<b){int c=a;a=b;b=c;}
shu1[i]=a;
shu2[i]=b;
result[i]=a/b;
String sa=Integer.toString(a);
String sb=Integer.toString(b);
showti[i]=new TextView(this);
show+="\n"+sa+suan+sb+"=";
showti[i].setText(show);
input[i]=new EditText(this);
input[i].setInputType(InputType.TYPE_CLASS_NUMBER);
ll.addView(showti[i]);
ll.addView(input[i]);
}
final Button finish=new Button(this);
finish.setText("完成");
ll.addView(finish);
final int timeover=inttimeminutes*60+inttimeseconds;
ch.setOnChronometerTickListener(new OnChronometerTickListener() { @Override
public void onChronometerTick(Chronometer arg0) {
// TODO Auto-generated method stub
if(SystemClock.elapsedRealtime()-ch.getBase()>=timeover*1000){
finish.callOnClick();
}
}
}); finish.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
for(int i=0;i<user.length;i++){
if(TextUtils.isEmpty(input[i].getText())){
user[i]="null";
}
else{
user[i]=input[i].getText().toString();
}
}
ch.stop();
String time=ch.getText().toString();
Intent intent=new Intent(YunsuanActivity.this,ResultActivity.class);
Bundle bundle=new Bundle();
bundle.putIntArray("shu1", shu1);
bundle.putIntArray("shu2", shu2);
bundle.putStringArray("user", user);
bundle.putInt("suanfa", suanfa);
bundle.putIntArray("result", result);
bundle.putString("time", time); intent.putExtras(bundle);
startActivity(intent);
}
});
}
} private void setContentView(
android.widget.LinearLayout.LayoutParams layoutParams) {
// TODO 自动生成的方法存根 } private void addContentView(TextView textView,
android.widget.LinearLayout.LayoutParams[] p) {
// TODO 自动生成的方法存根 } @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.yunsuan, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case android.R.id.home:
//创建启动MainActivity的Intent
Intent intent=new Intent(this,CalculatorsActivity.class);
//添加额外的Flag,将Activity栈中处于MainActivity之上的Activity弹出
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
break; default:
break;
}
return super.onOptionsItemSelected(item);
} }

运行界面:

    

ResultActivity.java:

package com.example.calculator;

import android.os.Bundle;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView; public class ResultActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
ActionBar actionBar=getActionBar();
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
Intent inten=getIntent();
Bundle bundle=inten.getExtras();
TextView text=(TextView)findViewById(R.id.textresult);
TextView text2=(TextView)findViewById(R.id.textView1);
int[] shu1=inten.getIntArrayExtra("shu1");
int[] shu2=inten.getIntArrayExtra("shu2");
int[] result=inten.getIntArrayExtra("result");
int suanfa=bundle.getInt("suanfa");
String time=bundle.getString("time");
String showfa="";
if(suanfa==1){showfa="+";}
if(suanfa==2){showfa="-";}
if(suanfa==3){showfa="*";}
if(suanfa==4){showfa="/";}
String[] user=inten.getStringArrayExtra("user");
String aaa="";
int score=0;
String show4;
String[] jie=new String[]{"正确","错误"}; for (int i=0;i<shu1.length;i++){
String show1="";
String show2="";
String show3="";
show1=Integer.toString(shu1[i]);
show2=Integer.toString(shu2[i]);
show3=Integer.toString(result[i]); if(user[i].equals(show3)){show4=jie[0];score++;}
else { show4=jie[1];}
aaa+=show1+showfa+show2+"="+show3+" "+user[i]+" "+show4+"\n";
text.setText(aaa);
}
text2.setText(time+"总得分为"+score*10);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.result, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case android.R.id.home:
//创建启动MainActivity的Intent
Intent intent=new Intent(this,CalculatorsActivity.class);
//添加额外的Flag,将Activity栈中处于MainActivity之上的Activity弹出
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
break; default:
break;
}
return super.onOptionsItemSelected(item);
} }

activity_result.xml:

<ScrollView 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"
android:background="@drawable/animal"
android:scrollbars="vertical"
tools:context=".ResultActivity" > <LinearLayout
android:layout_width="fill_parent"
android:layout_height="202dp"
android:orientation="vertical" > <TextView
android:id="@+id/texttitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="55dp"
android:text=" 正确答案 你的答案 判断" /> <TextView
android:id="@+id/textresult"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="TextView" /> <TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" /> </LinearLayout>
</ScrollView>

  

运行界面:

接下来,我们会继续完善APP,根据更多用户的需求去改变我们APP的功能,以获得更多用户的喜爱,得以推广。

小学四则运算APP 第一个冲刺阶段 第四天的更多相关文章

  1. 小学四则运算APP 第一个冲刺阶段 第一天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第一次冲刺阶段时间:11.17~11.27 思考:初步了解小学四则运算数是在100以内的加减乘除,首先先从简单的地方入手,把最基础的算法功 ...

  2. 小学四则运算APP 第一个冲刺阶段 第六天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第一次冲刺阶段时间:11.17~11.27 本次发布的是重新排列整齐ResultActivity的布局代码activity_result. ...

  3. 小学四则运算APP 第一个冲刺阶段 第五天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第一次冲刺阶段时间:11.17~11.27 本次发布的是实现练习功能的成功 代码: public class CalculatorActi ...

  4. 小学四则运算APP 第一个冲刺阶段 第三天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第一次冲刺阶段时间:11.17~11.27 本次发布是在与团队成员解决了昨天问题的基础上,再增加了几个界面,增加了一些功能,修改与增加的代 ...

  5. 小学四则运算APP 第一个冲刺 第八天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第一次冲刺阶段时间:11.17~11.27 本次发布的是还未完成的功能二(选择题): ChoiceActivity.java: packa ...

  6. 小学四则运算APP 第一个冲刺 第七天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第一次冲刺阶段时间:11.17~11.27 本次发布的是完成的功能一: 程序代码: MainActivity代码: import andr ...

  7. 小学四则运算APP 第一个冲刺 第二天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第一次冲刺阶段时间:11.17~11.27 本次程序是为了解决上次判断的问题,但是还是出现新的问题页面无法调整,需要进行改进 本次改进代码 ...

  8. 小学四则运算APP 第二个冲刺 第一天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第二次冲刺阶段时间:11.29~12.09 本次发布的是已完成的功能二(选择题): ChoiceActivity.java: packag ...

  9. 小学四则运算APP 第二次冲刺 第四天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第二次冲刺阶段时间:11.29~12.09 本次发布的是合并后的选择题功能界面的设置: ChoiceSet.java: package c ...

随机推荐

  1. swift protocol的几种形式

    三个关注点:1.形式:2.实现方式:3.使用方式: 一.基本形式: 形式:内部无泛型类型: 实现:只需指定类型和实现相应的功能即可: 使用:可以用在其他类型出现的任何地方: protocol Resp ...

  2. AES块加密与解密

    AES块加密与解密 解密目标 在CBC和CTR两种模式下分别给出十篇加密的样例密文,求解密一篇特定的密文 解密前提 全部密文及其加密使用的key都已给出 加密的方法遵循AES的标准 解密过程分析 实验 ...

  3. MP实战系列(十七)之乐观锁插件

    声明,目前只是仅仅针对3.0以下版本,2.0以上版本. 意图: 当要更新一条记录的时候,希望这条记录没有被别人更新 乐观锁实现方式: 取出记录时,获取当前version 更新时,带上这个version ...

  4. 或许因为缺少默认route配置而导致的的ping超慢,甚至timeout

    内网有台dell r620 做测试用: 4个网口都插了 网线,通过小交换直接连在中心路由的第3个口上: 安装了kvm,有virbr0   :但还没装其它的虚拟机. ping 外网域名 ,IP地址 都超 ...

  5. [转]OpenGL进阶(一) - 多视口

    直接给出原文链接:OpenGL进阶(一) - 多视口

  6. PAT B1030 完美数列 (25 分)

    给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列. 现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列. 输入格 ...

  7. Python2.7-浙江省实时天气爬取

    先对中国天气网的实时天气数据进行了研究,数据在http://www.weather.com.cn/weather1d/101010100.shtml中,可以通过城市代码进行爬取,但实况数据是用JS动态 ...

  8. Docker 修改已有镜像(转)

    1.当结束后,我们使用 exit 来退出,现在我们的容器已经被我们改变了,使用 docker commit 命令来提交更新后的副本. 其中,-m 来指定提交的说明信息,跟我们使用的版本控制工具一样:- ...

  9. js中数组的使用

    使用js时候,很多情况下要使用数组.就写写数组中一些常用的方法. js中定义一个数组,一般有以下2种方法. 1. var arr = new Array(3); // 声明数组有3个元素 arr[0] ...

  10. Android提权原理

    Android的内核就是Linux,所以Android获取root其实和Linux获取root权限是一回事儿. 你想在Linux下获取root权限的时候就是执行sudo或者su,接下来系统会提示你输入 ...