none
Проблема с Отображением Данных RRS feed

  • Вопрос

  • Ребятки создал тему с похожей проблемой, что-то заглохла. Попробую абстрагироваться от деталей и понять более очевидные вещи. Вот смотрите я делаю систему тестирования для курсовой работы в вузе.

    Тех Задание:

    Создать систему тестирования, в которой содержится информация о предметах, модулях предмета, и тестовые вопросы модулей. Реализовать в этой системе следующие задания:

    1. Возможность ввода тестовых вопросов по выбранному предмету и модулю.
    2. Возможность пользователю (студенту) заносить свою имя, фамилию, отчество, и получить тестовые вопросы по выбранному модулю.
    3. Возможность ответить на тестовые вопросы и просмотреть результаты.
    4. Возможность просмотра фамилии студентов и их оценок по выбранному модулю и дате (приветствуются и другого рода выборки)

    Пункты 1 я сделал, пункт 4 смогу если будут готовы 2 и 3.

    Какая проблема в пункте 2:

    Как осуществить генерацию вопросов ? Я имею в виду какие средства использовать? Было бы не плохо выбрать с помощью генератора случайных чисел опрдл. количество вопросов и поместить их на форму.

    Если будет готовый пункт 2 то 3 я думаю сделаю. Помогите мне пожалуйста застрял и не могу двигаться дальше.

    23 декабря 2012 г. 13:05

Ответы

  • Несовсем понятно в чем тут проблема, генерацию вопросов можно сделать в цикле

    int count = 0; //кол необходимых вопросов Dictionary<int,string> QuestionList = new Dictionary<int,string>{};//список допустимых вопросов Dictionary<int,string> showingQuestion = new Dictionary<int,string>(); Random rnd = new Random(); for(int i = 0; i<count;i++) { while (true) { int num = rnd.Next(count); if (!showingQuestion.ContainsKey(num)) {showingQuestion.Add(num,QuestionList[num]); break;

    } } }

    на выходе в переменной showingQuestion у вас будет массив вопросов который уже можно будет показать пользователю


    • Изменено Brash_O 24 декабря 2012 г. 6:56
    • Помечено в качестве ответа Дудар Ярослав 24 декабря 2012 г. 9:05
    24 декабря 2012 г. 6:55

Все ответы

  • Несовсем понятно в чем тут проблема, генерацию вопросов можно сделать в цикле

    int count = 0; //кол необходимых вопросов Dictionary<int,string> QuestionList = new Dictionary<int,string>{};//список допустимых вопросов Dictionary<int,string> showingQuestion = new Dictionary<int,string>(); Random rnd = new Random(); for(int i = 0; i<count;i++) { while (true) { int num = rnd.Next(count); if (!showingQuestion.ContainsKey(num)) {showingQuestion.Add(num,QuestionList[num]); break;

    } } }

    на выходе в переменной showingQuestion у вас будет массив вопросов который уже можно будет показать пользователю


    • Изменено Brash_O 24 декабря 2012 г. 6:56
    • Помечено в качестве ответа Дудар Ярослав 24 декабря 2012 г. 9:05
    24 декабря 2012 г. 6:55
  • Спасибо большое , смотрите  код:
    var qu = new MyDataContext();
    
                var obj = from p in qu.Questions
    
                          select new
    
                          {
                              question = p.question,
    
    
                          };
    
    
    
    
                int count_number = Convert.ToInt16(DropDownList5.SelectedValue);//кол необходимых вопросов
                int index_of_obj = obj.ToArray().Length; //индекс вопроса выбраного из базы
    
                Dictionary<int, string> QuestionList = new Dictionary<int, string> { };  //список допустимых вопросов
                for (int j = 0; j <= index_of_obj - 1; j++)
                {
                    QuestionList.Add(j, obj.ToArray()[j].question);
    
                }
    
                Dictionary<int, string> showingQuestion = new Dictionary<int, string>();
    
                Random rnd = new Random();
    
                for (int i = 0; i < count_number; i++)
                {
                    while (true)
                    {
                        int num = rnd.Next(count_number);
                        if (!showingQuestion.ContainsKey(num))
                        {
                            showingQuestion.Add(num, QuestionList[num]);
                            break;
    
                        }
                    }
    
                }
    
                for (int i = 0; i < count_number; i++)
                {
    
                    // Тут нужно вывести елемент с масива на форму
                }
     Вопросы у меня берутся из базы , я смотрел в отладчике на выходе действительно получим масив showingQuestion внутри которого будет количество вопросов выбраных с базы. Не могли бы вы посоветовать какими контролами пользоватся для вывода вопроса на форму? Мне нужно не только вопрос а и 4 варианта ответа к нему поместить на форму и чтобы пользователь смог ставить  галочку на нужном вопросе и отметиь его как правельный, смог нажать следующий вопрос, и переходил бы к другому вопросу , как такое организовать? И еще генерацию ответов таким же образом делать?

    24 декабря 2012 г. 9:57
  • так с ходу не получится, лучше реализовать вопросы как класс, который будет содержать в себе поле которое отметил пользователь и поле с правильным ответом, показывать лучше сделать контрол в который передается класс вопроса и он сам показывает и отрисовывает его, после чего вы сможете пробежаться по списку и определить какие вопросы были отвеченны правильно а какие нет.
    24 декабря 2012 г. 10:31