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

C++ Builder

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

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

28.03.2015, 18:57. Просмотров 268. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Выбрать случайный номер теста (C++ Builder):

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

Случайный цвет - C++ Builder
Как сделать случайный выбор цвета. То есть что то типа этого но лучше. x=rand() % 5; if (x==0) Form1-&gt;Color=clRed; if (x==1) ...

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

Открыть случайный файл - C++ Builder
AshBringer4eg, Привет подскажи пожалуйста. У меня есть 5 файлов, надо открыть 1 случайный, не догоняю как написать (содержимое вывести...

Случайный выбор из значений - C++ Builder
Добрый вечер. Не могу найти ответ. Есть несколько любых значений (например 1, 45, 67, 134, 156, 189, 200) из них необходимо, по нажатию...

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

4
8-BITOV
541 / 484 / 87
Регистрация: 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 / 87
Регистрация: 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
Привет! Вот еще темы с ответами:

Случайный элемент массива с условием - C++ Builder
Суровые будни перед дипломом заставили заняться программированием, что печально с нуля. Нужна помощь, не могу 2й день разобраться, почему...

Случайный выбор ячеек таблицы - C++ Builder
помогите организовать с помощью random'а случайный выбор индексов ячейки таблицы и дальнейшую их очистку я пробую так: ввожу m,n...

Как добавить случайный символ в ListBox? - C++ Builder
Помогите, пожалуйста, кому не сложно...

В текстовом файле.Определить номер строки и номер позиции в этой строке, с которой начинается слово “plus” - C++ Builder
Определить номер строки и номер позиции в этой строке, с которой начинается слово “plus”. Вывести строки, которые начинаются и за- ...


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

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

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