问题描述
- android/java 数据库中数据如何生成选择题
-
现有数据库中数据形式是这样的:key 名字;translation 解释;
如何**随机**取出其中一条数据的key为题目,translation为一个正确选项,再取出另外3条数据的translation作为错误选项,生成选择题,并且正确选项会随机出现在ABCD任意位置?
哪位大神可以解答一下我的问题?提供一个思路。。。先谢谢啦~
解决方案
首先获取随机题目;随机题目id可以使用这样获取int a=(int) (Math.random()*10+1);后面的10是在10里面随机获取;
发送的时候不用打乱发送,在客户端排序的时候打乱排序
public static void main(String[] args) {
String[] arr={"a的答案","b的答案","c的答案","d的答案"};//这添加字符串我就不用说了吧;;;;
//标记正确答案
String right="a的答案";
aa(arr);
Scanner scan=new Scanner(System.in);
String a=scan.next();
//输出匹配结果
System.out.println(a.equals(right));
}
public static void aa(String[] arr){
int dd=0;
for (int i = 0; i < arr.length; i++) {
int a=(int) (Math.random()*arr.length);
String temp=arr[i];
arr[i]=arr[a];
arr[a]=temp;
dd++;
}
System.out.println(dd);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
这样就获取到打乱后的排序;
按这排序添加到listview中嘛;
解决方案二:
非常感谢 qq_34920350 的回答
我有思路了,下面这个方法就是我的解决办法,其参数是List形式的题目,第一位是题目,第二为是正确答案,其余是错误答案。
exercise_answer 是TextView显示窗口此方法将错误答案随机排到A~D的选项
/**
* 更新题目的UI界面,将答案随机分布到选项
*/
public void upDateQuestionUI(List<String> question) {
Log.d("ExerciseActivity", "更新题目的UI界面");
exercise_question_wordsKey.setText(question.remove(0));
exercise_answer1.setText(question.remove((int) (Math.random() * question.size())));
exercise_answer2.setText(question.remove((int) (Math.random() * question.size())));
exercise_answer3.setText(question.remove((int) (Math.random() * question.size())));
exercise_answer4.setText(question.remove((int) (Math.random() * question.size())));
}
解决方案三:
Java 数据库数据生成Excel
解决方案四:
可以在后台生成一个4以内的整数随机数,1对应A,2对应B,3对应C,4对应D,,
解决方案五:
用Math.radom