Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
Rutrol
0 / 0 / 1
Регистрация: 24.12.2013
Сообщений: 13
1

Форма для тестирования: Не работает замена данных на форме для следующего вопроса

23.03.2015, 06:08. Просмотров 1346. Ответов 2
Метки нет (Все метки)

Нужно написать программу для тестирования.
Готового или подобного не нашел, или не разобрался в том что нашел.

Главное вроде написано, но не работает замена данных на форме для следующего вопроса, т.е по нажатию кнопки должен быть переход к следующему вопросу, но это не работает. Возможно как то необходимо обновить кнопку для дальнейшей работы или саму форму. Никак не могу разобраться чего тут не хватает.

В форме: 3 radioButton, 1 label, 1 pictureBox и 1 button.

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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
 
            int i = 0;
            int s = 0;
            int nomer = 0;
            int pravil_otvet = 0;
 
                     if (radioButton1.Checked == true)i = 1; //проверяем, какой ответ был выбран
                     if (radioButton2.Checked == true)i = 2;
                     if (radioButton3.Checked == true)i = 3;
                     if (i == pravil_otvet) s++; //если выбранный и правильный совпадают, то увеличиваем сумму на единичку
                     i = 0; //обнуление требуется для корректного подсчета суммы
 
                     pictureBox1.Visible = false;
                     pictureBox2.Visible = false;
                     pictureBox3.Visible = false;
                     pictureBox4.Visible = false;
                     pictureBox5.Visible = false;
 
                     radioButton1.Checked = false; //очищаем нажатую кнопку
                     radioButton2.Checked = false;
                     radioButton3.Checked = false;
 
                     nomer++; //номер вопроса изменяется с каждым нажатием кнопки
 
                     switch (nomer)
                     {
                     case 1:
                         pictureBox1.Visible = true;
                         label1.Text = "№1. Вычислите сопротивление цепи, представленной на рисунке, если R = 1 Ом";
                         radioButton1.Text = "12,5 Ом ";
                         radioButton2.Text ="0,625 Ом";
                         radioButton3.Text = "2 Ом";
                         pravil_otvet = 2;
                         break;
 
                     case 2:
                         pictureBox1.Visible = false;
                         pictureBox2.Visible = true;
                         label1.Text = "№2. Определите общее сопротивление цепи на рисунке, если R1 = 1/2 Ом, R2 = 3/2 Ом, R3=R4= 1 Ом, R5 = 2/3 Ом";
                         radioButton1.Text = "1 Ом  ";
                         radioButton2.Text = "0,5  Ом";
                         radioButton3.Text = "1,5 Ом";
                         pravil_otvet = 2;
                         break;
 
                     case 3:
                         pictureBox2.Visible = false;
                         pictureBox3.Visible = true;
                         label1.Text = "№3. Найти сопротивление цепи на рисунке, если каждое сопротивление равно 2 Ом";
                         radioButton1.Text = "1 Ом";
                         radioButton2.Text = "0,5 Ом";
                         radioButton3.Text = "1,5 Ом";
                         pravil_otvet = 2;
                         break;
 
                     case 4:
                         pictureBox3.Visible = false;
                         pictureBox4.Visible = true;
                         label1.Text = "№4. Определить электроемкость батареи конденсаторов, если С1 = 2 мкФ, С2 = 4 мкФ, С3 = 1 мкФ, С4 = 2 мкф, С5 = 6 мкф";
                         radioButton1.Text = "1,5 мкФ";
                         radioButton2.Text = "2 мкФ";
                         radioButton3.Text = "3 мкФ";
                         pravil_otvet = 1;
                         break;
 
                     case 5:
                         pictureBox4.Visible = false;
                         pictureBox5.Visible = true;
                         label1.Text = "№5. Определить электроемкость батареи конденсаторов, если каждый С =7 мкФ";
                         radioButton1.Text = "3,5 мкФ";
                         radioButton2.Text = "14 мкФ ";
                         radioButton3.Text = "7 мкФ";
                         pravil_otvet = 3;
                         break;
 
                     case 6:
                      button1.Enabled = false;
                      radioButton1.Enabled = false;//делаем кнопки "не нажимаемыми", чтобы пользователь нажал на "закончить тест"
                      radioButton2.Enabled = false;
                      radioButton3.Enabled = false;
 
                      pictureBox1.Visible = false;
                      pictureBox2.Visible = false;
                      pictureBox3.Visible = false;
                      pictureBox4.Visible = false;
                      pictureBox5.Visible = false;
                      Close();
                      break;
                     }
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            // Первая подгрузка формы
            pictureBox1.Visible = true;
            label1.Text = "№1. Вычислите сопротивление цепи, представленной на рисунке, если R = 1 Ом";
            radioButton1.Text = "12,5 Ом ";
            radioButton2.Text = "0,625 Ом";
            radioButton3.Text = "2 Ом";
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2015, 06:08
Ответы с готовыми решениями:

Не работает программа для тестирования
Всем привет! У меня проблема в работе тестирования. Есть пробник тестирования...

