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

团队选题:小学四则运算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. Flume学习之路 (三)Flume的配置方式

    一.单一代理流配置 1.1 官网介绍 http://flume.apache.org/FlumeUserGuide.html#avro-source 通过一个通道将来源和接收器链接.需要列出源,接收器 ...

  2. Docker学习2-虚拟化

    虚拟化就是由位于下层的软件模块,根据上层的软件模块的期待,抽象(虚拟)出一个虚拟的软件或硬件模块,使上一层软件直接运行在这个与自己期待完全一致的虚拟环境上.从这个意义上来看,虚拟化既可以是软件层的抽象 ...

  3. 搭建windows远程节点_jmeter自动化测试环境(接口测试)

    WINDOWS10系统下 环境 172.16.0.115虚拟机windows系统作为远程节点. jenkins安装在172.16.0.119:8088虚拟机中. 一.安装配置Java环境   wind ...

  4. 浅谈 MVC 和 MTV

    浅谈 MVC 和 MTV 一.MVC M:model,模型,就是数据模型,负责数据的存取: V:view,视图,负责页面的展示逻辑: C:controller,控制器,负责业务逻辑的处理: 二.MTV ...

  5. Flask 邮件发送

    欢迎关注小婷儿的博客: csdn:https://blog.csdn.net/u010986753 博客园:http://www.cnblogs.com/xxtalhr/ 有问题请在博客下留言或加QQ ...

  6. grpc & pb 环境配置

    grpc 官方中文文档:http://doc.oschina.net/grpc?t=60140 grpc github仓库:https://github.com/grpc/grpc protobuf ...

  7. Linux中的do{...} while(0)

    摘抄自: <<Linux设备驱动开发详解(第二版)>> 在 Linux 内核中,经常会看到do{} while(0)这样的语句,许多人开始都会疑惑,认为do{} while(0 ...

  8. 2017-2018-2 20155224『网络对抗技术』Exp5:MSF基础应用

    基础问题回答 用自己的话解释什么是exploit,payload,encode? exploit就相当于是载具,将真正要负责攻击的代码传送到靶机中,我觉得老师上课举的火箭和卫星的例子非常形象,火箭只是 ...

  9. 2017-2018-1 20155320 嵌入式C语言——时钟

    2017-2018-1 20155320 嵌入式C语言--时钟 要求: 在作业本上完成附图作业,要认真看题目要求. 提交作业截图 作弊本学期成绩清零(有雷同的,不管是给别人传答案,还是找别人要答案都清 ...

  10. face_recognition环境配置及命令行工具测试

    由于某种不可抗力(又是它!)我写了这篇博客,主要目的是记录. face_recognition是啥子? face_recognition号称世界上最简单的人脸识别库,可使用 Python 和命令行进行 ...