Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/307: Рейтинг темы: голосов - 307, средняя оценка - 4.96
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372

Создание теста

07.07.2010, 00:06. Показов 62008. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу сделать тест, но не совсем знаю, как правильно реализовать алгоритм.
Знакомый подсказал, что для начала можно создать текстовый файл, содержащий вопросы с ответами
такой структуры:
вопрос
ответ 1
ответ 2
ответ 3
ответ 4
номер правильного ответа ( 1, 2, 3 или 4)
вопрос
ответ 1
и так далее.

при нажатии на кнопку "далее" происходит перезагрузка этой же формы, но появляются другой вопрос и ответы (вопрос загружается в лейбл, а ответы в радиокнопки) и есть переменная, которая присваивает каждой радиокнопки определённый номер (1, 2, 3 или 4) и при нажатии ещё раз на кнопку "далее" запоминается номер и сравнивается с номером, заранее записанном в файле (вопросы+ответы) и затем результат сравнения записывается в другой файл (true или false). По завершения теста появляется окно с результатом теста (массив строк: вопрос - результат (true или false)).
зы в общем получается сначала програ считывает все строки из файла, за исключением каждой 6-ой,
а затем считывает каждую 6-ую строку для проверки
Помогите это реализовать
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.07.2010, 00:06
Ответы с готовыми решениями:

Создание теста
Нужно в отдельной форме создать тест. Данные хранятся в xml. Проблема в том, что часть ответов - картинки, часть - текст. Да и количество...

