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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Nattali
9 / 9 / 0
Регистрация: 11.12.2012
Сообщений: 55
#1

Опять тестовая оболочка - рандом - C++

25.09.2013, 00:00. Просмотров 477. Ответов 4
Метки нет (Все метки)

Написала тест, спасибо Культину, но преподавателя не устраивает. Нужно считывать вопросы с файла с помощью рандома. В тесте 50 вопросов, выбираем их количество а потом генерируем номер каждого вопроса и считываем его. Подскажите как в программе задать что именно ЭТОТ вопрос надо найти и считать...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2013, 00:00     Опять тестовая оболочка - рандом
Посмотрите здесь:

Тестовая задача - C++
Здраствуйте всем прозьба к вам с тестом вот код если сможите сделать или подправте мой код что дописать чтоб работало как надо...

Оболочка программы - C++
Всем доброго времени суток. Мне по семестровой надо написать небольшую программу с оболочкой. Под оболочкой подразумевается оконный...

Файловая оболочка - C++
Уважаемые товарищи,прошу помочь мне реализовать такой проект на языке C: Файловая оболочка. * Навигация по дереву...

Оболочка для программы - C++
Вот пишу программу на с++ и интересует, как создать графическую оболочку для программы? Надо сделать окошко для ввода текста двух...

Графическая оболочка для программы - C++
Пару месяцев назад начал изучать с++. До этого писал только консольные программы, захотелось написать программу с графическим интерфейсом....

Оболочка на MSVC++ 6.0 для флэш-ролика - C++
Привет! Хочу найти описание, как на MSVC++ 6.0 проще всего написать оболочку для флэш-ролика. И как обмениваться с ним информацией...

Оболочка для потков-методов классов - C++
Задача: написать удобную оболочку для реализации многопоточных классов. Пишу: ThreadWrap.h: #ifndef _ThreadWrap_h_ #define...

Оболочка для new с отслеживанием количества выделенной памяти - C++
Здравствуйте, раньше была функция оболочка для malloc() void *_malloc(dword lSize) { void *pnt; pnt=malloc(lSize); ...

Массив и рандом - C++
2. Дан одномерный массив, состоящий из N целочисленных элементов. 2.1. Заполнить массив случайными числами. 2.2. Найти минимальный...

Про рандом - C++
Как с++ одномерный массив из 10 элементов прорандомить так ,чтобы все элементы массива в сумме давали 1000 и были положительными (ноль...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
25.09.2013, 00:27     Опять тестовая оболочка - рандом #2
Nattali, допустим ты случайно сгенерировала число от 1 до 50 например 10, так выведи просто 10 элемент массива и все.
Nattali
9 / 9 / 0
Регистрация: 11.12.2012
Сообщений: 55
27.09.2013, 18:36  [ТС]     Опять тестовая оболочка - рандом #3
Спасибо, я попыталась изменить код что у меня был, но помучившись решила что проще писать новый. Вот что у меня получилось( я пока не генерирую, а задаю номер ответа через Edit). но по неизвестным мне причинам оно то выводит, то не выводит вопрос... я точно что-то сделала не так(

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
{
int top;
int k=StrToInt(Edit1->Text);
TStringList *list = new TStringList;
AnsiString str;
list->LoadFromFile("tex2.txt");
 
top=Panel1->Top+Panel1->Height+10;
  for(int i = 0; i < list->Count; i++) //главный цикл ищем номер заданного вопроса
  {
  if (list->Strings[i]==k) //номер нашли
      {
      i++;
      Panel1->Caption=(list->Strings[i]); //вывели вопрос
     for(int j=0; j<4; j++)      // считываем варианты ответов
     {
       i++;
       RadioButton[j]->Top=top;
       str = list->Strings[i];
       RadioButton[j]->Caption=(str);
       RadioButton[j]->Visible=true;
       top+=20;
     }
     }
     }
 
delete list;
}
Dragon21
0 / 0 / 0
Регистрация: 14.06.2014
Сообщений: 7
14.06.2014, 12:38     Опять тестовая оболочка - рандом #4
Я новичок в c++ конечно, но нельзя ли сделать глобальную переменную, а по кнопке перехода к следующему вопросу будет не, предположим s++(глобальная переменная, прибавляется при нажатии клавиши. Способ через массивы), а генерироваться случайное число, а s его присвоит. Только надо учитывать, чтобы вопросы не повторялись, то есть завести отдельный массив, в который будут записываться номера вопросов, которые генерируются, в идеале массив должен быть глобальным и ещё нужна будет переменная которая заменит s, но будет уже только для этого массива. То есть при нажатии на кнопку "назад" будет генерироваться не случайное число, а будет браться из массива и s будет присваивать его, так же с условием клавиши вперёд, но тут нужно будет в идеале сравнивать значения с каким-нибудь числом, который ты забьёшь в массив в самом начале. К примеру число "-1", которое ну никак не может быть ни номером вопроса, ни индексом(если только сама такой не сделаешь). То есть заполняем массив левым числом, а при записи(первое нажатие кнопки вперёд) заполняем его нормальными номерами вопросов. Таким образом, при нажатии клавиши вперёд, вы сможете проверить записан ли следующий элемент массива, или там левое число, которое нужно заменить.
Простите, что так запутанно немного, но это реально рабочее. Правда в коде я не шибко)
easybudda
Эксперт С++
9458 / 5471 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
14.06.2014, 13:20     Опять тестовая оболочка - рандом #5
Nattali, видимо, это продолжение какой-то вашей прежней темы? Не очень понятно, что там у Вас происходить должно... Вот выводилка строк из файла в произвольном порядке
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
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>
#include <cstdlib>
#include <ctime>
 
int main(int argc, char ** argv) {
    if ( argc < 2 ) {
        std::cerr << "Usage: " << *argv << " <input_file>" << std::endl;
        return 1;
    }
    
    std::ifstream ifs(argv[1]);
    if ( ! ifs.is_open() ) {
        std::cerr << "Can't open input file!" << std::endl;
        return 1;
    }
    
    std::string str;
    std::vector<std::string> vec;
    
    while ( std::getline(ifs, str) )
        vec.push_back(str);
        
    ifs.close();
    
    srand(time(NULL));
    
    std::random_shuffle(vec.begin(), vec.end());
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
    
    return 0;
}
пример вывода
Код
[andrew@easybook ~]$ cd cpp/strings/
[andrew@easybook strings]$ g++ -o random_strings_order random_strings_order.cpp 
[andrew@easybook strings]$ ./random_strings_order random_strings_order.cpp 
	return 0;
	std::random_shuffle(vec.begin(), vec.end());
	srand(time(NULL));
	
		std::cerr << "Usage: " << *argv << " <input_file>" << std::endl;
	
	std::copy(vec.begin(), vec.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
	std::vector<std::string> vec;
	if ( ! ifs.is_open() ) {
	std::ifstream ifs(argv[1]);
	
#include <cstdlib>
		return 1;
#include <iterator>

#include <iostream>
#include <string>
int main(int argc, char ** argv) {
	while ( std::getline(ifs, str) )
#include <algorithm>
}
#include <vector>
	if ( argc < 2 ) {
	
	
	std::string str;
	}
		
		return 1;
	ifs.close();
	
		vec.push_back(str);
#include <ctime>
		std::cerr << "Can't open input file!" << std::endl;
#include <fstream>
	}
[andrew@easybook strings]$
Yandex
Объявления
14.06.2014, 13:20     Опять тестовая оболочка - рандом
Ответ Создать тему
Опции темы

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