Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Pepsi4ever
0 / 0 / 0
Регистрация: 30.08.2015
Сообщений: 7
#1

Викторина - Программирование Android

30.08.2015, 11:31. Просмотров 785. Ответов 9
Метки нет (Все метки)

Доброго времени суток, ув. форумчане. Хотел спросить вашего совета. Пишу приложение наподобие милионера или о, счастливчик. Есть несколько моментов.
1. Посоветуйте, где лучше хранить базу вопросов и ответов- в SQL lite, в текстовике, или в стрингах.
2. Как приравнять, что бы вопросы приравнивались к вариантам ответов (Вопрос= 4 ответа).
3. каким методом расписать, что бы был правильный ответ?
4. Еслли есть какие то методы, то скиньте ссылки.

Заранее благодарю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.08.2015, 11:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Викторина (Программирование Android):

Викторина из 100 заданий - Программирование Android
Собственно, по теме: вопросы ( а их больше 100) - находятся в базе данных Имеется TextView, где будет храниться название вопроса,...

Викторина - C#
Ребят , вот решил создать Викторину . все понятно но есть 1 вопрос ! 1) вот я поставил изначальное значение int index = 0 . тип...

Викторина - PHP
Всем привет У меня зародилась идея но я не знаю как мне её воплотить и прошу вашей помощи! Есть обычный чат скажем на сервисе Скажем...

Программа-викторина - C++/CLI WinForms
Программа-викторина для младших школьников по теме «Мир вокруг нас». Программа предлагает в случайном порядке пять вопросов (из 10...

Викторина на php - PHP
Вот надо сделать опрос, на сайт(задние в ВУЗе) либо на JavaScript либо на PHP, я вот не знаю JavaScript и думаю делать на php, я кое что...

Викторина на WinPhone - Windows Phone
Пытаюсь сделать простенькую викторину на виндафоне, на форме есть 4 кнопки.... загружаю вопросы из одного текстового файла, ответы из 4-х...

9
PYPS
51 / 50 / 7
Регистрация: 12.07.2011
Сообщений: 542
Завершенные тесты: 3
30.08.2015, 12:09 #2
Странный вопрос если честно, реализовать это можно кучей способов.
Используй SQLite!
создай две таблицы :
Вопросы ( ID вопроса, TEXT вопроса , ID правильного ответа.);
Ответы: ( ID вопроса, ID ответа, TEXT ответа);

Пример:

Таблица вопросов
ID_ISSUE|ISSUE|ID_ANSWER|
1| Первый полет человека в космос состоялся в каком году| 3|


Таблица ответов
ID_ANSWER|ANSWER|ID_ISSUE|
1|2015|1|
2|1991|1|
3|1961|1|
4|1861|1|



3 и 4 вопрос я не понял, поясните.
1
Pepsi4ever
0 / 0 / 0
Регистрация: 30.08.2015
Сообщений: 7
30.08.2015, 13:06  [ТС] #3
PYPS, спасибо за методику. Я просто хотел спросить, каким лучшим и легче способом реализовать. За третий вопрос я уже получил от вас ответ. А в четвертом вопросе я просто просил какую-нибудь информацию для прочтения в инете в подробностях

Добавлено через 46 минут
PYPS, а как реализовать с помощью текстовых файлов? можете скинуть пример?
0
PYPS
51 / 50 / 7
Регистрация: 12.07.2011
Сообщений: 542
Завершенные тесты: 3
30.08.2015, 13:20 #4
Почему не подходит реализация с SQLite?
0
Pepsi4ever
0 / 0 / 0
Регистрация: 30.08.2015
Сообщений: 7
03.09.2015, 12:39  [ТС] #5
PYPS,
Да впринципе подойдет, просто никогда толком с БД не работал, даже незнаю, как реализовать по коду в программе(
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
03.09.2015, 12:44 #6
Цитата Сообщение от Pepsi4ever Посмотреть сообщение
никогда толком с БД не работал
Проще пареной репы.
http://developer.alexanderklimov.ru/...d/database.php
1
Leks2
2 / 2 / 1
Регистрация: 14.11.2014
Сообщений: 105
04.09.2015, 00:06 #7
А как теперь проверить через метод на правильный ответ из четырех вопросов?
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
04.09.2015, 07:51 #8
Цитата Сообщение от Leks2 Посмотреть сообщение
А как
switch
0
PYPS
51 / 50 / 7
Регистрация: 12.07.2011
Сообщений: 542
Завершенные тесты: 3
04.09.2015, 08:05 #9
В момент когда вы берете вопрос из БД вам нужно запомнить ID правильного ответа в некую переменную.
Затем при выборке ответов из БД, текст выводите на какие то Button (например) и присваиваете каждому button ID.
Затем нажимаете при нажатие на кнопку запускаете функцию


C#
1
2
3
4
5
6
private boolean result(int id_Reply, int id_correct_reply)
{
if(id_Reply ==id_correct_reply)
return true;
return false;
}
2
Pepsi4ever
0 / 0 / 0
Регистрация: 30.08.2015
Сообщений: 7
14.10.2015, 11:14  [ТС] #10
Ребят пока тренируюсь с приложением Викториной. Покаместь без Sqlite и Mysql. Тут такая проблема. Вычитал на сайте, как написать викторину. Попробовал эту программу, она работает. Но, рисовали ее вручную через Absolytelayout. Я рисовал все автоматом через Relativelayout. У меня выбивает ошибку в проге. Помогите, пожалуйста присвоить вопросы и ответы к Textview и Button.

Программа с сайта рабочая
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
import android.app.Activity;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AbsoluteLayout;
import android.widget.Button;
import android.widget.Toast;
 
public class MainActivity extends Activity implements OnClickListener {
        private AbsoluteLayout Abs;
    private Button Question;
    private Button[] Answers=new Button[4];
    private double width;
    private double height;
    private static final int QUESTIONS=8;
    private static final int VARIANTS=4;
    private static final char DELIMITER='/';
    private String[][] AnsMatrix=new String[VARIANTS][QUESTIONS];
    private int[] RightAnswers=new int[QUESTIONS];
    private String[] Ques=new String[QUESTIONS];
    private TypedArray Base;
    private int time=0;
    private int total_time=3;
    private int right=0;
    private int wrong=0;
    private int current_right=0;
    private AbsoluteLayout.LayoutParams[] params=new AbsoluteLayout.LayoutParams[VARIANTS+1];
    @Override
    public void onCreate(Bundle savedInstanceState) {
        try{
           super.onCreate(savedInstanceState);
           Abs=new AbsoluteLayout(this);
           setContentView(Abs);
           Display display = getWindowManager().getDefaultDisplay(); 
           width=display.getWidth();
           height=display.getHeight();
           Question= new Button(this);
           params[0]=new AbsoluteLayout.LayoutParams(
                 (int)width,(int)height/4,0,0
           );
           Question.setLayoutParams(params[0]);
           Abs.addView(Question);
           Question.setOnClickListener(this);
           //
           for (int i=1;i<VARIANTS+1;i++){
              int k=i%2;
              int m;
              if (i<3) m=1;
              else{
                  m=2;
              }
              Answers[i-1]= new Button(this);
              params[i]=new AbsoluteLayout.LayoutParams(
                    (int)width/2,(int)height/4,(int)(k*width/2),(int)(m*height/4)
              );
              Answers[i-1].setLayoutParams(params[i]);
              Abs.addView(Answers[i-1]);
              Answers[i-1].setOnClickListener(this);
           }
           //getSubstringBetweenDelimiters(2,3,"/Question1/Variant11/Variant12/Variant13/Variant14/Answer1/");
           //Toast.makeText(this, getSubstringBetweenDelimiters(5,6,"/Question1/Variant11/Variant12/Variant13/Variant14/Answer1/"), Toast.LENGTH_LONG).show();
           LoadQuestions();
           LoadQuestion();
        }
        catch(Exception e){
            Toast.makeText(this, e+"", Toast.LENGTH_LONG).show();
        }
    }
    
   private void LoadQuestion() {
         int qs=(int)System.currentTimeMillis()%QUESTIONS;
         Question.setText(Ques[qs]);
         for (int i=0;i<VARIANTS;i++){
            Answers[i].setText(AnsMatrix[i][qs]);
         }
         current_right=RightAnswers[qs]-1;
   }
    
   private void LoadQuestions(){
        Resources res=getResources();
        Base=res.obtainTypedArray(R.array.Questions);
        for (int i=0;i<QUESTIONS;i++){
            Ques[i]=getSubstringBetweenDelimiters(0,1,Base.getString(i));
            for (int j=0;j<VARIANTS;j++){
                AnsMatrix[j][i]=getSubstringBetweenDelimiters(j+1,j+2,Base.getString(i));
            }
            RightAnswers[i]=Integer.parseInt(getSubstringBetweenDelimiters(VARIANTS+1,VARIANTS+2,Base.getString(i)));
        }
    }
   
    private String getSubstringBetweenDelimiters(int k, int m, String str){
        int index1=0;
        int index2=0;
        int len=str.length();
        int dels=0;
        for (int i=0;i<len;i++){
            if (str.charAt(i)==DELIMITER){
                dels++;
            }
            if (dels==k){
                index1=i;
            }
            if (dels==m){
                index2=i;
            }
        }
        //Toast.makeText(this, index1+" "+index2, Toast.LENGTH_LONG).show();
        return str.substring(index1+2, index2+1);
    }
    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        if (arg0==Question){
            wrong++;
        }
        else{
            wrong++;
            for (int i=0;i<VARIANTS;i++){
                if (arg0==Answers[i]){
                    if (current_right==i){
                        wrong--;
                        right++;
                    }
                }
            }
        }
        time++;
        LoadQuestion();
        if (time==total_time){
            Stats();
            time=0;
            right=0;
            wrong=0;
        }
    }
    
    private void Stats() {
        // TODO Auto-generated method stub
        double rating=Math.round(((double)right/((double)right+(double)wrong))*100);
        String stat="";
        stat+=getString(R.string.note1);
        stat+=" "+right+" ";
        stat+=getString(R.string.note2);
        stat+=" "+total_time+". ";
        stat+=getString(R.string.note3);
        stat+=" "+(rating+"").substring(0,(rating+"").length()-2);
        Toast.makeText(this, stat, Toast.LENGTH_LONG).show();
    }
}
моя нерабочая прога
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
public class MainActivity extends Activity {
    private Button button;
    private TextView Question;
    private TypedArray Base;
    private Button[] Answers=new Button[4];
    private static final int QUESTIONS = 8;
    private static final int VARIANTS = 4;
    private static final char DELIMITER = '/';
    private String[] Ques = new String[QUESTIONS];
    private String[][] AnsMatrix = new String[VARIANTS][QUESTIONS];
    private int[] RightAnswers = new int[QUESTIONS];
    private int current_right = 0;
    private int time = 0;
    private int total_time = 3;
    private int right = 0;
    private int wrong = 0;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.A);
        button = (Button) findViewById(R.id.B);
        button = (Button) findViewById(R.id.C);
        button = (Button) findViewById(R.id.D);
        Question = (TextView) findViewById(R.id.Question);
        LoadQuestions();
        LoadQuestion();
 
    }
 
    private void LoadQuestion() {
        int qs=(int)System.currentTimeMillis()%QUESTIONS;
        Question.setText(Ques[qs]);
        for (int i=0;i<VARIANTS;i++){
            Answers[i].setText(AnsMatrix[i][qs]);
        }
        current_right=RightAnswers[qs]-1;
    }
    private String getSubstringBetweenDelimiters(int k, int m, String str){
        int index1=0;
        int index2=0;
        int len=str.length();
        int dels=0;
        for (int i=0;i<len;i++){
            if (str.charAt(i)==DELIMITER){
                dels++;
            }
            if (dels==k){
                index1=i;
            }
            if (dels==m){
                index2=i;
            }
        }
 
        return str.substring(index1+2, index2+1);
    }
    private void LoadQuestions(){
        Resources res=getResources();
        Base=res.obtainTypedArray(R.array.Questions);
        for (int i=0;i<QUESTIONS;i++){
            Ques[i]=getSubstringBetweenDelimiters(0,1,Base.getString(i));
            for (int j=0;j<VARIANTS;j++){
                AnsMatrix[j][i]=getSubstringBetweenDelimiters(j+1,j+2,Base.getString(i));
            }
          RightAnswers[i]=Integer.parseInt(getSubstringBetweenDelimiters(VARIANTS+1,VARIANTS+2,Base.getString(i)));
        }
    }
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2015, 11:14
Привет! Вот еще темы с ответами:

Викторина на WinApi - Visual C++
Не подскажите как с помощью WinApi сделать викторину. То есть надо есть вопросы к примеру. 1.&quot;Какой из этих языков ООП&quot; а) С++ б)...

Викторина: угадайте тип - Java SE
Добрый день, участники форума, знающие Java Предлагаю вам такую игру-викторину. Ниже приведён код с несколькими известными вам...

.NET 4.x Викторина: вопросы реализации - C#
Мне надо, сделать мини викторину типо, когда были первые выборы в Украине? и четыре варианта ответа. Но у меня возникает одна проблема не...

Создание игры Викторина - C++ Builder
я даже не знаю чего начать помогите )))!!(((


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
14.10.2015, 11:14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru