Exemple #1
0
        public void SaveTestToFile(string path)
        {
            //створюємо 3 списка - список з самими питаннями, з відповідями типу вибір правильних і співставлення
            List <Question>             listOfQuestions  = new List <Question>();
            List <varForChooseRightOne> listOfChoose     = new List <varForChooseRightOne>();
            List <varForComparison>     listOfComparison = new List <varForComparison>();

            for (int i = 0; i < questions.Count; i++)
            {
                listOfQuestions.Add(questions[i]);
                if (questions[i] is ChooseRightOne)
                {
                    ChooseRightOne chooseRightOne = (ChooseRightOne)questions[i];
                    for (int j = 0; j < chooseRightOne.options.Count; j++)
                    {
                        listOfChoose.Add(chooseRightOne.options[j]);
                    }
                }
                else
                {
                    Comparison comparison = (Comparison)questions[i];
                    for (int j = 0; j < comparison.options.Count; j++)
                    {
                        listOfComparison.Add(comparison.options[j]);
                    }
                }
            }
            WriteToFile(path, listOfQuestions);
            WriteToChooseRightFile(path, listOfChoose);
            WriteToComparisonFile(path, listOfComparison);
        }
Exemple #2
0
        /// <summary>
        /// Метод, що редагує питання типу ChooseRigthOne
        /// </summary>
        /// <param name="Index"></param>
        /// <param name="question"></param>
        /// <param name="score"></param>
        /// <param name="listChooseRight"></param>
        public void EditQuestion(int Index, string question, float score, List <varForChooseRightOne> listChooseRight)
        {
            /*RemoveQuestionFromList(Index);
             * ChooseRightOne choose = new ChooseRightOne(Index, question, score);
             * choose.AddListOptions(listChooseRight);
             * this.AddToTest(choose);*/
            ChooseRightOne choose = new ChooseRightOne(Index, question, score);

            choose.AddListOptions(listChooseRight);
            questions[Index - 1] = new Question();
            questions[Index - 1] = choose;
        }
        /// <summary>
        /// Метод обробки події натиску на кнопку "Далі"
        /// Зберігає створене запитання, додає його до тесту, додає питання в список питань, створює нову форму введення питання
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        private void BtnNextQuestionClick(object sender, RoutedEventArgs args)
        {
            // MessageBox.Show("Створення нового питання");
            string question = textBoxQuestion.Text;

            if (question == "")
            {
                MessageBox.Show("Введіть текст питання!", "Помилка", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            float score;

            try
            {
                score = float.Parse(textBoxScore.Text);
            }
            catch (FormatException)
            {
                MessageBox.Show("Кількість балів за питання було введено неправильно!", "Помилка!",
                                MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            switch (type)
            {
            case 0:
                ChooseRightOne choose = CreatingChooseRightOne(question, score);
                ourTest.AddToTest(choose);
                // MessageBox.Show(String.Format("ChooseRight question have been added\n" + choose.Show()));
                break;

            case 1:
                Comparison comparison = CreatingComparison(question, score);
                ourTest.AddToTest(comparison);
                // MessageBox.Show(String.Format("Comparison question have been added\n" + comparison.Show()));
                break;
            }
            ListOfQuestions();
            CreatingNewQuestion();
        }
        /// <summary>
        /// Метод, що зчитує з форми варіанти відповідей (вибір правильних)
        /// Приймає текст питання і к-сть балів, повертає об'єкт класу ChooseRightOne
        /// </summary>
        /// <param name="question"></param>
        /// <param name="score"></param>
        /// <returns></returns>
        private ChooseRightOne CreatingChooseRightOne(string question, float score)
        {
            ChooseRightOne var = new ChooseRightOne(ourTest.GetNumberOfNextQuestion(), question, score);
            List <varForChooseRightOne> list = new List <varForChooseRightOne>();

            for (int i = 0; i < numberOfOptions; i++)
            {
                bool answer;
                if (checkBoxes[i].IsChecked == true)
                {
                    answer = true;
                }
                else
                {
                    answer = false;
                }
                string answerOption = tb1[i].Text;
                list.Add(new varForChooseRightOne(ourTest.GetNumberOfNextQuestion(), answerOption, answer));
            }
            var.AddListOptions(list);
            return(var);
        }
Exemple #5
0
 /// <summary>
 /// Додавання питання типу вибір правильних до тесту
 /// </summary>
 /// <param name="question"></param>
 public void AddToTest(ChooseRightOne question)
 {
     questions.Add(question);
 }
        private void EditChooseRightOne()
        {
            ChooseRightOne choose = ourTest.questions[Index - 1] as ChooseRightOne;

            numberOfOptions = choose.options.Count;

            //comboBox1 selected option choose right
            comboBox1.SelectedItem = "Вибір правильних";
            //comboBox2 selected option numberOfOptions
            comboBox2.SelectedItem = numberOfOptions.ToString();

            //creating rows
            rowDefinitions = new RowDefinition[2 + numberOfOptions];
            for (int i = 0; i < rowDefinitions.Length; i++)
            {
                rowDefinitions[i] = new RowDefinition();
            }
            rowDefinitions[0].Height = new GridLength(50);                   //це буде к-сть балів
            rowDefinitions[1 + numberOfOptions].Height = new GridLength(50); //це будуть кнопки
            //додавання до гріду
            for (int i = 0; i < rowDefinitions.Length; i++)
            {
                CreateTestWindowGrid.RowDefinitions.Add(rowDefinitions[i]);
            }
            //row 1 -> text of question
            AddToGrid(1, 2, 2, textBlockQuestion);
            textBoxQuestion.Text = choose.question;//додавання тексту питання
            AddToGrid(1, 4, 2, textBoxQuestion);
            //row 2 -> score
            AddToGrid(2, 2, 2, textBlockScore);
            textBoxScore.Text = choose.score.ToString();//додавання к-сті балів за питання
            AddToGrid(2, 4, textBoxScore);
            // row 4+numberOfOptions -> buttons
            //here I will create new buttons
            btnSaveEdition.Click += btnSaveChangesClick;
            AddToGrid(4 + numberOfOptions, 5, btnSaveEdition);
            // rows with options
            checkBoxes = new CheckBox[numberOfOptions];
            tb1        = new TextBox[numberOfOptions];
            for (int i = 0; i < numberOfOptions; i++)
            {
                //checkBoxes
                checkBoxes[i] = new CheckBox
                {
                    VerticalAlignment   = VerticalAlignment.Center,
                    HorizontalAlignment = HorizontalAlignment.Center,
                    IsChecked           = choose.options[i].answer//Забиваємо значеннями true/false з варіанту відповіді
                };

                AddToGrid(3 + i, 2, checkBoxes[i]);
                //tb1
                tb1[i] = new TextBox
                {
                    TextWrapping = TextWrapping.Wrap,
                    Margin       = new Thickness(10, 10, 20, 10),
                    Text         = choose.options[i].answerOption
                };
                tb1[i].SpellCheck.IsEnabled = true;
                AddToGrid(3 + i, 3, 3, tb1[i]);
            }
        }