Создание теста
Здравствуйте, дали задание создать тест. Сложность заключается в том, что в некоторых вопросах 2 варианта ответа,в другом 7 и тд.(мин.-2,...

Создание теста
Такая проблема. Выбирается только один CheckBox, а надо, чтобы выбирались 4(как ответы в каждом вопросе). При нажатии на кнопку...

11
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
07.07.2010, 00:33
Во вложении пример. Написан на VS 2008 Professional
Вложения
Тип файла: 7z WindowsFormsApplication1.7z (24.2 Кб, 2640 просмотров)
2
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
07.07.2010, 00:57  [ТС]
kirill29,
спасибо вам огроиное!!!!
можете только объяснить для чего нужен этот метод:
C#
1
2
3
4
5
6
7
8
9
public int Foreach(string text) 
        {
            for (int i = 0; i < msv.Count; i++)
            {
                if(msv[i].StartsWith(text))
                    return i;
            }
            return 0;
        }
???
0
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
07.07.2010, 01:06
Данный метод возвращает индекс следующего вопроса, который зависти от выбранного ответа. Все таки это не совсем тест, а экспертная система, подобие помощника устранения неисправностей Windows. Это была лаба, поэтому не удивляйтесь, если в коде найдете какуе-нибудь белиберду - это все эксперименты. Вы посмотрите файл 1.txt, который лежит рядом с .exe
0
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
07.07.2010, 01:18  [ТС]
kirill29,
а как сделать чтобы форма обновляла новые вопросы и ответы после нажатии button ?
0
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
07.07.2010, 01:36
Если переделывать именно ту программу, то на событие button_click повесь проверку установленного radiobutton'a:
C#
1
2
3
4
5
6
7
8
9
private void button1_Click(object sender, EventArgs e)
        {
            if (rb1.Checked)
                nextAsk(Foreach(rb1.Text));
            else if (rb2.Checked)
                nextAsk(Foreach(rb2.Text));
            else
                nextAsk(Foreach(rb3.Text));
        }
Как-то так.
1
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
07.07.2010, 02:05  [ТС]
почему-то тест не хочет запускаться(((((
програ запускается , а тест - нет
вот код :
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
83
84
85
86
87
88
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
 
namespace Практика_New
{
    public partial class Test : Form
    {
        public Test()
        {
            InitializeComponent();
        }
 
        List<string> strMass = new List<string>();
        string[] mass1;
        string[] massiv;
 
        private void Test_Load(object sender, EventArgs e)
        {
            StreamReader sr = new StreamReader("questions.txt", System.Text.Encoding.GetEncoding(1251));
            string str = sr.ReadLine();
 
            while (!sr.EndOfStream)
            {
                strMass.Add(str);
            }
            sr.Close();
            nextAsk(Foreach(label1.Text));
        }
 
        public int Foreach(string text)
        {
            for (int i = 0; i < strMass.Count; i++)
            {
                if (strMass[i].StartsWith(text))
                {
                    return i;
                }
            }
            return 0;
        }
        bool flag = true;
        private void nextAsk(int i)
        {
            if (i != 0 || flag == true)
            {
                mass1 = strMass[i].Split('#');
                massiv = mass1[0].Split('@');
 
                label1.Text = massiv[0];
                radioButton1.Text = massiv[1];
                radioButton2.Text = massiv[2];
                radioButton3.Text = massiv[3];
                radioButton4.Text = massiv[4];
            }
            if (i == 0 && flag == true)
                flag = false;
        }
 
        private void buttonNext_Click(object sender, EventArgs e)
        {
      
 
if (radioButton1.Checked == true)
            {
                nextAsk(Foreach(radioButton1.Text));
            }
            else if (radioButton2.Checked == true)
            {
                nextAsk(Foreach(radioButton2.Text));
            }
            else if (radioButton3.Checked == true)
            {
                nextAsk(Foreach(radioButton3.Text));
            }
            else if (radioButton4.Checked == true)
            {
                nextAsk(Foreach(radioButton4.Text));
            }
        }
    }
}
Добавлено через 1 минуту
текстовый файл:
Вопрос №1: Что такое MSDN ?@Библиотека, помогающая разработчикам ПО@Журнал@Газета@Хрень#Библиотека, помогающая разработчикам ПО
Вопрос №2: Что такое ADO.NET ?@Браузер@Технология, созданная Microsoft для создания баз данных@Технология для работы с интернетом@Игра#Технология, созданная Microsoft для создания баз данных
Вопрос №3: Что такое ASP.NET ?@Язык программирования@Название компании@Технология для работы с интернетом@Технология для работы с интернетом@Программа#Технология для работы с интернетом
Вопрос №4: Какие виды поиск есть в MSDN ?@Запрос в поисковую строку@Поиск по дереву@Нельзя искать@И по дереву, и ввод в строку#И по дереву, и ввод в строку
Вопрос №5: Что такое LINQ ?@Интегрированный язык запросов@Хрень@Какой-то класс@Название элемента#Интегрированный язык запросов
Вопрос №6: Это большая библиотека?@Что за библиотека?@Да@Нет@Не знаю#Да
Вопрос №7: Что такое CLR ?@Платформа@Класс@Среда выполнения@Библиотека#Среда выполнения
0
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
07.07.2010, 02:07  [ТС]
+ проект
Вложения
Тип файла: rar Практика_New.rar (50.8 Кб, 1144 просмотров)
0
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
07.07.2010, 02:08  [ТС]
kirill29,
посмотрите пожалуйста
не могу понять в чём ошибка(((
0
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
07.07.2010, 10:11
Во первых, у тебя не правильно был составлен файл теста. Вот как он должен выглядеть:
файл question.txt

#Вопрос №1: Что такое MSDN ?@Библиотека, помогающая разработчикам ПО@Журнал@Газета@Хрень
Библиотека, помогающая разработчикам ПО#Вопрос №2: Что такое ADO.NET ?@Браузер@Технология, созданная Microsoft для создания баз данных@Технология для работы с интернетом@Игра
Технология, созданная Microsoft для создания баз данных#Вопрос №3: Что такое ASP.NET ?@Язык программирования@Название компании@Технология для работы с интернетом@Не знаю
Технология для работы с интернетом#Вопрос №4: Какие виды поиск есть в MSDN ?@Запрос в поисковую строку@Поиск по дереву@И по дереву, и ввод в строку@Не знаю
И по дереву, и ввод в строку#Вопрос №5: Что такое LINQ ?@Интегрированный язык запросов@Хрень@Какой-то класс@Название элемента
Интегрированный язык запросов#Вопрос №6: Это большая библиотека?@Что за библиотека?@Да@Нет@Не знаю
Да#Вопрос №7: Что такое CLR ?@Платформа@Класс@Среда выполнения@Библиотека


Потом у тебя было напутано в событии загрузке формы. В итоге происходило постоянно добавление одного и того же вопроса, что приводило к переполнению памяти.
C#
1
2
3
4
5
6
7
8
9
10
        private void Test_Load(object sender, EventArgs e)
        {
            StreamReader sr = new StreamReader("questions.txt", System.Text.Encoding.GetEncoding(1251));
            while (!sr.EndOfStream)
            {
                strMass.Add(sr.ReadLine());
            }
            sr.Close();
            nextAsk(Foreach(label1.Text));
        }
В общем, вот исправленный проект.
Вложения
Тип файла: rar Практика_New.rar (53.0 Кб, 1983 просмотров)
2
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 44
22.02.2017, 13:13
Цитата Сообщение от kirill29 Посмотреть сообщение
Во вложении пример. Написан на VS 2008 Professional
Кирилл! Добрый день! плиз хелп, у меня выходит ошибка на этой строке massiv = mas[1].Split('@');
помогите как ее исправить?

Добавлено через 2 часа 8 минут
Helios1.618, вы еще здесь? помогите плииз!
0
0 / 0 / 0
Регистрация: 18.11.2021
Сообщений: 4
26.04.2022, 09:00
Цитата Сообщение от Айгулек Посмотреть сообщение
Helios1.618, вы еще здесь? помогите плииз
Вы до сих пор не решили свою проблему? Xd
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.04.2022, 09:00
Помогаю со студенческими работами здесь

Создание теста radiobutton
Помогите, пожалуйста, разобраться. Мне нужно сделать тест по теме, где есть вопрос и варианты, например, как во вложенном скрине...

Создание теста на соответствие
Не могу сделать ответы с соответствием например 1b 2a 3c 4d Вношу в бд Access ключ 1b, 2a, 3c, 4d. Потом когда сравниваю их...

Создание простого теста
может есть у кого исходник простого теста? чтоб был вопрос, пару вариантов и в конце выводил результат,заранее спасибо

Создание теста по математике
Здравствуйте. Мне необходимо написать на странице проекта простой тест, но у меня не как не получается это сделать. По типу: Вопрос: ...

Создание теста без вариантов ответа
Необходимо создать тест, но не знаю как именно это сделать. Структура состоит так: вопрос- ответ (без вариантов ответа). Сами вопросы...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru