Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 04.12.2010
Сообщений: 5

создание теста c произвольным количеством вопросов и ответов

20.12.2010, 00:19. Показов 1365. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте.Пишу на с++ не очень давно и не очень уверенно) Я создал форму для записи и изменения простого теста с вопросами и ответами из текстбоксов и радиобаттонов для правильных ответов:6 вопросов, 4 ответа и 5 правильный. Запись делал в бин файл через масивы так,как нашёл в мсдн:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
FileStream^ fs = gcnew FileStream("testn2.bin", FileMode::Create);
   BinaryWriter^ w = gcnew BinaryWriter(fs);
 
   try 
   {
      for (int i=0,j=0; i<6; i++)
      {
            for (j=0; j<6; j++)
            {
            w->Write(f[i,j]);
            }
      }
   }
   catch (Exception^) 
   
     fs->Close();
   }
   fs->Close();
Но это было с постоянным количеством вопросов и ответов. Теперь же задача изменилась: на форме добавляются и удаляются вопросы о ответы:
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
tb= gcnew array<System::Windows::Forms::TextBox ^>(n);
        rb= gcnew array<System::Windows::Forms::RadioButton ^>(n);
for (int i = 0; i < tb.Length; i++)
{
    /*tb[i] = gcnew System::Windows::Forms::TextBox();
    tb[i]->Location = gcnew System::Drawing::Point(101, 50 + i * 30);
    tb[i]->Name = "textBox" + i.ToString();
    tb[i]->Size = gcnew System::Drawing::Size(75, 23);
    tb[i]->TabIndex = i;
    tb[i]->Text = "textBox" + ToString(i);                
    Controls->Add(tb[i]);*/
 tb[i] = gcnew TextBox();
        tb[i]->Name = L"tb"+i.ToString();
        tb[i]->Size = Drawing::Size(75, 23);
        tb[i]->Text = i.ToString();
        tb[i]->Location = System::Drawing::Point(20, 20 + 40 * i);
        panel1->Controls->Add(tb[i]);
 
        //listBox1->Controls->Add(tb[i]);
 
        rb[i] = gcnew RadioButton();
rb[i]->Name = L"rb"+i.ToString();
        rb[i]->Size = Drawing::Size(75, 23);
        rb[i]->Text = i.ToString();
        rb[i]->Location = System::Drawing::Point(5, 20 + 40 * i);
        panel1->Controls->Add(rb[i]);
        //listBox1->Controls->Add(rb[i]);
А потом записываются в файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Text=Convert::ToString(textBox1->Text);
    FileStream^ fs = gcnew FileStream(Convert::ToString(textBox1->Text)+".bin", FileMode::Append);
   BinaryWriter^ w = gcnew BinaryWriter(fs);
   try 
   {
      Console::WriteLine("writing data to file:");
      w->Write(Convert::ToString(textBox2->Text::get()));
      for(int k=0;k<n;k++)
      {
          w->Write(Convert::ToString(tb[k]->Text::get()));
      }
      for(int k=0; k<n;k++)
      {if(rb[k]->Checked)
w->Write(Convert::ToString(tb[k]->Text::get()));
      }
      
   }
   catch (Exception^) 
   {
     
   }
 
   fs->Close();
Но я не знаю,как потом правильно считать с файла этот тест, ведь мне не известно количество вопросов и ответов. Плюс теперь количесто ответов выбирается через чекбоксы и тоже может быть произвольным. Привидённые примеры кода не совсем соответсствуют задаче,но это всё,что у меня накопилось с прошлых попыток.
По сему продублирую главный вопрос: как сделать запись в бин файл,что бы потом можно было считать этот тест при произвольном количестве вопросов, ответов и правильных ответов?

Добавлено через 6 часов 24 минуты
Есть хоть какие-то идеи?
Хотя бы подскажите считывать с бинки до определённого символа,например |, в одну переменную,а последующий набор символов до | в следующую, и так далее.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.12.2010, 00:19
Ответы с готовыми решениями:

Массив: Реализация системы ответов и вопросов теста...
Всем привет,нужна помощь запутался в том как лучше реализовать работу с массивами, вообщем. Есть база данных в ней 2 таблицы...

Где в этом коде задается текст теста для вопросов и ответов
Ребят, можете кто-нибудь объяснить мне глупенькой, где в этом коде задается текст для теста для вопросов, ответов...где??:scratch:

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.12.2010, 00:19
Помогаю со студенческими работами здесь

Создание функций, с произвольным количеством аргументов
Всем доброго. Мне нужно создать функцию(с произвольным количеством аргументов), который использует первую(тоже с произвольным количеством...

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

Создание теста. Реализовать подсчет правильных ответов
Добрый день, подскажите как закончить программу с написанием теста в С++, начало я сделала, в концу нужно чтобы был счетчик, чтобы...

Создание теста: реализовать подсчет правильных ответов
Подскажите как сделать что бы программа выводила после завершение работы ответы мои и те которые правильные. Программа такая как на сайте...

Создание теста: как сделать счетчик правильных ответов
Здравствуйте, прошу помощи в создании теста. Не знаю как сделать счетчик правильных ответов. Также вопрос, можно ли упростить...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru