Автор работы: Пользователь скрыл имя, 18 Марта 2013 в 15:38, курсовая работа
В данной работе изложены 6 заданий.
Название работы: Задание 1.
Тема задания: “Разветвляющиеся вычислительные процессы”.
Цель задания: Освоение методов программирования решения задач, требующих выполнения разных участков алгоритма в зависимости от истинности или ложности некоторого условия. Ознакомление с логическим типом данных, операциями отношений, логическими функциями и формами условного оператора и оператора выбора.
Вид формы до размещения на ней контейнера Frame:
Вид формы после размещения на ней контейнера Frame:
Процедуры формы frmZ4:
Процедура решения 1-ой задачи:
Private Sub Command1_Click()
Dim a%(), ind%(), max%, i%, num%, n%, n1%, a1%, n2%, s2&, s5&
Label1 = " Дан массив из N целых чисел. Напечатать " & _
"сумму элементов, стоящих на нечетных местах и сумму элементов " & _
"кратных 5."
Frame1.Visible = True: fg.Visible = False
List1.Clear
n = InputBox("Введите размерность массива")
ReDim a(1 To n)
Randomize
For i = 1 To n
a(i) = Rnd * 100
List1.AddItem Str(a(i))
Next i
s2 = 0: s5 = 0
For i = 1 To n
If i Mod 2 = 0 Then s2 = s2 + a(i)
If a(i) Mod 5 = 0 Then s5 = s5 + a(i)
Next i
Text1 = Str(s2)
Text2 = Str(s5)
End Sub
Вид формы с результатом решения 1-ой задачи.
Процедура решения 2-ой задачи:
Private Sub Command2_Click()
Dim m%, n%, i%, j%, num%, k%, sr!
Dim a&()
Label1 = " Дан массив A(M,M) натуральныз чисел. Заменить " & _
"на сумму
тех элементов, которые
"Первые строка и столбец неизменны."
Frame1.Visible = False: fg.Visible = True
m = InputBox("Введите размерность матрицы")
ReDim a&(1 To m, 1 To m)
fg.Cols = m + 1: fg.Rows = m + 1
' Задаем параметры строк элемента NSFlexGrid и нумеруем его строки
For i = 0 To m
fg.RowHeight(i) = fg.Height / (m + 1)
If i > 0 Then fg.TextMatrix(i, 0) = "Стр. " + Str(i)
Next i
' Задаем параметры столбцов
For j = 0 To m
fg.ColWidth(j) = fg.Width / (m + 2)
If j > 0 Then fg.TextMatrix(0, j) = "Стол." + Str(j)
Next j
' Вводим элементы матрицы и отображаем их в NSFlexGrid
Randomize
For i = 1 To m
For j = 1 To m
a(i, j) = Int(Rnd * 10)
fg.TextMatrix(i, j) = a(i, j)
Next j, i
' Р Е Ш А Е М З А Д А Ч У:
s = 0: k = 0
For i = 2 To m
For j = 2 To m
a(i, j) = a(i, j - 1) + a(i - 1, j)
fg.TextMatrix(i, j) = a(i, j)
Next j
Next i
End Sub
Вид формы с результатом решения 2-ой задачи.
Процедура завершения работы приложения:
Private Sub Command3_Click()
End
End Sub
Как обычно добавляем к проекту форму-заставку frmZ4z. После ее разработки запускаем приложение на выполнение. Оформляем отчет о выполнении задания.
Описание выполнения Задания 4.
Название работы: Задание 4.
Тема задания: “Обработка одномерных и двумерных массивов”.
Цель задания: Освоение типовых алгоритмов обработки массивов и матриц, а также использование этих алгоритмов для решения практических задач в соответствии с индивидуальным заданием. Ознакомление с элементом управления MSFlexGrid.
В этом задании нужно решить 2 задачи.
1. Обработка одномерных массивов:
Дан массив из N целых чисел. Напечатать сумму элементов, стоящих на нечетных местах и сумму элементов кратных 5.
2. Обработка двумерных массивов (матриц):
Дан двумерный массив целых чисел. Напечатать. Найти сумму, количество среднее арифметическое значение положительных элементов заданного столбца.
Решение обеих задач
Открываем новый проект и размещаем на форме метку и 3 командные кнопки. Нам потребуется также элемент MSFlexGrid. Его на панели элементов нет. Чтобы вызвать его на панель элементов управления, нужно выполнить: “Проект\ Компоненты” и в открывшемся окне щелкнуть на значке квадратика, стоящего левее строки “Microsoft FlexGrid Control 6”. Затем щелкнуть в том же окне на “Применить” и “Ok”. После этого пиктограмма элемента появится на панели элементов управления. Размещаем его на форме и изменяем его имя на fg.
Теперь нам нужно разместить поверх элемента MSFlexGrid элемент Frame. Он должен быть такого же размера, как и элемент MSFlexGrid, т.е. должен полностью закрывать собой элемент MSFlexGrid. При прорисовке элемента Frame нужно, чтобы точка начала прорисовки находилась вне элемента MSFlexGrid. На элементе Frame размещаем 3 метки и 1 элемент ListBox, 3 текстовых окна.
Таблица свойств формы и расположенных на ней элементов управления
Объект |
Свойство |
Значение свойства |
Форма |
Name Caption Font |
frmZ4r Обработка одномерных и двумерных массивов Times New Roman, жирный, размер 12 |
Метка |
Name Caption Alignment Font |
Label1 Выводится условие текущей задачи 0-левая привязка Times New Roman, жирный, размер 12 |
Командная кнопка |
Name Caption Font |
Command1 Задача № 1 Times New Roman, обычный, размер 10 |
Командная кнопка |
Name Caption Font |
Command2 Задача № 2 Times New Roman, обычный, размер 10 |
Командная кнопка |
Name Caption Font |
Command3 Выход Times New Roman, обычный, размер 10 |
MSFlexGrid |
Name |
fg |
Фрейм |
Name |
Frame1 |
Метка на контейнере |
Name Caption Alignment Font |
Label2 Исходный массив 2-центровка Times New Roman, жирный, размер 10 |
Метка на контейнере |
Name Caption Alignment Font |
Label3 Результат 2-центровка Times New Roman, жирный, размер 10 |
Список на контейнере |
Name |
List1 |
Текстовое окно |
Name Font |
Text1 Times New Roman, нормальный, размер 12 |
Текстовое окно |
Name Font |
Text2 Times New Roman, нормальный, размер 12 |
Текстовое окно |
Name Font |
Text3 Times New Roman, нормальный, размер |
Вид формы до размещения на ней контейнера Frame:
Вид формы после размещения на ней контейнера Frame:
Процедуры формы frmZ4:
Процедура решения 1-ой задачи:
Private Sub Command1_Click()
Dim a%(), ind%(), max%, i%, num%, n%, n1%, a1%, n2%, s2&, s5&
Label1 = " Дан массив из N целых чисел. Напечатать " & _
"сумму
элементов, стоящих на
"кратных 5."
Frame1.Visible = True: fg.Visible = False
List1.Clear
n = InputBox("Введите размерность массива")
ReDim a(1 To n)
Randomize
For i = 1 To n
a(i) = Rnd * 100
List1.AddItem Str(a(i))
Next i
s2 = 0: s5 = 0
For i = 1 To n
If i Mod 2 = 0 Then s2 = s2 + a(i)
If a(i) Mod 5 = 0 Then s5 = s5 + a(i)
Next i
Text1 = Str(s2)
Text2 = Str(s5)
End Sub
Вид формы с результатом решения 1-ой задачи.
Процедура решения 2-ой задачи:
Private Sub Command2_Click()
Dim m%, n%, i%, j%, num%, k%, sr!
Dim a(1 To 8, 1 To 6)
Label1 = " Дан двумерный массив целых чисел. Напечатать. " & _
"Найти
сумму, количество среднее
"положительных элементов заданного столбца."
Frame1.Visible = False: fg.Visible = True
m = 8: n = 6
fg.Cols = n + 1: fg.Rows = m + 1
' Задаем параметры строк элемента NSFlexGrid и нумеруем его строки
For i = 0 To m
fg.RowHeight(i) = fg.Height / (m + 1)
If i > 0 Then fg.TextMatrix(i, 0) = "Стр. " + Str(i)
Next i
' Задаем параметры столбцов
For j = 0 To n
fg.ColWidth(j) = fg.Width / (n + 2)
If j > 0 Then fg.TextMatrix(0, j) = "Стол." + Str(j)
Next j
' Вводим элементы матрицы и отображаем их в NSFlexGrid
Randomize
For i = 1 To m
For j = 1 To n
a(i, j) = Int(Rnd * 100) - 50
fg.TextMatrix(i, j) = a(i, j)
Next j, i
num = InputBox("Введите номер столбца")
' Р Е Ш А Е М З А Д А Ч У:
s = 0: k = 0
For i = 1 To m
If a(i, num) > 0 Then
s = s + a(i, num)
k = k + 1
End If
Next i
sr = s / k
Text3 = " Ctol = " & num & " Sum = " & s & " Kol = " & k & " Sred = " & sr
End Sub
Вид формы с результатом решения 2-ой задачи.
Процедура завершения работы приложения:
Private Sub Command3_Click()
End
End Sub
Как обычно добавляем к проекту форму-заставку frmZ4z. После ее разработки запускаем приложение на выполнение. Оформляем отчет о выполнении задания.
Описание выполнения Задания 6.
Название задания: Задание 6.
Тема задания: “Обработка базы данных Access в среде Visual Basic 6”.
Цель задания: Освоение методов обработки БД Access средствами Visual Basic 6. Ознакомление с объектами технологии ADO и их методами. Ознакомиться с процессом создания на форме пользовательского меню. В качестве примера выполнения Задания 6 ниже приводится решение следующей задачи:
Создать БД с таблицами:
С помощью меню пользователя обеспечить возможность обработки БД:
- корректировки записей в
- добавления новых записей в таблицы;
- удаления заданных записей из таблиц.
Обработав БД, получить таблицу:
Сформировать запрос к БД:
4. На основании 1-ой таблицы .вывести список студентов, чьи
фамилии начинаются с вводимой с клавиатуры заглавной
русской буквы.
Прежде, чем приступать к выполнению данного задания следует внимательно прочесть стр.102 – 111 учебного пособия, находящегося в файле “VB6”. Затем рекомендуется не просто прочесть, а усвоить материал, изложенный на стр. 112-129 этого учебного пособия. На его стр. 197-208 приведены те же процедуры, которые будут приводиться здесь ниже. Каждая из них для лучшего понимания снабжена подробными комментариями непосредственно в текстах кодов процедур.
В среде БД Access или с помощью надстройки VB “Visual Data Manager” создать двухтабличную БД в соответствии с индивидуальным заданием.
Приступаем к выполнению Задания № 6. На чистой дискете создаем папку под названием Задание 6 и копируем в эту папку созданный файл БД. Открываем новый проект. Так как текст задания № 6 достаточно большой, то для вывода на экран условия задачи будет требоваться отдельная форма. Поэтому создаем проект, содержащий 2 формы: форму с текстом условия задания frmQuest и рабочую форму frmActiveX.
На форму frmQuest помещаем 2 метки и командную кнопку. В таблице описываем их свойства:
Таблица свойств формы frmQuest и расположенных на ней
элементов управления.
Объект |
Свойство |
Значение свойства |
Форма |
Name Caption Font |
frmQuest Задание № 6. Условие задачи. Times New Roman, жирный, размер 12 |
Метка |
Name Caption Alignment Font |
Label1 “ Условие задачи: “ 2-по центру Times New Roman, жирный, размер 16 |
Метка |
Name Caption Alignment Font |
Label2 Задается в процедуре загрузки формы 2-по центру Times New Roman, нормальный, размер 12 |
Командная кнопка |
Name Caption Font |
Command1 “Далее” Times New Roman, нормальный, размер 12 |
Текст задания будет выводится на метку Label2 процедурой загрузки формы. Поэтому дважды щелкаем по форме и в заготовку процедуры Form_Load записываем код аналогично следующему примеру:
Private Sub Form_Load()
Label1 = "Средствами Access или VB создать БД с таблицами:" & vbCrLf & _
“ 1. Номер курса, номер группы, номер в группе, пол, год рождения." & vbCrLf & _
" 2. Номер курса, номер группы, номер в группе, оценки по 6 экзаменам." & vbCrLf & _
"С
помощью меню пользователя
"
- корректировки данных в
" - добавления новых записей в таблицы;" & vbCrLf & _
" - удаления заданной записи из таблиц." & vbCrLf & _
"Обработав БД, получить таблицу:" & vbCrLf & _
"
3. Справка о студентах, чей
средний балл ниже общего
"Выполнить запрос к БД:" & vbCrLf & _
" 4. На основании 1-ой таблицы выдать сведения о студентах, чьи фамилии" & _
vbCrLf & _
"
начинаются с вводимой с
End Sub
Для командной кнопки записываем процедуру перехода к форме frmActiveX:
Private Sub Command1_Click()
frmQuest.Hide
frmActiveX.Show
End Sub
Переходим
к проектированию формы frmActi
Процесс создания на форме пользовательского меню подробно излагается в любом учебнике по VB 6. Нужно ознакомиться с ним и создать на форме меню со следующей структурой:
Таблицы Справки Документ Выход
Сессия Справка 1
Специальность Справка 2
Теперь поместим на форму элемент MSFlexGrid. Если по условию задачи целесообразно вывести на экран какое-либо числовое или иное значение, то
располагаем на форме для его визуализации текстовое окно и над ним метку с поясняющим текстом. Для варианта образца этого задания форма приобретает вид:
Таблица свойств формы frmActiveX и расположенных на ней элементов управления:
Объект |
Свойство |
Значение свойства |
Форма |
Name Caption Font |
frmActiveX Задание № 6. Обработка БД Access средствами VB Times New Roman, жирный, размер 12 |
MSFlexGrid |
Name |
flg |
Метка |
Name Caption Alignment Font ForeColor |
Label1 Общее среднее 2-центровка Times New Roman, жирный, размер 16 vbMagenta |
Текстовое окно |
Name Font ForeColor |
Text1 Times New Roman, жирный, размер 14 vbRed |