Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Pc_Key
0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 14
#1

Выбрать случайный номер теста

28.03.2015, 18:57. Просмотров 285. Ответов 4
Метки нет (Все метки)

rangerx, Привет! Подскажи пожалуйста как мне переделать код, нужно:
1. Допустим тест состоит из 30 case мне нужно чтобы порядок был random и после 16 case мне выводил итоги правильных ответов.
вот код ->
C++
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
#include <vcl.h>
#pragma hdrstop
#include <algorithm>
#include <cstddef>
#include <cstdlib>
#include <ctime>
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit4.h"
#include "Unit5.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
int s=0, i=0, pravil_otvet, nomer=0;
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
        : TForm(Owner)
{
}
 
//---------------------------------------------------------------------------
void __fastcall TForm2::BitBtn2Click(TObject *Sender)
{
Form2->Visible=false;
 Form3->Visible=true;
 Form3->Label2->Caption=s;        
}
//---------------------------------------------------------------------------
void __fastcall TForm2::BitBtn1Click(TObject *Sender)
{
if(RadioButton1->Checked==true)i=1;
 if(RadioButton2->Checked==true)i=2;
 if(RadioButton3->Checked==true)i=3;
 if(RadioButton4->Checked==true)i=4;
 if(i==pravil_otvet)s++;
 
 RadioButton1->Checked=false;
 RadioButton2->Checked=false;
 RadioButton3->Checked=false;
 RadioButton4->Checked=false;
 
 nomer++;
  const size_t n = 10;
int values[n] = {0,1,2,3,4,5,6,7,8,9};
   
std::srand(std::time(NULL));
std::random_shuffle(values, values + n);
 
for(size_t i = 0; i < n; ++i)
{
   switch(values[i])
 
{
  case 1:
           Form2->Label5->Caption="2+3?";
           Form2->Label1->Caption="3";
           Form2->Label2->Caption="5";
           Form2->Label3->Caption="2";
           Form2->Label4->Caption="4";
           pravil_otvet=2;
                   break;
 
  case 9:
           Form2->Label5->Caption="2+2?";
           Form2->Label1->Caption="1";
           Form2->Label2->Caption="2";
           Form2->Label3->Caption="3";
           Form2->Label4->Caption="4";
           pravil_otvet=4;
                   break;
 
  case 10:
           BitBtn1->Enabled=false;
           RadioButton1->Enabled=false;
           RadioButton2->Enabled=false;
           RadioButton3->Enabled=false;
           RadioButton4->Enabled=false;
}}}
 
//---------------------------------------------------------------------------
твой код в серединке, основу повзаимствовал на другом сайте.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2015, 18:57
Ответы с готовыми решениями:

Создание программы-теста(оценивание знаний) и вывод теста в форму, с подсчетом оценки(балл за правильный ответ)
Здравствуйте, уважаемые форумчане. У меня назрел еще один вопрос: -Есть...

Случайный цвет
Как сделать случайный выбор цвета. То есть что то типа этого но лучше....

Случайный выбор из значений
Добрый вечер. Не могу найти ответ. Есть несколько любых значений (например 1,...

Открыть случайный файл
AshBringer4eg, Привет подскажи пожалуйста. У меня есть 5 файлов, надо...

Неслучайный случайный массив
Столкнулся с непонятной мне проблемой - создаю массив, при нажатии на кнопку...

4
8-BITOV
541 / 484 / 104
Регистрация: 05.05.2014
Сообщений: 1,108
28.03.2015, 21:33 #2
Цитата Сообщение от Pc_Key Посмотреть сообщение
Допустим тест состоит из 30 case
Как только я вижу "30 case", мне кажется, что автор не любит ни себя, ни своей работы.
0
Pc_Key
0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 14
28.03.2015, 23:42  [ТС] #3
8-BITOV, Начнём с того, что я только открыл C++ пару дней назад и начал так скажем собирать коды, и пытаюсь разобраться в С++
Покажи мне как лучше сделать ? используя .txt файл с вопросами или как ? Советуй ))

Добавлено через 6 минут
надо чтобы пользователь отвечал на скажем 10 рендомных вопросов из 30. после ответа на 10 radioButton становились не активными и кнопка "следующий вопрос" не активной, и открывая 3юю форму кнопкой button2 мне выводил результат правильных ответов на эти 10 вопросов в % соотношении.
0
8-BITOV
541 / 484 / 104
Регистрация: 05.05.2014
Сообщений: 1,108
29.03.2015, 11:04 #4
Цитата Сообщение от Pc_Key Посмотреть сообщение
используя .txt файл с вопросами
Один из приемлемых вариантов. Загоняешь вопросы в массив и рандомно вытаскиваешь из него строчки.
0
Pc_Key
0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 14
29.03.2015, 18:09  [ТС] #5
8-BITOVЕсли тебе не сложно, подскажи пожалуйста как это сделать?
я =0 (( код чуть переделал, убрал label как я понял он лишний) заменил label на Radiobutton
Как чтобы вопросы загружались из txt ?
А где ответы будут храниться, тоже в txt только в другом ?
Ммм.. помоги пожалуйста

Добавлено через 2 минуты
C++
1
2
3
4
5
6
Form2->Label1->Caption="..+2=9";
           Form2->RadioButton1->Caption="2";
           Form2->RadioButton2->Caption="5";
           Form2->RadioButton3->Caption="4";
           Form2->RadioButton4->Caption="7";
           pravil_otvet=4;
Заменил Label))

Добавлено через 1 час 7 минут
Sergey-K, Привет. Можешь дописать код пожалуйста, чтобы рендом был определенным. Т.е. выбирал 2 рендомных case из 5, потом кнопка становилась не активной
0
29.03.2015, 18:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2015, 18:09

Случайный элемент из массива
Как вывести в label случайный элемент одномерного массива размерности n?

Случайный выбор ячеек таблицы
помогите организовать с помощью random'а случайный выбор индексов ячейки...

Случайный элемент массива с условием
Суровые будни перед дипломом заставили заняться программированием, что печально...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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