首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随机问答系统

随机问答系统
EN

Code Review用户
提问于 2011-10-07 21:39:21
回答 1查看 244关注 0票数 7

基本上,我为我的Android做了一个简单的应用程序,它为你挑选了一个随机的问题,并选择了具体的答案。只有一个答案是正确的,而其他的答案则不正确。

另外,在编辑了QBegin方法之后,它开始给我一些问题,但答案是错误的。

代码语言:javascript
复制
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;

    }
}
EN

回答 1

Code Review用户

发布于 2011-10-07 22:30:22

显而易见的方法(或至少是“一种”)是将大部分数据移动到数组中,只需使用数字从这些数组中选择值。例如:

代码语言:javascript
复制
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最终都会出现类似的情况,不过恐怕我缺乏将其全部输入的雄心。

然而,就我个人而言,我认为我应该将问答的文本移到文本文件(或数据库)中,并将代码编写成一个或多或少通用的“引擎”,从文件中读取和呈现问题和答案。

票数 10
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/5242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档