- •Введение
- •1. Задание на курсовую работу
- •2. График выполнения работы
- •3. Представление курсовой работы
- •4. Структура реферата
- •5. Требования к оформлению текста реферата
- •6. Защита курсовой работы
- •Приложение 1 Темы рефератов
- •1. Информационное общество.
- •Понятие информации; общая характеристика процессов сбора, передачи, обработки и накопления информации.
- •3. Технические средства реализации информационных процессов.
- •Приложение 2 Ведомость выдачи заданий на курсовую работу по дисциплине «Информатика»
- •Тестирующая программа на vba (учебный пример)
- •Описание исходных данных
- •Результаты тестирования
- •3. Проектирование приложения
- •4. Программный код приложения
- •Создание кнопки «Запуск теста» на рабочем листе «Группы»
- •Приложение 4 График выполнения этапов курсовой работы
- •Образец оформления реферата
- •Раздел 10. Локальные и глобальные сети эвм
- •Тема 10.3.Сетевой сервис
- •Образец содержания Оглавление Введение 4
- •10. Локальные и глобальные сети эвм. 31
- •Содержание Введение 4
- •10. Локальные и глобальные сети эвм. 31
- •644099, Омск, ул. П. Некрасова, 10
4. Программный код приложения
Option Explicit
'Описание переменных уровня модуля
Dim uf As Object ' объект Форма UserForm1
Dim nQuest As Integer ' количество тестовых заданий всего
Dim cQuest As Integer ' количество выполненных тестовых заданий
Dim nQuestP As Integer ' количество правильно выполненных тестовых заданий
Dim iQuest As Integer ' номер строки, содержащей очередной вопрос
Dim nfio As Integer ' количество студентов в группе
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
' Добавление в ComboBox1 опции(наименование группы с листа "Группы")
Sub Старт()
Dim row As Integer, n As Integer
Worksheets("Группы").Select ' выбор листа "Группы"
n = 0 ' количество групп+1(заголовок "Группы")
Do While Cells(n + 1, 1) <> ""
n = n + 1
Loop
Set uf = UserForm1 ' объект присвоить переменной
For row = 2 To n ' заголовок "Группы" не включается
' Добавление опции (наименование группы)
uf.ComboBox1.AddItem Sheets("Группы").Cells(row, 1)
Next row
uf.Label2.Enabled = False ' недоступна Надпись "ФИО"
uf.Label3.Enabled = False ' недоступна Надпись "Раздел"
uf.ComboBox2.Enabled = False ' недоступно Комбинированное поле "ФИО"
uf.ComboBox3.Enabled = False ' недоступно Комбинированное поле "Раздел"
uf.Frame1.Enabled = False ' недоступна Рамка "Тестовые задания"
uf.Label4.Enabled = False ' недоступна Надпись "Вопрос"
uf.TextBox1.Enabled = False ' недоступно Текстовое поле "Вопрос"
uf.OptionButton1.Enabled = False ' недоступен Переключатель Ответ 1
uf.OptionButton2.Enabled = False ' недоступен Переключатель Ответ 2
uf.OptionButton3.Enabled = False ' недоступен Переключатель Ответ 3
uf.OptionButton4.Enabled = False ' недоступен Переключатель Ответ 4
uf.CommandButton1.Enabled = False ' недоступна Кнопка "Далее"
uf.CommandButton2.Enabled = False ' недоступна Кнопка "Выход"
uf.Show ' загрузить Форму UserForm1
End Sub
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
' Выбор Группы и добавление в ComboBox2 опции (ФИО с листа АД-07Д1,...)
Private Sub ComboBox1_Change()
Dim row As Integer
' ComboBox1.Value = название листа(наименование группы АД-07Д1,...)
Worksheets(ComboBox1.Value).Select
nfio = 0 ' число студентов +1(заголовок ФИО)
Do While Cells(nfio + 1, 1) <> ""
nfio = nfio + 1
Loop
For row = 2 To nfio ' заголовок ФИО не включается
' Добавление опции
uf.ComboBox2.AddItem Sheets(ComboBox1.Value).Cells(row, 1)
Next row
uf.Label2.Enabled = True ' доступна Надпись "ФИО"
' Доступно Комбинированное поле для выбора ФИО
uf.ComboBox2.Enabled = True
End Sub
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
' Выбор ФИО и добавление в ComboBox3 опции (название раздела с листа "Разделы")
Private Sub ComboBox2_Change()
Dim row As Integer, n As Integer
Worksheets("Разделы").Select
n = 0 ' число тем +1(заголовок "Разделы")
Do While Cells(n + 1, 1) <> ""
n = n + 1
Loop
For row = 2 To n ' заголовок "Разделы" не включается
' Добавление опции(номер и наименование раздела)
uf.ComboBox3.AddItem Sheets("Разделы").Cells(row, 1)
Next row
uf.Label3.Enabled = True ' доступна Надпись "Раздел"
' Доступно Комбинированное поле для выбора Раздела
uf.ComboBox3.Enabled = True
End Sub
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
' Выбор Раздела и вызов Первого вопроса
Private Sub ComboBox3_Change()
uf.Frame1.Enabled = True ' доступна Рамка "Тестовые задания"
uf.Label4.Enabled = True ' доступна Надпись "Вопрос"
uf.TextBox1.Enabled = True ' доступно Текстовое поле для вывода Вопроса
uf.CommandButton2.Enabled = True ' доступна Кнопка "Выход"
NQuestion ' процедура вычисления количества тестовых заданий
uf.Label7.Caption = nQuest ' заданий всего
Question (1) ' процедура вызова вопроса (1-номер строки с вопросом)
uf.Label8.Caption = cQuest ' номер текущего задания
uf.Label1.Enabled = False ' недоступна Надпись "Группы"
uf.Label2.Enabled = False ' недоступна Надпись "ФИО"
uf.Label3.Enabled = False ' недоступна Надпись "Раздел"
' Недоступно Комбинированное поле для выбора Группы
uf.ComboBox1.Enabled = False
' Недоступно Комбинированное поле для выбора ФИО
uf.ComboBox2.Enabled = False
' Недоступно Комбинированное поле для выбора Раздела
uf.ComboBox3.Enabled = False
End Sub
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
' Подсчет числа правильных ответов и вызов следующего задания
Private Sub CommandButton1_Click()
Dim i As Integer
' Подсчет числа правильно выполненных заданий
If uf.OptionButton1.Value = True Then
' +1, если ответ 1 отмечен как верный
nQuestP = nQuestP + Cells((cQuest - 1) * 5 + 2, 1)
End If
If uf.OptionButton2.Value = True Then
' +1, если ответ 2 отмечен как верный
nQuestP = nQuestP + Cells((cQuest - 1) * 5 + 3, 1)
End If
If uf.OptionButton3.Value = True Then
' +1, если ответ 3 отмечен как верный
nQuestP = nQuestP + Cells((cQuest - 1) * 5 + 4, 1)
End If
If uf.OptionButton4.Value = True Then
' +1, если ответ 4 отмечен как верный
nQuestP = nQuestP + Cells((cQuest - 1) * 5 + 5, 1)
End If
' Вызов следующего задания
' Если все задания выполнены, то название кнопки "Далее" изменяется на "Завершить"
If CommandButton1.Caption <> "Завершить" Then
iQuest = cQuest * 5 + 1 ' номер строки, содержащей очередной вопрос
Question (iQuest) ' процедура вызова задания (iQuest-номер строки с вопросом)
Else ' все задания выполнены
uf.TextBox1.Text = " "
uf.Label4.Enabled = False ' недоступна Надпись "Вопрос"
uf.TextBox1.Enabled = False ' недоступно Текстовое поле с Вопросом
uf.OptionButton1.Enabled = False ' недоступен Переключатель Ответ 1
uf.OptionButton2.Enabled = False ' недоступен Переключатель Ответ 2
uf.OptionButton3.Enabled = False ' недоступен Переключатель Ответ 3
uf.OptionButton4.Enabled = False ' недоступен Переключатель Ответ 4
uf.CommandButton1.Enabled = False ' недоступна Кнопка "Завершить"
End If
End Sub
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
' Вызов тестового задания
Sub Question(ByVal iRow As Integer)
Dim path_bmp As String, file_bmp As String
' Номер темы = номеру листа
Worksheets(Trim(Str(ComboBox3.ListIndex + 1))).Select
If Cells(iRow, 1) <> Trim(" ") Then
' Путь к папке, содержащей графические файлы(Рис1.bmp, Рис2.bmp и т.д.)задания
path_bmp = Trim(Cells(2, 4))
' Полное имя графического файла
file_bmp = path_bmp + "\" + Cells(iRow, 1)
If Dir(file_bmp) <> "" Then
uf.Image1.Picture = LoadPicture(path_bmp + "\" + Cells(iRow, 1))
Else
MsgBox ("Нет графического файла " + file_bmp)
End If
Else
uf.Image1.Picture = LoadPicture() ' очистка графического поля
End If
' Вопрос и ответы
uf.TextBox1.Text = Cells(iRow, 3) ' вопрос
uf.OptionButton1.Caption = Cells(iRow + 1, 3) ' ответ 1
uf.OptionButton2.Caption = Cells(iRow + 2, 3) ' ответ 2
uf.OptionButton3.Caption = Cells(iRow + 3, 3) ' ответ 3
uf.OptionButton4.Caption = Cells(iRow + 4, 3) ' ответ 4
uf.OptionButton1.Enabled = True ' доступен Переключатель Ответ 1
uf.OptionButton2.Enabled = True ' доступен Переключатель Ответ 2
uf.OptionButton3.Enabled = True ' доступен Переключатель Ответ 3
uf.OptionButton4.Enabled = True ' доступен Переключатель Ответ 4
uf.OptionButton1.SetFocus ' фокус на Переключателе Ответ 1
' Ответ не выбран
uf.OptionButton1.Value = False ' удаление метки Переключателя Ответ 1
uf.OptionButton2.Value = False ' удаление метки Переключателя Ответ 2
uf.OptionButton3.Value = False ' удаление метки Переключателя Ответ 3
uf.OptionButton4.Value = False ' удаление метки Переключателя Ответ 4
' Недоступна Кнопка "Далее" пока не выбран ответ
uf.CommandButton1.Enabled = False
cQuest = cQuest + 1 ' количество выполненных тестовых заданий
uf.Label8.Caption = cQuest ' номер текущего задания
If cQuest = nQuest Then ' если выполняется последнее задание
' Переименование Кнопки "Далее"
uf.CommandButton1.Caption = "Завершить"
End If
End Sub
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
' Вычисление количества тестовых заданий
Sub NQuestion()
' Номер Раздела = номеру листа
Worksheets(Trim(Str(ComboBox1.ListIndex + 1))).Select
cQuest = 0 ' количество выполненных тестовых заданий
nQuestP = 0 ' количество правильно выполненных тестовых заданий
nQuest = 0 ' количество тестовых заданий всего
Do While Cells(nQuest + 1, 3) <> ""
nQuest = nQuest + 1
Loop
nQuest = nQuest / 5
End Sub
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
' Кнопка "Выход" с сохранением результатов тестирования
Private Sub CommandButton2_Click()
Dim row As Integer
Worksheets(ComboBox1.Value).Select ' лист с наименованием группы
' Вывод результатов тестирования в строку с ФИО студента
For row = 1 To nfio
' Если ComboBox2.Text=ФИО
If uf.ComboBox2.Text = Sheets(ComboBox1.Value).Cells(row, 1) Then
Cells(row, 2) = nQuest ' количество тестовых заданий всего
Cells(row, 3) = cQuest ' количество выполненных тестовых заданий
Cells(row, 4) = nQuestP ' количество правильных ответов
Cells(row, 5) = "" ' очистка ячеек с оценкой по шкале 0-100 баллов
Cells(row, 5) = Round(nQuestP / nQuest * 100) ' оценка округляется
End If
Next row
Unload uf
End Sub
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
' Сделать доступной кнопку "Далее" после выбора переключателя Ответ 1
Private Sub OptionButton1_Click()
uf.CommandButton1.Enabled = True
End Sub
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
' Сделать доступной кнопку "Далее" после выбора переключателя Ответ 2
Private Sub OptionButton2_Click()
uf.CommandButton1.Enabled = True
End Sub
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
' Сделать доступной кнопку "Далее" после выбора переключателя Ответ 3
Private Sub OptionButton3_Click()
uf.CommandButton1.Enabled = True
End Sub
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
' Сделать доступной кнопку "Далее" после выбора переключателя Ответ 4
Private Sub OptionButton4_Click()
uf.CommandButton1.Enabled = True
End Sub