Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2013, 21:07   #1
Avatonk
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 21
По умолчанию [VB.Net] Неправильный подсчёт

Программа подсчитывает неверно количество вопросов(по идее должна подсчитывать так чтобы количество ответов было равно количеству записей в базе данных), из-за этого тест завершается до окончания вопросов(всего вопросов 20, возможно надо будет добавлять ещё, но она после ответа на первый выдаёт результат и завершает тест).
Код:
Public Class Form2
Dim s, i As Integer
Dim Col As New Collection
Dim INDX As Integer = 0
Dim ColRnd As New Collection
Dim SB As New System.Text.StringBuilder
Dim bal As Byte
Public vsego As Integer = Form3.DataGrid1.DataBindings.Count
Dim n As Integer = 1 'счётчик кол-ва вопросов
Dim Procent As Single
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: данная строка кода позволяет загрузить данные в таблицу "TestDataSet.Вопросы". При необходимости она может быть перемещена или удалена.
Me.ВопросыTableAdapter.Fill(Me.Test DataSet.Вопросы)

Label1.Text = "Испытуемый: " & Form1.fname & " " & Form1.lname & ", " & Form1.ngroup
Button1.Text = "Начать тестирование"
Randomize()
For I As Integer = 1 To vsego
Col.Add(I)
Next
Dim R As Integer
Do While Col.Count > 0
R = (Int(Rnd() * Col.Count + 1))
ColRnd.Add(Col(R))
Col.Remove(R)
Loop
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Button1.Text = "Ответ"
TextBox1.Visible = True
RadioButton1.Visible = True
RadioButton2.Visible = True
RadioButton3.Visible = True
RadioButton4.Visible = True


'INDX += 1
'If INDX > 20 Then
If n > vsego Then
'If i >= 18 Then bal = 5
'If i >= 16 Then bal = 4
'If i >= 14 Then bal = 3
'If i <= 13 Then bal = 2
Procent = vsego / i
If Procent >= 0.7 Then bal = 5
If Procent >= 0.64 Then bal = 4
If Procent >= 0.55 Then bal = 3
If Procent <= 0.54 Then bal = 2

MsgBox("Набрано баллов: " & i & ", Оценка:" & bal & " Тестирование завершено", MsgBoxStyle.Information)
Close()
Exit Sub
End If
Me.Text = "Вопрос №" & n & " из " & vsego
' s = ColRnd(INDX)
s = ColRnd(vsego)

If s = 1 Then

If RadioButton1.Checked = True Then
i = i + 1
n = n + 1
End If

RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
ElseIf s = 2 Then

If RadioButton3.Checked = True Then
i = i + 1
n = n + 1
End If

RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
ElseIf s = 3 Then

If RadioButton3.Checked = True Then
i = i + 1
n = n + 1
End If
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
ElseIf s = 4 Then

If RadioButton2.Checked = True Then
i = i + 1
n = n + 1
End If
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
ElseIf s = 5 Then

If RadioButton1.Checked = True Then
i = i + 1
n = n + 1
End If
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
Avatonk вне форума Ответить с цитированием
Старый 04.06.2013, 21:08   #2
Avatonk
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 21
По умолчанию

ElseIf s = 6 Then

If RadioButton2.Checked = True Then
i = i + 1
n = n + 1
End If
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
ElseIf s = 7 Then

If RadioButton2.Checked = True Then
i = i + 1
n = n + 1
End If
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
ElseIf s = 8 Then

If RadioButton2.Checked = True Then
i = i + 1
n = n + 1
End If
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
ElseIf s = 9 Then

If RadioButton3.Checked = True Then
i = i + 1
n = n + 1
End If
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
ElseIf s = 10 Then

If RadioButton1.Checked = True Then
i = i + 1
n = n + 1
End If
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
ElseIf s = 11 Then

If RadioButton2.Checked = True Then
i = i + 1
n = n + 1
End If
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
ElseIf s = 12 Then

If RadioButton1.Checked = True Then
i = i + 1
n = n + 1
End If
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
ElseIf s = 13 Then

If RadioButton3.Checked = True Then
i = i + 1
n = n + 1
End If
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
ElseIf s = 14 Then

If RadioButton2.Checked = True Then
i = i + 1
n = n + 1
End If
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
ElseIf s = 15 Then

If RadioButton1.Checked = True Then
i = i + 1
n = n + 1
End If
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
ElseIf s = 16 Then

If RadioButton2.Checked = True Then
i = i + 1
n = n + 1
End If
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
ElseIf s = 17 Then

If RadioButton3.Checked = True Then
i = i + 1
n = n + 1
End If
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
ElseIf s = 18 Then

If RadioButton3.Checked = True Then
i = i + 1
n = n + 1
End If
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
ElseIf s = 19 Then

If RadioButton2.Checked = True Then
i = i + 1
n = n + 1
End If
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
ElseIf s = 20 Then
If RadioButton3.Checked = True Then
i = i + 1
n = n + 1
End If
End If

End Sub

End Class
Оставшийся кусок
Avatonk вне форума Ответить с цитированием
Старый 04.06.2013, 21:31   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Приложите лучше схему TestDataSet.xsd.
От количества строк кода стало страшно.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 04.06.2013, 22:33   #4
Avatonk
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 21
По умолчанию

Мне самому страшно..
Изображения
Тип файла: jpg TestDataSetSchem.JPG (26.1 Кб, 61 просмотров)
Avatonk вне форума Ответить с цитированием
Старый 04.06.2013, 22:43   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Вы сами выбрали вариант помощи.
Был бы файл xsd,как я просил,получили бы готовый код с проектом.
А по фотке мне облом создавать.
Поэтому опишу чуть позже.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 04.06.2013, 22:57   #6
Avatonk
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 21
По умолчанию

Вот файл Xsd..только помоги плиз
Вложения
Тип файла: rar TestDataSet.rar (2.6 Кб, 9 просмотров)
Avatonk вне форума Ответить с цитированием
Старый 05.06.2013, 00:31   #7
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Я думаю,идея вам понятна.
Добавил.
Совсем забыл вызвать процедуру calc

Исправте

Код:
  Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _
    RadioButton1.CheckedChanged, RadioButton2.CheckedChanged, RadioButton3.CheckedChanged, RadioButton4.CheckedChanged
        If sender.Checked = False Then
            Return
        End If
        Try


            Select Case CBool(sender.tag)

                Case True
                    Pravilno += 1
                Case False
                    ' На запас,вдруг не правильные считать надо
            End Select
         calc()

            n += 1
            If n >= BS.Count Then
                MsgBox("Game Over")

            End If
            Me.BS.Position = n

        Catch ex As Exception

        End Try

        sender.Checked = False
    End Sub
Вложения
Тип файла: zip Form1.zip (3.2 Кб, 9 просмотров)
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 05.06.2013 в 01:27.
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неправильный ответ Tatyana64 Помощь студентам 8 11.11.2012 00:09
Неправильный синтаксис dieego6@gmail.com C# (си шарп) 5 03.10.2012 18:59
Неправильный рандом Тандер Microsoft Office Word 5 14.02.2012 15:17
Удаленный SQL-сервер Ado.Net + .Net remoting + Asp .Net gammaray Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 22.11.2010 17:36