基本上,我为我的Android做了一个简单的应用程序,它为你挑选了一个随机的问题,并选择了具体的答案。只有一个答案是正确的,而其他的答案则不正确。
另外,在编辑了QBegin方法之后,它开始给我一些问题,但答案是错误的。
TextView question;
private int qType = -1;
private int asked = 0;
private void QBegin() {
// TODO Auto-generated method stub
question = (TextView) findViewById(R.id.question);
Random random = new Random();
int qType = random.nextInt(5);
switch(qType){
case 0:
question.setText("Question 1");
break;
case 1:
question.setText("Q2");
break;
case 2:
question.setText("Q3");
break;
case 3:
question.setText("Q4");
break;
case 4:
question.setText("Q5");
break;
}
asked++;
//intList.add(qType);
getAnswers(qType);
/*if(intList.contains(qType) && asked <= 5){
QBegin();
} else {
answerCounter.setText("Congratulations!!! Your score : "+correct);
}*/
}
private int answer;
private void getAnswers(int Type) {
Random random = new Random();
// TODO Auto-generated method stub
switch(Type){
case 1:
if(random.nextInt(4) == 0){
answer = 1;
answer1.setText("относительно низкая температура шлаков");
answer2.setText("сложность в управлении");
answer3.setText("малая производительность");
answer4.setText("нету выделения энергии непосредственно в загрузке");
} else if (random.nextInt(4) == 1){
answer = 2;
answer1.setText("сложность в управлении");
answer2.setText("относительно низкая температура шлаков");
answer3.setText("малая производительность");
answer4.setText("нету выделения энергии непосредственно в загрузке");
} else if (random.nextInt(4) == 2){
answer = 3;
answer1.setText("сложность в управлении");
answer2.setText("малая производительность");
answer3.setText("относительно низкая температура шлаков");
answer4.setText("нету выделения энергии непосредственно в загрузке");
} else if (random.nextInt(4) == 3){
answer = 4;
answer1.setText("сложность в управлении");
answer2.setText("малая производительность");
answer3.setText("нету выделения энергии непосредственно в загрузке");
answer4.setText("относительно низкая температура шлаков");
}
break;
case 2:
if(random.nextInt(4) == 0){
answer = 1;
answer1.setText("закрытые - плавка под слоем шихты");
answer2.setText("открытые - плавка на воздухе");
answer3.setText("вакуумные - плавка в вакууме");
answer4.setText("компрессорные - плавка под избыточным давлением");
} else if (random.nextInt(4) == 1){
answer = 2;
answer1.setText("открытые - плавка на воздухе");
answer2.setText("закрытые - плавка под слоем шихты");
answer3.setText("вакуумные - плавка в вакууме");
answer4.setText("компрессорные - плавка под избыточным давлением");
} else if (random.nextInt(4) == 2){
answer = 3;
answer1.setText("открытые - плавка на воздухе");
answer2.setText("вакуумные - плавка в вакууме");
answer3.setText("закрытые - плавка под слоем шихты");
answer4.setText("компрессорные - плавка под избыточным давлением");
} else if (random.nextInt(4) == 3){
answer = 4;
answer1.setText("открытые - плавка на воздухе");
answer2.setText("вакуумные - плавка в вакууме");
answer3.setText("компрессорные - плавка под избыточным давлением");
answer4.setText("закрытые - плавка под слоем шихты");
}
break;
case 3:
if(random.nextInt(4) == 0){
answer = 1;
answer1.setText("в которой тепло выделяется в результате прохождения тока через проводники с активным сопротивлением");
answer2.setText("в которой используеться активное сопротивление в качестве шихты");
answer3.setText("в которой тепло не передаеться тепло излучением");
answer4.setText("в которой которая делиться на компрессорную печь с активным сопротивлением");
} else if (random.nextInt(4) == 1){
answer = 2;
answer1.setText("в которой используеться активное сопротивление в качестве шихты");
answer2.setText("в которой тепло выделяется в результате прохождения тока через проводники с активным сопротивлением");
answer3.setText("в которой используеться активное сопротивление в качестве шихты");
answer4.setText("в которой которая делиться на компрессорную печь с активным сопротивлением");
} else if (random.nextInt(4) == 2){
answer = 3;
answer1.setText("в которой используеться активное сопротивление в качестве шихты");
answer2.setText("в которой используеться активное сопротивление в качестве шихты");
answer3.setText("в которой тепло выделяется в результате прохождения тока через проводники с активным сопротивлением");
answer4.setText("в которой которая делиться на компрессорную печь с активным сопротивлением");
} else if (random.nextInt(4) == 3){
answer = 4;
answer1.setText("в которой используеться активное сопротивление в качестве шихты");
answer2.setText("в которой используеться активное сопротивление в качестве шихты");
answer3.setText("в которой которая делиться на компрессорную печь с активным сопротивлением");
answer4.setText("в которой тепло выделяется в результате прохождения тока через проводники с активным сопротивлением");
}
break;
case 4:
if(random.nextInt(4) == 0){
answer = 1;
answer1.setText("Correct");
answer2.setText("Incorrect");
answer3.setText("Incorrect");
answer4.setText("Incorrect");
} else if (random.nextInt(4) == 1){
answer = 2;
answer1.setText("Inorrect");
answer2.setText("Correct");
answer3.setText("Incorrect");
answer4.setText("Incorrect");
} else if (random.nextInt(4) == 2){
answer = 3;
answer1.setText("Inorrect");
answer2.setText("Incorrect");
answer3.setText("Correct");
answer4.setText("Incorrect");
} else if (random.nextInt(4) == 3){
answer = 4;
answer1.setText("Inorrect");
answer2.setText("Incorrect");
answer3.setText("Incorrect");
answer4.setText("Correct");
}
break;
case 5:
if(random.nextInt(4) == 0){
answer = 1;
answer1.setText("Correct");
answer2.setText("Incorrect");
answer3.setText("Incorrect");
answer4.setText("Incorrect");
} else if (random.nextInt(4) == 1){
answer = 2;
answer1.setText("Inorrect");
answer2.setText("Correct");
answer3.setText("Incorrect");
answer4.setText("Incorrect");
} else if (random.nextInt(4) == 2){
answer = 3;
answer1.setText("Inorrect");
answer2.setText("Incorrect");
answer3.setText("Correct");
answer4.setText("Incorrect");
} else if (random.nextInt(4) == 3){
answer = 4;
answer1.setText("Inorrect");
answer2.setText("Incorrect");
answer3.setText("Incorrect");
answer4.setText("Correct");
}
break;
}
}发布于 2011-10-07 22:30:22
显而易见的方法(或至少是“一种”)是将大部分数据移动到数组中,只需使用数字从这些数组中选择值。例如:
private void QBegin() {
question = (TextView) findViewById(R.id.question);
String[] types = { "Question 1", "Q2", "Q3", "Q4", "Q5"};
Random random = new Random();
int qType = random.nextInt(types.length);
question.setText(types[qType]);
asked++;
getAnswers(qType);
}大多数getAnswers最终都会出现类似的情况,不过恐怕我缺乏将其全部输入的雄心。
然而,就我个人而言,我认为我应该将问答的文本移到文本文件(或数据库)中,并将代码编写成一个或多或少通用的“引擎”,从文件中读取和呈现问题和答案。
https://codereview.stackexchange.com/questions/5242
复制相似问题