Форма для тестирования
Вопрос: программно создаются вопросы и варианты ответов, которые берутся из...

Простая форма веб-форма для сложения двух чисел не работает
Не работает скрипт для подсчета сложения.Может я неправильно привязал...

База данных для тестирования
Здравствуйте! Есть необходимость создать систему тестирования к...

Загрузка данных для тестирования из файла
Делаю тестирование знаний по Русскому языку, так вот столкнулся с проблемой:...

2
tarasalk
1213 / 725 / 289
Регистрация: 13.06.2013
Сообщений: 2,548
23.03.2015, 07:59 2
Потому что переменная nomer обнуляется каждый раз при нажатии кнопки, получается всегда с первого вопроса начинаем.
Вот почистил немножко.
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
89
90
int nomer = 1;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
 
            int i = 0;
            int s = 0;
            int pravil_otvet = 0;
 
            //проверяем, какой ответ был выбран
            if (radioButton1.Checked == true) i = 1; 
            if (radioButton2.Checked == true) i = 2;
            if (radioButton3.Checked == true) i = 3;
 
            if (i == pravil_otvet) s++; //если выбранный и правильный совпадают, то увеличиваем сумму на единичку
            i = 0; //обнуление требуется для корректного подсчета суммы
 
            //очищаем нажатую кнопку
            radioButton1.Checked = false;
            radioButton2.Checked = false;
            radioButton3.Checked = false;
 
            nomer++; //номер вопроса изменяется с каждым нажатием кнопки
 
            switch (nomer)
            {
                case 2:
                    label1.Text = "№2. Вычислите сопротивление цепи, представленной на рисунке, если R = 1 Ом";
                    radioButton1.Text = "12,5 Ом ";
                    radioButton2.Text = "0,625 Ом";
                    radioButton3.Text = "2 Ом";
                    pravil_otvet = 2;
                    break;
 
                case 3:
                    label1.Text = "№3. Определите общее сопротивление цепи на рисунке, если R1 = 1/2 Ом, R2 = 3/2 Ом, R3=R4= 1 Ом, R5 = 2/3 Ом";
                    radioButton1.Text = "1 Ом  ";
                    radioButton2.Text = "0,5  Ом";
                    radioButton3.Text = "1,5 Ом";
                    pravil_otvet = 2;
                    break;
 
                case 4:
                    label1.Text = "№4. Найти сопротивление цепи на рисунке, если каждое сопротивление равно 2 Ом";
                    radioButton1.Text = "1 Ом";
                    radioButton2.Text = "0,5 Ом";
                    radioButton3.Text = "1,5 Ом";
                    pravil_otvet = 2;
                    break;
 
                case 5:
                    label1.Text = "№5. Определить электроемкость батареи конденсаторов, если С1 = 2 мкФ, С2 = 4 мкФ, С3 = 1 мкФ, С4 = 2 мкф, С5 = 6 мкф";
                    radioButton1.Text = "1,5 мкФ";
                    radioButton2.Text = "2 мкФ";
                    radioButton3.Text = "3 мкФ";
                    pravil_otvet = 1;
                    break;
 
                case 6:
                    label1.Text = "№6. Определить электроемкость батареи конденсаторов, если каждый С =7 мкФ";
                    radioButton1.Text = "3,5 мкФ";
                    radioButton2.Text = "14 мкФ ";
                    radioButton3.Text = "7 мкФ";
                    pravil_otvet = 3;
                    break;
 
                case 7:
                    button1.Enabled = false;
                    radioButton1.Enabled = false;
                    radioButton2.Enabled = false;
                    radioButton3.Enabled = false;
                    Close();
                    break;
            }
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            // Первая подгрузка формы
            label1.Text = "№1. Это первый вопрос, просто выберите ответ 2";
            radioButton1.Text = "12,5 Ом ";
            radioButton2.Text = "ответ 2";
            radioButton3.Text = "2 Ом";
        }
    }
Но это бред имхо, так не пишут. Отделите хотя бы вопросы от контролов.
Можно класс создать типа такого:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
class Question
    {
        string questionText; // вопрос
        List<string> answers; // список ответов
        int correctAnswerNumber; // номер правильного ответа
 
        public Question(string questionText, List<string> answers, int correctAnswerNumber)
        {
            this.questionText = questionText;
            this.answers = answers;
            this.correctAnswerNumber = correctAnswerNumber;
        }
    }
1
Rutrol
0 / 0 / 1
Регистрация: 24.12.2013
Сообщений: 13
23.03.2015, 09:31  [ТС] 3
Вот тебе раз! Постыдная ошибка. Большое спасибо за помощь!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2015, 09:31

Какие виды и методы существуют для тестирования базы данных Access?
Какие виды и методы существуют для тестирования базы данных Aceess?

Как сделать запись данных из файла в массив по условию для программы тестирования?
Здравствуйте, появилась идея создать свой &quot;тестер&quot;. В связи с этим появилось...

Программа тестирования записывает только 4 вопроса
Записывает только 4 вопроса, а не 5. Помогите найти ошибку, уже 2 дня парусь...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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